トップへ
スクロールする
普通、ジャンプアクションは画面がどんどん横にスクロールしていきます。
このゲームでは、自機は常に画面に中心にいて、周りが縦横ななめにスクロールする方式にします。
自機をダブルクリックして、次の文を追加します
extends SpriteChar;
$map.setBGColor(color(0,200,255)); // 背景色を設定
anim=newAnimation();
while (1) {
anim.pause();
if (getkey(39) && $map.getAt(x+16,y)!=$pat_Block+0) {
x+=3;
f=0;
anim.swing($pat_player+0,$pat_player+2,5);
}
// ↑ カーソルキー右が押され、さらに右側が壁でなければ右へ移動
if (getkey(37) && $map.getAt(x-16,y)!=$pat_Block+0) {
x-=3;
f=1;
anim.swing($pat_player+0,$pat_player+2,5);
}
// ↑ カーソルキー左が押され、さらに左側が壁でなければ左へ移動
y+=vy; // vy: y 方向の速度。 yにvy を加える
if ($map.getAt(x,y+24)==$pat_Block+0 ) { // ブロックに当たっていたら
vy=0; // 落下速度を0にする
if (getkey(32)) vy=-10; // スペースキーを押したらジャンプ
} else { // ブロックに当たっていなかったら
vy+=0.5; // 落下速度を上げる
}
$map.scrollTo(x-$screenWidth/2,y-$screenHeight/2); // スクロールする
update();
}
$map.scrollTo(x-$screenWidth/2,y-$screenHeight/2)
$map.scrollTo(X座標,Y座標); は、 (X座標,Y座標)で指定された場所が画面の左上になるようにします。この場合、自機が丁度真中にくるようにスクロールします。
参考:
scrollToメソッド
$screenWidth,$screenHeight
次へ