←動作の確認に戻る
【補足】ソースコードは JavaScript だけ抜き出したものです。
//描画面(キャンバス)の準備
var cvs = document.getElementById("bg");
var ctx = cvs.getContext("2d");
//キー入力
var key = 0;
window.onkeydown = function(event) { key = event.keyCode; }
window.onkeyup = function(event) { key = 0; }
//マップを配列で定義する 0は草地(床)、1は岩(壁)
var MAP = [
[1,1,1,1,1,1,1,1,1,1],
[1,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,1,0,1],
[1,0,0,0,0,0,0,0,0,1],
[1,0,1,0,1,1,0,0,0,1],
[1,0,1,0,1,1,0,0,0,1],
[1,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,1,0,1],
[1,0,0,0,0,0,0,0,0,1],
[1,1,1,1,1,1,1,1,1,1]
];
var plX = 1, plY = 1;//プレイヤーキャラの位置
//メイン処理
window.onload = mainProc();
function mainProc() {
var x, y;
//プレイヤーキャラの移動
x = plX;//現在の位置
y = plY;
if( key == 38 ) y --;//カーソルキー↑
if( key == 40 ) y ++;//カーソルキー↓
if( key == 37 ) x --;//カーソルキー←
if( key == 39 ) x ++;//カーソルキー→
if( MAP[y][x] == 0 ) {//移動しようとしているところが草地(床)だったら
plX = x;
plY = y;
}
//背景を描画する
for( y = 0; y < 10; y ++ ) {
for( x = 0; x < 10; x ++ ) {
if( MAP[y][x] == 0 ) ctx.fillStyle = "lime";
if( MAP[y][x] == 1 ) ctx.fillStyle = "gray";
ctx.fillRect( x*64, y*64, 64, 64 );
}
}
//プレイヤーキャラを表示する
ctx.fillStyle = "red";
ctx.fillRect( plX*64, plY*64, 64, 64 );
setTimeout( mainProc, 200 );
}
(C)WorldWideSoftware