08/04/08 21:09:24 lWzhg9Ri
>>903
ここ数レスのはアイコンの内容を言葉で説明したものであって、
実際にああいうコードを打つわけじゃないですよ。
Game Makerではオブジェクトの動作を定義するのに
「アクション」というアイコンをポチポチ並べていく方法と、
「GML」という言語で直接コードを書く方法があって
習熟度に応じててきとーに混ぜて使えます。
GMLの文法はCとほぼ同じ(一部Pascal要素あり)なので、
ある程度プログラミングの経験があればすんなり覚えられるはず。
たとえば>>900は2箇所のイベントにアクションを3つ置いた様子を
表しているけれど、同じ内容をGMLで書くとこうなります。
// object0のStepイベント
mp_linear_step(object1.x, object1.y, 5, false);
image_angle = direction;
// object1のマウスボタンイベント
x = mouse_x; y = mouse_y;
905:名前は開発中のものです。
08/04/08 23:29:01 C/r/gPzk
>>902
後者で試してみようと思います
ありがとうございました!
906:900
08/04/09 03:31:08 R1oJ6a1A
>>904
ああ、そうなのかー…なるほどなあ…
わざわざ丁寧にありがとうございます。
以前豆乳システムとかもいぢってたんで、
C言語に似てるなら結構早めに覚えられそうですね。
907:名前は開発中のものです。
08/04/09 06:41:45 n+SEEGKi
自分はhspでゲームが簡単に作れるって聞いたもんだから実際に触ってみたらサッパリ理解できなかった。
それに比べてGMなら2週間くらいで大体使えるようになった。
908:名前は開発中のものです。
08/04/11 18:09:33 AT/nfPM9
>>900
遅くなりましたがありがとうございます。
レジスト、というのがどのような物なのか解りませんが・・・。
それとスレ違いかも知れませんが非公式のフォーラムに書き込むことが出来ないのですが私だけでしょうか?
909:名前は開発中のものです。
08/04/11 20:34:53 LqedxyKD
非公式サイトはユーザー登録してからフォーラムで「新規に投稿」押せば書き込めるよ。
あとレジストは料金を支払って制限解除したバージョンのこと。
良く分からない単語使ってゴメンネ
910:名前は開発中のものです。
08/04/11 20:37:53 EEx5djbh
>>908
レジストとは、お金を払ってプロダクトキーを貰い、使用制限を解除することです。
911:名前は開発中のものです。
08/04/11 20:38:20 EEx5djbh
おおう、更新すれば良かったorz
912:名前は開発中のものです。
08/04/12 11:01:55 eNZFgCaH
>>909,910
ありがとうございます。
なるほど、有料登録ですね
913:名前は開発中のものです。
08/04/18 10:19:47 3dx+PVyf
ちょっと参考までに、日本語圏でのGM作品を見てみたいんだが、
有名所で、GM作品を公開してる人っているかい?
914:名前は開発中のものです。
08/04/18 20:35:49 xHO8JEqh
ニコニコのミックマンXやニコニコアクションゲームとかなら知ってるけど。
ニコニコでgamemakerを検索するとちょっぴり出てくる。
915:名前は開発中のものです。
08/04/27 05:53:10 2l2AKY8C
これダウンロードできなくね?
916:名前は開発中のものです。
08/04/27 11:06:31 CLNLyEnS
英語だらけだから難しいよね
俺もダウンロードするのに一日かかった
917:名前は開発中のものです。
08/04/29 09:44:12 2d8FpwgV
登録しねーとDLできないのか?
918:名前は開発中のものです。
08/04/29 11:59:36 YwZZ6j+f
基本的に登録してからダウンロードしたほうがいい。
けど、
URLリンク(www.yoyogames.com)
からDL出来ると思う。
919:名前は開発中のものです。
08/04/30 21:35:13 wqvUGn48
6.1で3Dポリゴンにテクスチャを張りたいのですが、色々試しても黒く表示されるだけでどうにも……
どうコードを組めばうまく表示されるか誰かアドバイスくれませんか?
920:名前は開発中のものです。
08/05/01 00:53:19 TumL990E
その「色々試した」の中身が重要なわけだけども。
まあ、仮にテクスチャはちゃんと取れているものとして。
描画するのにcolorが付かない方のd3d_vertex_textureを使ってるとすると
その場合テクスチャは現在設定している色でブレンドされる。
draw_set_colorしてないと初期値は黒だから、結果も真っ黒になるよ。
もしそうだとしたら、先頭でdraw_set_color(c_white)してみて。
921:名前は開発中のものです。
08/05/01 05:57:14 boSZuiu9
>>920
ありがとうございます!
まさしくそれでした(^^;
こんな簡単なミスだったとは……
922:名前は開発中のものです。
08/05/01 22:44:02 QlMWKAXW
すごい漠然とした質問なんですが
画像を1、2、3って表示させるときに
1の画像が前面、3の画像が背景側に表示させる方法ってあります?
GML非公式サイトでdraw関連のコードがあまり説明されてなかったので。。。
923:名前は開発中のものです。
08/05/01 23:27:03 lT+h3RUS
簡単なのは 画像1 画像2 画像3 をスプライトに持つオブジェクトを作って、 depth で指定する方法。
depth の数値が大きくなると上に重なる。はず。
draw イベントで処理したいなら、基本的に画面上に上書きされるので、下になるほうを先に描画すればいい。
924:名前は開発中のものです。
08/05/02 02:15:50 IG1MecUh
305をそのまま使って、新しいオブジェクトを作って設置し
、すり抜けてみたんですが、solidにチェックがついてない
のに、接触した状態で立ち止まると、壁にはまったときと
同じ動作になってしまいました・・・
座標チェック時に、対象インスタンスIDがSolid属性の場合のみ
壁判定という動作にしてみようかと、以下のようにやってみんですが
うまく動かないようです・・・
nulld = !place_empty(x-1,y)
if nulld.solid == 0
{
壁回避コード
}
うーん。。。コリジョン難しい
925:名前は開発中のものです。
08/05/02 02:35:04 20oP59U2
place_emptyが返すのはIDじゃなくてtrue/falseだから……
相手のIDが欲しければinstance_place使う。
solidの判定も逆のような気がするけど、それ以前にそもそも
place_free使えばsolidのオブジェクトだけチェックしてくれるよ。
926:名前は開発中のものです。
08/05/02 07:25:07 IG1MecUh
>>925
なるほど。。。そうだったのか。
ありがとうございます。
うー、日本語マニュアルがほしぃ。。。
927:名前は開発中のものです。
08/05/03 12:42:03 CaNFTODT
逆に考えるんだ、「英語の勉強になる」。そう考えるんだ。 トェェェェイ
ところで、これで某有名同人弾幕シューティングの二次創作tkっているが
弾幕ww、弾幕が再現できねぇwwww
928:名前は開発中のものです。
08/05/03 14:24:24 9QsVrF2b
仲間発見
929:名前は開発中のものです。
08/05/03 15:59:55 3a9tSZMK
>>927
俺は某同人弾幕STG風オリジナルSTG(つまりパクり)作ってるが、まずはn-way弾を発射するスクリプトを書くんだ!
930:名前は開発中のものです。
08/05/03 17:55:29 TpBQZjg2
ロードの際「セーブデータのフォルダがある」「ゲームのセーブデータがある」時だけロードボタンを押せるようにしたいのですが
そういったデータの有無を内部で確認させる方法はありますか?
931:名前は開発中のものです。
08/05/03 18:07:56 9QsVrF2b
exist系のを使えばできるはず。directoryとかfileとか。
マニュアルで検索かけてみ。
932:名前は開発中のものです。
08/05/03 21:32:29 O2xyPtem
>>927-929
こんなに俺がいたとは
今ではn-wayを手動でやってたときが懐かしいです
933:名前は開発中のものです。
08/05/03 21:53:01 XU6M82BJ
板違いなんでしょうが、
シューティングとかで弾を撃つアクションはどれになりますか?
誰か教えてくださいな~
934:名前は開発中のものです。
08/05/04 06:21:13 2fBGUOBZ
「シューティングで弾を撃つアクション」とか、「RPGで敵を攻撃するときのダメージ設定」とか、
そういった類のアクションはなく、自分なりにデザインして、自分で一から作るのがGM。
簡単に言えば、弾を撃つってことは、弾というオブジェクトを作り、それをある速度で飛ばせばいい。
935:名前は開発中のものです。
08/05/04 06:27:00 2fBGUOBZ
……でも、もし弾幕STG作るんだったら、弾幕風で事足りる気がする。連投失礼。
936:名前は開発中のものです。
08/05/04 08:24:53 lNeW/IjQ
>>934
なるほど。。オブジェクトを作って飛ばす訳ですか。
大体解りました~ありです。
937:名前は開発中のものです。
08/05/04 20:03:25 lNeW/IjQ
今934さんに教わった後頑張って色々やったのですが、
何点か分からない点や仕方のわからない点が出てきました。。
もし良かったら教えてください。
・弾の発射に間隔を付ける方法
・一部状況下(俺の言いたいのはジャンプ中)での発砲不可
・一定の数の弾を発射後何秒間か使用不可(要するにリロード)
・↑の間モーションが入るようにする方法
教えてください~
938:名前は開発中のものです。
08/05/04 20:26:08 LG4ZPs/B
>>937は変数について理解してるか?
上三つは、変数が必要になる。
・弾の発射に間隔を付ける方法 → 発射可能を表す変数
・一部状況下(俺の言いたいのはジャンプ中)での発砲不可 → ジャンプ中かどうかを表す変数
・一定の数の弾を発射後何秒間か使用不可(要するにリロード) → 残弾数を表す変数
そして条件分岐だ。上から順に、
・弾を撃つ際に、発射可能変数を条件分岐に使い、可能の値だったら(例えば1)弾を撃てるようにする。そうでなければ何もしない。
で、弾を撃ったら 変数を不可能を表す値(例えば0)にして、タイマーイベントを発動。(アクションのタイマーを利用する)
タイマーイベント中で変数を可能状態(1)にする。
・着地状態からジャンプに移行したときに、ジャンプ中を表す変数の値をジャンプ中の値(例えば1)にする。
ジャンプの状態から着地状態になったときに、変数の値を着地状態(例えば0)にする。この変数を使った条件分岐を、撃つ時の条件に加えよう。
・弾を撃つごとに残弾数を減らす。弾を撃つときに条件分岐を付け加え、残弾数が0ならリロードモーション(自作するべし)を起こすようにする。
リロードのモーションは、モーション専用のオブジェクトを作って、オブジェクト変更アクションを利用するのがいいかもしれない。
そのときは、モーション専用オブジェクトで、モーションが終わったら元のオブジェクトに戻すことを忘れずに。
アニメーションエンドイベントをうまく利用すると楽かもしれない。用語とかでわからないことは、>>1の非公式サイトで調べてみ。
長文・乱文失礼。
939:名前は開発中のものです。
08/05/04 20:34:11 lNeW/IjQ
>>938
なるほど
それを行っている事を変数で表して、可能不可能をその変数の状態で判断させるわけですか
変数はあまり得意ではありませんが、色々やってみます。
ありがとうございました。
あ、後ここでこうやって質問して良い物なんですか?
板違いじゃないかとずっと気がかりでして。。
940:名前は開発中のものです。
08/05/04 20:52:37 LG4ZPs/B
>>939
まあ、過疎ってるし個人的にはいいんじゃないのかなとは思うけど。
質問以外の話題がほとんど無いし。。
教えてクレクレ君だらけになったらなったで、つらいんだけどねw
941:名前は開発中のものです。
08/05/04 20:57:40 lNeW/IjQ
やっていく内にわからなくなってきました。。
発射可能を表す変数 これはなんと表すことになるんですか?
例として教えてください
942:名前は開発中のものです。
08/05/04 21:16:10 smFSYJ2D
n = 3
これを発射回数として
一回打つたびに-1してやって
0の時には打てなくすればいいのかな・・・
俺も初心者だから参考にならないかも;
943:名前は開発中のものです。
08/05/04 21:21:43 lNeW/IjQ
>>942
返答ありがとうございます。
そういうのの総合的な並べ方がわからないんですね~>>941の文が分かりづらくてすみません。。
944:名前は開発中のものです。
08/05/04 21:29:00 smFSYJ2D
{
n = (n-1)
if n > 0
{
instance_create(x,y,bullet)
}
}
こんな感じでしょうか・・・
もっといい方法があると思いますが自分にはわかりません;
945:名前は開発中のものです。
08/05/04 21:30:58 lNeW/IjQ
>>944
ありがとうございました。
早速いじってきます~
946:名前は開発中のものです。
08/05/04 22:02:44 LG4ZPs/B
クリエイトイベントで
isshootable = 1; //弾が撃てるか
isjump = 0 ; // ジャンプしてるかどうか
bulletNum = 3; //残弾数
[弾を撃つイベント]
{
if (isshootable==1 && isJump == 0) {
if (bulletNum > 0) {
instance_create(x,y,bullet);
bulletNum -= 1;
} else {
}
}
947:名前は開発中のものです。
08/05/04 22:05:20 LG4ZPs/B
ゴメンミスッタ
クリエイトイベントで
isshootable = 1; //弾が撃てるか
isjump = 0 ; // ジャンプしてるかどうか
bulletNum = 3; //残弾数
[弾を撃つイベント]
{
if (isshootable==1 && isJump == 0) {
if (bulletNum > 0) {
instance_create(x,y,bullet);
bulletNum -= 1;
} else {
// リロード 弾を撃つボタンでリロードする場合にはここに記述
// 他のタイミングでリロードしたいなら、この部分は要らない。
{リロードするアクション}
bulletNum = 3;
}
}
こんな感じで。
948:名前は開発中のものです。
08/05/04 22:16:01 lNeW/IjQ
>>947
なるほど
そういう並べるのですか
また困ったらよろしくお願いします。
ありがとうございました~
949:名前は開発中のものです。
08/05/04 22:21:00 LG4ZPs/B
あ、あと撃ったときにタイマーイベント発生させるの忘れてたorz
bulletNum -= 1;
の下に、
alarm[0] = 30; // 30ステップ後にアラーム0イベントが発生。
としてくらさい。
インデントはかきこ時の見た目重視で全角スペース使ってるので、コピペだと動かないので注意。
950:名前は開発中のものです。
08/05/04 22:33:54 lNeW/IjQ
>>949
了解です~
ありがとうございます。
951:名前は開発中のものです。
08/05/04 23:18:28 KZv3H4cz
いつもお世話になっております。
教えてほしいのですが、>>853がうまくいきません。
image_speed = 0にしてGifのアニメを一周で止める動作をさせたいと考えています。
Stepイベントにて以下のコードを動かしてみたところ、アニメがループしてしまいました。
//5枚目でストップ。
if image_index == 4 {image_speed = 0}
ご教授いただきたくお願いします。
952:名前は開発中のものです。
08/05/04 23:28:07 KZv3H4cz
951です。
書き込みをした直後、試行錯誤を続けたところ
原因が分かりました。
gifをゆっくり動かしたかったことから、以下のコードを入れていました。
image_speed = 0.2
これを以下の値に直したところ、「5枚目でストップ」が動作することを確認しました。
image_speed = 0.25
うーん、ただここでひとつ疑問が・・・
なんで「0.2」では動作しなかったのか・・・うーん
板汚し、すいませんでした orz
953:名前は開発中のものです。
08/05/05 00:40:19 XEs+C953
>>952
小数を扱う場合、パソコン内では10進数ではなく2進数なので、
10進数ではキリのよい数値のように思えても、
2進数では無限循環小数(割り切れない割り算で、小数点以下を延々繰り返してしまう数)になってしまう数値がある。
もちろんパソコン内のメモリは無限ではないので、ある桁以下は省かれてしまう。
これを丸め誤差という。
以下のコードを実行してみるとわかるが、
i = 0.2;
for (k=0;k<20;k+=1) {
show_message(string_format(i,20,18));
i += 0.2;
}
i が 4 となるべきところで、GameMakerでは微妙に4より大きい数値になることがわかる。
(※常に大きい数値となるわけではなく、本来の数値より少なくなることもある)
これは、丸め誤差が積み重なってできた誤差になってて、真に4となるわけではない。
なもんで、 if文の image_index == 4 の条件は満たさない、と考えられる。
このような理由で、プログラムの世界では浮動小数な変数をそのまま条件文でイコールを使うのはご法度。と言われてる。
誤差を意識したコーディングを心がける必要がある。
GameMakerの数値は全て浮動小数扱い。だが、整数のまま扱ってる分には問題ない、はず。
(私はプロじゃないんで…かじった知識程度で申し訳ない、間違ってたら指摘ヨロ)
954:名前は開発中のものです。
08/05/05 01:59:41 T1qF9S2G
まあでも、853で言ってるとおり
Other > Animation End イベント使えば
image_index判定する必要ないんだけども。
ちなみにあくまでStepイベントで判定するなら
if (image_index + image_speed >= image_number)
で Animation End イベントと等価になる。
955:名前は開発中のものです。
08/05/05 05:06:15 KYkFnzVP
FEっぽいゲームを作りたいんですが
移動範囲の求め方がわかりません;
1マスごとに-1するということだと思うんですが
具体的に書けなくて・・・
教えていただけたら嬉しいです
956:名前は開発中のものです。
08/05/05 05:40:23 Bq2Q3q9u
やり方はここが参考になるんじゃない?
URLリンク(www5f.biglobe.ne.jp)
再帰ループとか理解している必要があるけど。
957:名前は開発中のものです。
08/05/05 06:13:29 KYkFnzVP
>>956
そのサイトも見たんですがsearch関数というのがよく分からないです;
自分で作るものなのでしょうか・・・
958:名前は開発中のものです。
08/05/05 08:26:38 grhJSKQZ
>>953 954
ご指摘ありがとうございます。
丸め誤差・・・次から気をつけます。
あと、Animation Endイベントって存在したんですねぇ。
「Other>Animation End」…存在すら知りませんでした…。
となると以下みたいな使い方になるんでしょうか?(再質問みたいですいません)
▼Animation End Event
//image_indexがsprites「spr_hoge777」の場合、speedを0に変更
if (image_index == spr_hoge777)
{
img_spd_save = image_speed //停止前の速度を保存
image_speed = 0
}
else
{
image_speed = img_spd_save //他のspritesの場合は保存速度に戻す
}
959:名前は開発中のものです。
08/05/05 08:57:11 grhJSKQZ
>>958
image_indexじゃなくてsprites_indexでした。
あと、このコードじゃうまく動作しませんでした。
うーん。難しい・・・。
960:名前は開発中のものです。
08/05/05 10:27:30 j6OioUkw
なんだかやりたいことが混乱してないか?
「困ったときは原点に戻る」
プログラム的なことは置いといて、まず何をしたいのかを考えてみ?
この場合はアニメーションが終わったら止める、だったよね?
Animation End Eventでimage_speedを0にすればアニメーションはとまるんじゃない?
多分これだけだと一枚目に戻って止まるかも知れないから、
止めた後にimage_indexを最後の数字にする。
つまり、
「アニメーションが終わったら、
・まずアニメーションを止めて、
・最後の画像を表示させる」
……>>853が言ってることと全く同じなんだが。
これで出来ないってなると、Step eventで毎回毎回image_speedを設定してるんじゃない?
もしそうだったらいくら止めても止まらないんだけどw
961:名前は開発中のものです。
08/05/05 10:40:47 j6OioUkw
もしimage_speedが一定で、終わったらそれを止めたいってだけなら、
image_speedをCreate Eventで設定した方がいいよ。
962:名前は開発中のものです。
08/05/05 11:31:49 grhJSKQZ
>>960,961
なんていうか、いろいろとすいません。
うーん、そうですねぇ。「やりたいこと」…
「一定条件のみアニメを止める」っていう動作をさせたいんだと思います。
Object内で条件毎にコロコロspritesを入れ替えておりまして
spritesに一定の画像が使われている時に限り、「アニメを一周」させたかった訳です。
(キャラが走行中に立ち止まった時、着地した時だけ服が揺れるアニメ…等)
1、sprites変更後、「アニメ停止変数」生成
2、Animation Endにて「アニメ停止変数が1の時のみ、image_speed=0」
でやりたいことが実現できました。
うーむ。確かに原点に返ってみれば、単純な事だったのですね…。
板汚しすいませんでした orz
963:名前は開発中のものです。
08/05/05 21:40:31 2SyyMfLm
なにげにレス伸びてる・・・そろそろ次スレの季節なのかな?
964:名前は開発中のものです。
08/05/05 22:22:44 eAt6pbsl
>>950です。
また質問に来ました。
HPを準備するまでは出来たのですが、HPの減らし方(ダメージ)がわかりません。。
後、自分的にはゾンビのような敵と戦わせたいので、
近づいたら(正確には近づかれたら)ダメージという形での使用方法も教えてください。
よろしくお願いします。
965:名前は開発中のものです。
08/05/05 22:48:47 J24rBd4c
>>964
サンプルとか、>>1チュートリアルとかサイトに色々書いてるから自分でも調べてから書き込むことをオススメする。
966:名前は開発中のものです。
08/05/05 23:18:51 2SyyMfLm
>>964
>HPを準備するまでは出来たのですが、HPの減らし方(ダメージ)がわかりません
HPの値を保存しておく変数があるならダメージをもらうタイミング(ダメージをもらう処理をするイベント)で引き算してやればよい
ダメージをもらうタイミングが「敵が近づいたら」ということなら敵のステップイベントでpoint_distance()関数を使えばいい。例えば
obj_mychara:自分が操作するキャラのオブジェクト名 VarMyhp:自キャラのHPを覚えとく変数
obj_emychara:敵キャラのオブジェクト名と命名してあるとして、
obj_emycharaのステップイベントに「Execute a piece of code」で
if(point_direction(self.x, self.y, obj_mychara.x, obj_mychara.y)<=50)//敵キャラと自キャラとの距離が50ピクセル以下ならば
{
obj_mychara.VarMyhp -= 3//自キャラのHPを3減らす
}
とか書いてやる。但しコレだと毎ステップごとにHPを減らすから、範囲内に入ればとんでもないスリップダメージになるので
一定周期ごととか、減らす量を思いっきり少量にするとか、そういう工夫は必要かと思う。まぁとりあえず がんばれ~
967:966
08/05/06 00:33:47 HwPOvHtQ
あう間違えてる ごめん
× if(point_direction(self.x, self.y, obj_mychara.x, obj_mychara.y)<=50)
○ if(point_distance(self.x, self.y, obj_mychara.x, obj_mychara.y)<=50)
968:名前は開発中のものです。
08/05/06 00:40:06 m5xvmqWN
>>965 >>967さん
ご返答ありがとうございます。
なるほど、そういう風な式を立てればいいのですか~
わかりました。ありがとうございました
969:名前は開発中のものです。
08/05/06 03:30:10 HwPOvHtQ
>>968
一応聞いておくけどヘルプファイルもってる?
970:名前は開発中のものです。
08/05/06 11:45:29 m5xvmqWN
>>969だいぶ遅れた返答ですみません。
F1のあれの事ですか?
英語で読めないです。。
971:名前は開発中のものです。
08/05/06 12:57:24 ndOoddgE
gamemakerで作った拡張子exeのゲームをPSPで遊ぶ事は出来ないのでしょうか?
972:名前は開発中のものです。
08/05/06 13:04:37 zKMDMsj4
GameMakerはWindows専用だ。マルチプラットホームなわけねぇだろ。