repeat文を使用するにはこのような書き方をします。
repeat(数){ 実行したいコード }
例:
repeat(10){ // 10回繰り返す
instance_create(x,y,object01) // x,yの座標にobject01を生成する
}
このコードを使うと簡単に10回繰り返すことができます。
しかし、これでは同じ場所に生成されてしまいます。
これでは意味がないので一工夫してみましょう。
先ほど書いた文だと、単純に10回繰り返すだけになってしまいます。
ここで一工夫加えてみましょう。
repeat(10){ //10回繰り返す
instance_create(x + nx,y,object01) // x + nx,yの座標にobject01を生成する
nx += 20 // 変数nxに20を加算する
}
前回のコードと何が違うかわかりましたか?
このコードを実行すると、objject01の生成される位置を変えることができます。
もしこのコードを使わずにやろうとすると
instance_create(x,y,object01)
instance_create(x+20,y,object01)
instance_create(x+40,y,object01)
instance_create(x+60,y,object01)
.
.
.
と何回も書かなければなりません。
なのでrepeat文と変数を利用することでこれを簡単にできます。
次は、違う場合を見てみます。
repeat(8){ // 8回繰り返す
nn = instance_create(x,y,object02) // 変数nnはinstance_create(x,y,object02)で生成されたオブジェクトとする※実際はオブジェクトのidを代入しています
nn.speed = 5 // nnのspeedは5とする
nn.direction = 90 // nnのdirectionは90とする
}
nn.なんちゃらの「.」って何?っていう人は他のインスタンス変数を参照するへGO
このコードを実行するとobject02が90度の方向へ5の速度で進みますね、しかしこれを8回繰り返すのは意味がありませんね?
そこで、また一つ工夫を入れてみましょう。
xx = 8
repeat(xx){ // xx回繰り返す
nn = instance_create(x,y,object02) // 変数nnはinstance_create(x,y,object02)で生成されたオブジェクトとする※実際はオブジェクトのidを代入しています
nn.speed = 5 // nnのspeedは5とする
nn.direction = dir // nnのdirectionは変数dirとする
dir += 360/xx // 変数dirに360分のxxを加算する
}
このコードを実行するとobject02が5の速度で8方向に動くことになります。いわゆる8方位弾ですね。
しかも、変数xxの数字を変えるだけで何方位でもできるのでとても便利になります。
こういったように、変数、符号、他のインスタンスを参照する...といった工夫を加えることでとても便利になります。
最新コメント