トップページへ
 自機の移動動作
・スクロール2   | 利用規約 | 使い方 | 操作方法 |
■説明
移動に伴って自機が常に中央にくるように画面がスクロールします。スーパーマリオのようなスクロール方法です。このプログラムでは、落ちるとダメージを受ける床と組み合わせ、ゲーム性を持たせています。

■参考
自機の移動 - スクロール
マップパターン − ダメージ床
■解説
自機の移動 - スクロールで使ったscrollmapメソッドを変更して、以下のように
プログラムを書き換えます。ここではx方向のみにスクロールするようになっています。

function scrollmap(){
  var sx;
  sx = x - $screenwidth/2;
  if (sx<0) sx=0;
  if (sx>$map.width*32-$screenwidth) sx=$map.width*32-$screenwidth;
  $map.scrollTo(sx,0);
}

上のメソッドでは、変数sxでスクロール先の位置を決めています。常に自機がスクリーン中央に表示されるようにすればOKです。以下の2つの文がこれに該当します。

  sx = x - $screenwidth/2;
  $map.scrollTo(sx,0);

この状態でも問題はありませんが、自機がマップの端に来たときでもスクリーンが止まらず、表示したくない部分までスクロールされてしまいます。

スクロールをマップ端にきたときにストップするようにします。以下の2文がその条件文です。

  if (sx<0) sx=0;
  if (sx>$map.width*32-$screenwidth) sx=$map.width*32-$screenwidth;

同じようにして、Y方向のスクロールも行うことができます。トライしてみてください。



|  トップページ | このサイトについて | 利用規約 | ご意見・お問い合わせ |

TonyuアクションRPG - ゲームプログラミング解説 -