道路をカーソルキーを使って曲げます。デバッグでキーの値を表示しています。
キャラクターセットが消えています。指定してください。
辺の横寸はiの乗数で変する
差分がdiとiの整数倍で変化する
<textarea name="myTEXT" rows="50">
<html>
<head>
<title>CAR_GAME</title>
<script language="javascript" src="cargameV004.js"></script>
</head>
<body onload="init()">
<canvas id="world"></canvas>
</body>
</html>
</textarea>
***cargameV004.jsのコード***
var canvas;
var ctx;
WIDTH = 800;
HEIGHT = 600;
var bordcolor = ["white", "silver", "gray"];
function init(){
canvas = document.getElementById('world');
canvas.width = WIDTH;
canvas.height = HEIGHT;
ctx = canvas.getContext('2d');
ctx.font = "48px 'MS Pゴシック'";
user = window.navigator.userAgent.toLowerCase();
document.addEventListener("keydown", keydown);
draw_road(0);
}
//キーが押された時の処理
function keydown(e){
k = e.keyCode;
if(k==37) draw_road(-10); if(k==39) draw_road(20); if(k==38) draw_road(0);
element = document.getElementById("idresult2");
element.innerHTML = " k=" + k;
}
function draw_road(di){
//(描画処理)
ctx.fillStyle = "blue";
ctx.fillRect(0, 0, WIDTH, HEIGHT);
ctx.fillStyle = "green";
ctx.fillRect(0, 300, WIDTH, 300);
h = 24;
y = 600 - h;
for (i=23; i >= 0; i--){
uw = (i-1) * (i-1) * 1.5;
ux = 400 - uw / 2 + di*(23-(i-1));
bw = i * i * 1.5;
bx = 400 - bw/2 + di*(23-i);
wkcolor = i % 3;
ctx.beginPath();
ctx.moveTo(ux,y);
ctx.lineTo(ux+uw,y);
ctx.lineTo(bx+bw,y+h);
ctx.lineTo(bx,y+h);
//全て座標を指定
ctx.closePath();
ctx.fillStyle = bordcolor[wkcolor]
ctx.fill();
h = h - 1;
y = y - h;
}
msg_draw();
}
// ゲームオーバーの表示
function msg_draw(){
ctx.font = "20px 'MS Pゴシック'";
ctx.fillStyle = "white";
ctx.fillText("カーソルキーの上、左、右を押してください",200,100);
}