ユーザ用ツール

サイト用ツール


ch_playermove

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ch_playermove [2018/09/07 16:48] – [キャラクターの移動] adminch_playermove [2018/09/09 13:10] (現在) – [キャラクターの移動] admin
行 1: 行 1:
 +====== 自機の操作(上下左右に動作) ======
 +
 +この講座では、自機が上下左右に動くプログラムを作成します。
 +
 +====== 準備 ======
 +
 +プログラム(player.txt,enemy.txt,pmissile.txt,emissile.txt)の中身を全て空にしてください。
 +
 +命令が判らない人は基本の命令の確認編へ
 +
 +[[ch_variable|変数]]
 +
 +====== キャラクターの移動 ======
 +
 + 実行ボタンを押すと、自機のx,yの初期値は320,450で、中央の下の位置に出現します。dx,dyの初期値は共に4が与えられています。上下左右のキーを押した時に、自機を移動させるには次のように記述します。
 +<<player.txtに記述>>
 + if(UP()){ //上キーを押した時
 + y=y-dy;
 + }
 + if(DOWN()){ //下キーを押した時
 + y=y+dy;
 + }
 + if(LEFT()){ //左キーを押した時
 + x=x-dx;
 + }
 + if(RIGHT()){ //右キーを押した時
 + x=x+dx;
 + }
 +
 + 1行目のUP()により、方向キーの上キーを押しているかを判定し、押している場合は2行目を実行され、yの値がdyの値だけ減少し上の位置に移動します。同様に、下の場合はDOWN(),左の場合はLEFT(),右の場合はRIGHT()を使用します。
 +
 +{{:fig_move.png?400|}}
 +
 +  * 課題)自機の速度を変更して速くしてみよう。ヒントは、1行目の上にdx,dyの変数に値を代入する命令を挿入すればよい。
 +
 +解答例<<player.txtに記述>>
 + dx=8;
 + dy=8;
 + if(UP()){
 + y=y-dy;
 + }
 + if(DOWN()){
 + y=y+dy;
 + }
 + if(LEFT()){
 + x=x-dx;
 + }
 + if(RIGHT()){
 + x=x+dx;
 + }
 +
 +  * Next. [[ch_pmissileset1|自機弾の発射]]
 +  * Top.  [[manual|ConnectSTG マニュアル]]
 +