シューティングゲームに挑戦編 チュートリアル01の目標
- タチコマを上下左右に動かす
- 左右には加速を付ける
- 後で修正しやすいスクリプトを目指す
チュートリアル01の概要
キャラクターのムービークリップに
1.onClipEvent(load)でキャラクターを上下左右に動かすための変数、メソッドを定義
2.onClipEvent(enterFrame)で定義したメソッド実行
1.キャラクターのムービークリップをつくる
一番大事!なキャラクターを作って、ムービークリップにしてください。
2.必要な変数を考える
タチコマを動かすのに必要で後で変更したいかも、と思われる値は、
- スピード
- 加速度
- キーコード(どのキーボードのキーでも選べるように)
です。これらの変数を最初に定義しておけば、あとでスピードやキーコードを変えたくなったときに
数値を変更するだけで、スクリプトを読み返さなくてすむ!!はずです。
今回、左右、上下でスピードを変えたかったのでスピードは2つにわけて、
- 左右のスピード speed_H 上下のスピード speed_V
- 左右の加速度 ac_H 上下の加速度 ac_V
- キーコード
左 LEFT_KEY_CODE 右 RIGHT_KEY_CODE 上 UP_KEY_CODE 下 DOWN_KEY_CODE
とします。
3.必要なメソッドを考える
タチコマを移動させるのに必要なことは、上下左右に動く、です。なので、上に移動するために使うファンクション、下に移動するために使うファンクションというように分けていきます。
- 上に移動:moveUP() 下に移動:moveDown()
左に移動:moveLeft() 右に移動:moveRight()
- 移動をまとめたファンクション:move()
- 加速度の(仮の)時間をリセットする:reset()
4.アクションスクリプトを書く
タチコマを動かすための変数やメソッドなので、タチコマのムービークリップにムービークリップアクションとしてアクションスクリプトを記述します。
タチコマ(動かしたいキャラクター)のムービークリップをクリックして選択、アクションパネルに下のようなアクションスクリプトを記述します。
onClipEvent (load) {
speed_H = 5;
ac_H = 5;
speed_V = 20;
ac_V = 0;
reset();
currentKey = LEFT_KEY_CODE;
LEFT_KEY_CODE = 65;
RIGHT_KEY_CODE = 68;
UP_KEY_CODE = 87;
DOWN_KEY_CODE = 83;
function reset() {
t = 1;
}
function moveUp() {
if(currentKey != UP_KEY_CODE){
reset();
currentKey = UP_KEY_CODE;
}
this._y -= (speed_V+ac_V*t);
t++;
}
function moveDown() {
if(currentKey != DOWN_KEY_CODE){
reset();
currentKey = DOWN_KEY_CODE;
}
this._y += (speed_V+ac_V*t);
t++;
}
function moveRight() {
if(currentKey != RIGHT_KEY_CODE){
reset();
currentKey = RIGHT_KEY_CODE;
}
this._x += (speed_H+ac_H*t);
t++;
}
function moveLeft() {
if(currentKey != LEFT_KEY_CODE){
reset();
currentKey = LEFT_KEY_CODE;
}
this._x -= (speed_H+ac_H*t);
t++;
}
function move() {
if (Key.isDown(LEFT_KEY_CODE)) {
moveLeft();
} else if (Key.isDown(RIGHT_KEY_CODE)) {
moveRight();
} else if (Key.isDown(UP_KEY_CODE)) {
moveUp();
} else if (Key.isDown(DOWN_KEY_CODE)) {
moveDown();
} else {
reset();
}
}
}
onClipEvent (enterFrame) {
move();
}