トップへチュートリアルWikiトップ

スクロールする

普通、ジャンプアクションは画面がどんどん横にスクロールしていきます。
このゲームでは、自機は常に画面に中心にいて、周りが縦横ななめにスクロールする方式にします。

自機をダブルクリックして、次の文を追加します

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

    次へ