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/

841 :名前は開発中のものです。:2014/07/19(土) 10:38:22.68 ID:4sPbi6Cq.net
display_reset() の翻訳、ありがとうございました〜!

842 :名前は開発中のものです。:2014/07/19(土) 22:25:45.60 ID:KttWzmT7.net
DrawGUIでGUIレイヤー上にオブジェクトは配置できないから
draw_sprite()でスプライトを配置しようと思ったけど
それだとアニメーションスピードやループとかの制御ができなくて
room外に同じスプライトを持つオブジェクトを配置して
オブジェクトでimage_speedを設定して、
オブジェクトのimage_indexと同じスプライトをDrawGUIにdraw_sprite()させる
という力技で制御してみたんだけど
draw_spriteで配置したスプライトの現在のスプライトインデックスは取得できないんだろうか?

843 :名前は開発中のものです。:2014/07/20(日) 00:54:29.10 ID:qibdOHYV.net
image_indexの計算というのは単純で
image_index = (image_index + image_speed) mod image_number;
というのを毎ステップ自動的にやっているだけ。

一応もう少し分解して説明すると
1. image_index += image_speed; // アニメーションスピード分だけ先に進める
2. image_index = image_index mod image_number; // イメージ数を超えたら先頭に戻す

だから自分でaでも何でも好きな変数を用意して
a = (a + アニメーションのスピード) mod sprite_get_number(描画するスプライト);
と計算して、その結果をdraw_spriteに放り込めばいい。

844 :名前は開発中のものです。:2014/07/20(日) 01:19:39.65 ID:wQKxLlne.net
オブジェクトがDrawイベントでdraw_sprite()という関数を実行した時のみ、そのオブジェクトがスプライトを描画する。
描画はオブジェクトが行っているので、例えばHPメーターをdraw_sprite()で描画しているオブジェクトが破棄されれば画面上からHPメーターも消える。
Drawイベントは毎フレーム実行されるので、条件分岐が無いなら毎フレームdraw_sprite()が実行されて毎フレーム描画される。

sprite_indexはオブジェクトがもつ変数で、そのオブジェクトに設定されているスプライトの識別番号が入る。
例えば、新しいプロジェクトを立ち上げてから最初に作ったスプライトの名前が「spr_hajime」だとする。
作られた順に識別番号が付けられてゆくので、最初に作ったスプライト「spr_hajime」に割り振られる番号は0になる。
そして、obj_aというオブジェクトのスプライトにspr_hajimeを設定したとする。
すると、obj_aのsprite_indexは0になる。

image_indexもオブジェクトがもつ変数。そのオブジェクトが描画するサブイメージの番号が入る。
サブイメージとは、スプライトに画像が複数あるときに何枚目か識別するための番号のこと(1枚めが0)。

Drawイベントが無い時は、sprite_indexに入っている番号のスプライトのimage_index番目のサブイメージを毎フレーム描画するようになっている。

draw_spriteの引数は( 描画するスプライトの識別番号 , 描画するサブイメージの番号 , X描画位置 , Y描画位置 )となっている。
http://www.wikihouse.com/GameMaker/index.php?draw_sprite%28%29

845 :名前は開発中のものです。:2014/07/20(日) 08:23:42.47 ID:x4wgZ7nn.net
ゼロオリジンなのか、覚えとこう

846 :名前は開発中のものです。:2014/07/20(日) 20:27:53.61 ID:kTZlkWuy.net
>>844>>844
詳しく説明していただきありがとうございます
参考にしてもうちょっといじってみます

847 :名前は開発中のものです。:2014/07/20(日) 21:16:53.97 ID:wQKxLlne.net
modは被除数が除数より大きい場合、商の余りを返し、そうでない場合は被除数をそのまま返す。

>>843
image_speedが1/2でサブイメージの枚数が3(0~2)の場合
(0+0.5) mod 3 = 0.5 mod 3 = 0.5 ←被除数が除数より小さいのでそのまま
(1+0.5) mod 3 = 1.5 mod 3 = 1.5
...
(2.5+0.5) mod 3 = 3 mod 3 = 0 ←被除数が除数と同じなので0(リセットしてまたループ)
となる。draw_sprite()の2つ目の引数の小数点以下切り捨てした枚目のサブイメージが描画される。

ただしサブイメージの枚数がimage_speedの倍数でないと、
被除数と除数がぴったり等しくならず3.33みたいに超過して剰余が0.33になり
描画するフレーム数が変動することがあるので注意

848 :名前は開発中のものです。:2014/07/23(水) 03:39:17.78 ID:/zgIYnOr.net
書き込みすくねぇ〜

849 :名前は開発中のものです。:2014/07/23(水) 03:43:14.56 ID:7IC/PmE7.net
1.4の目玉はなんじゃ

850 :名前は開発中のものです。:2014/07/23(水) 09:02:02.78 ID:5UUCdkzv.net
GMはイベントアイコン思想から脱皮した方がいいような。
結局スクリプト書くことになるんだし。

総レス数 988
270 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★