■ このスレッドは過去ログ倉庫に格納されています
【2D】ゲーム作成ツールGameMaker part6【マンセー】
- 1 :名前は開発中のものです。:2012/11/21(水) 06:51:18.86 ID:SflfScEk.net
- 無料Windows用2Dゲーム作成ツール"Game Maker"について、色々と語り合うスレッドです。
●本家(英語)
ttp://www.yoyogames.com/
●GameMaker Japan - 非公式情報サイト(日本語)
ttp://gamemaker.jpn.org/v1/
●The Game Maker's Apprentice
ttp://book.gamemaker.nl/
●Game Maker まとめWiki
ttp://www.wikihouse.com/GameMaker/index.php
前スレ
【2D】ゲーム作成ツールGameMaker part5【マンセー】
http://toro.2ch.net/test/read.cgi/gamedev/1291510669/
- 321 :名前は開発中のものです。:2013/11/12(火) 23:25:52.64 ID:UbOhLV73.net
- depth云々は、大抵UIの描画関係はゲームを管理するオブジェクト一つでやるから
関数を実行する順番による描画優先度を気にしなくてよいように別オブジェクトにやらせるって意味で
- 322 :名前は開発中のものです。:2013/11/13(水) 21:08:22.20 ID:yMB1fNzv.net
- scaleは反転させるときくらいしか使ってなかったけど
確かにそういう使い方もあるね…参考にさせてもらいます
あと使い回しなんかも考えたらその方が汎用性高いし良いね
- 323 :名前は開発中のものです。:2013/11/14(木) 12:04:09.61 ID:u+KWakE5.net
- >>320
俺もそのやりかただな
1ドットの白いスプライトを作ってbrend_colorで色つけてやってる
- 324 :名前は開発中のものです。:2013/11/14(木) 16:22:26.03 ID:UbdjiDg3.net
- helpファイルのリファレンスでも
画面に効果を付けるときはそういうやり方を推奨されてるね
- 325 :名前は開発中のものです。:2013/11/14(木) 19:54:56.71 ID:UbdjiDg3.net
- 沙羅曼蛇のイントルーダーみたいな蛇の動きする敵キャラ作ってるんだけど
胴体のオブジェクトが一つ前の胴体を追尾していく際に
image_angleで向きを変えてもスプライトが回転するけどオブジェクト自体は回転してないから
変な動きになちゃうのよね
だから毎ステップごとにlengthdir_x(len,dir)、lengthdir_y(len,dir)で
追尾する位置を指定してるんだけど
オブジェクト自体を回転させる方法ってあるのかね?
- 326 :名前は開発中のものです。:2013/11/14(木) 20:45:21.65 ID:lUjHYAox.net
- direction = image_angleにしたら移動方向も向きと同じになるよ。
今試して気が付いたけど、image_angleだと当たり判定が回転してdirectionだと移動方向が回転するんだね。
- 327 :名前は開発中のものです。:2013/11/14(木) 23:13:04.76 ID:Qx60HwWi.net
- obj_headとobj_bodyというオブジェクトを作っておく。
obj_headに以下のコードを書く
-------------Createイベント-------------
//head setting
spd = 4;
turn = degtorad(5);
rad = 0;
body_number = 3;//胴体の数
interval = 12;//胴体の間隔
prev_array = (body_number+1)*interval;
//previous x y
for(i=0; i<=prev_array; i+=1){
prev_x[i] = x;
prev_y[i] = y;
prev_angle[i] = image_angle;
}
//body instance
for(i=0; i<=body_number; i+=1){
body[i] = instance_create(x,y,obj_body);
body[i].depth = depth+i+1
}
- 328 :名前は開発中のものです。:2013/11/14(木) 23:15:09.29 ID:Qx60HwWi.net
- -------------Stepイベント-------------
//turn
if(mouse_check_button(mb_left) )rad -= turn;
else if(mouse_check_button(mb_right) )rad += turn;
//limite rad
if(rad > pi)rad = (pi*-1)+rad-pi;
else if(rad < pi*-1)rad = pi-(rad+pi*-1);
//move
x += cos(rad)*spd;
y += sin(rad)*spd;
//limit x,y
if(x > room_width)x = room_width;
else if(x < 0)x = 0;
if(y > room_height)y = room_height;
else if(y < 0)y = 0;
続く
- 329 :名前は開発中のものです。:2013/11/14(木) 23:16:05.83 ID:Qx60HwWi.net
- Stepイベント続き
//head image angle
image_angle = 360-radtodeg(rad);
//previous x,y
if(x != prev_x[0] || y != prev_y[0] ){
for(i=prev_array; i>=1; i-=1){
prev_x[i] = prev_x[i-1];
prev_y[i] = prev_y[i-1];
prev_angle[i] = prev_angle[i-1];
}
prev_x[0] = x;
prev_y[0] = y;
prev_angle[0] = image_angle
}
//body x,y,image angle
for(i=0; i<=body_number; i+=1){
body[i].x = prev_x[(i+1)*interval];
body[i].y = prev_y[(i+1)*interval];
body[i].image_angle = prev_angle[(i+1)*interval];
}
- 330 :名前は開発中のものです。:2013/11/14(木) 23:21:13.11 ID:Qx60HwWi.net
- あとはobj_headとobj_bodyにスプライトを設定して
obj_headをルームに置いて起動だ。
マウスの左ボタンで反時計回り、右ボタンで時計回りだ。
これはグラディウスのオプションとかと同じやり方で
頭のオブジェクトの座標が変わった時に配列に座標と画像角度の履歴を入れるのだ。
そして胴体は履歴の適当な所から座標を持ってくる。
総レス数 988
270 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★