if ( key.up === true ) {
let x = man.x/32;
let y = man.y/32;
if ( map[y][x] === 0 ) {
man.move = 32;
key.push = 'up';
}
}
canvasで1マス32pxで、20×20のmapを作って迷路を作っています。迷路の道を0、壁を1として1を主人公の男の子が歩くイメージです。mapは20個の配列×20で、map[y][x]で考えています。man.xやman.yの現在地は(32,64など)正確に出ているので、そこからx,yをだしてmapに入れて上下左右が0かチェックしています。
y軸のとき(upとdown)のときだけ、はみ出るとエラーになり、map内に戻そうとしても戻りません。
if ( key.up === true ) {
var x = rico.x/32;
var y = rico.y/32;
if ( y > 0) {
y--;
if ( map[y][x] === 0 ) {
rico.move = 32;
key.push = 'up';
}
}
}
y軸が関係するとき(up,down)このようにif(y > 0)をいれることで正常に動くようですが、なぜx軸(right,left)にはif(x > 0)としなくてよいのでしょうか。
プログラミング、質問ともに初心者であるため至らぬ点が多いと思いますがよろしくお願いします。
私の質問の仕方が悪く伝わらない場合、改善していきたいと思いますのでご指摘していただけると幸いです。
回答2件
あなたの回答
tips
プレビュー