2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【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 ★