アイワナ製作・Gamemakerを解説するwikiです。

Repeat文について


repeat文は使いやすい文の一つです。
単純に繰り返したいコードを実行するときに便利です。
そして、一工夫入れることによってとても便利なものになります。

repeat文の使い方


repeat文を使用するにはこのような書き方をします。

repeat(数){ 実行したいコード }

例:

repeat(10){ // 10回繰り返す
instance_create(x,y,object01) // x,yの座標にobject01を生成する
}

このコードを使うと簡単に10回繰り返すことができます。
しかし、これでは同じ場所に生成されてしまいます。
これでは意味がないので一工夫してみましょう。

repeat文 応用編


先ほど書いた文だと、単純に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の数字を変えるだけで何方位でもできるのでとても便利になります。

こういったように、変数、符号、他のインスタンスを参照する...といった工夫を加えることでとても便利になります。

Wiki内検索

Menu

アイワナ製作@基本・応用wiki




GMの基本的な使い方

GML概要編

GML編---一般的な計算

GML編---ゲーム動作

GML編---ユーザー入力

GML編---グラフィックス

GML編---サウンド

GML編---etc...

GML編---リファレンス

アイワナ製作編

基本応用編

雰囲気関係編

※背景に色がついているものは工事中のページです。
【メニュー編集】

メンバーのみ編集できます

メンバー募集!