【2D】ゲーム作成ツールGameMaker part2【マンセー】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2005/07/12(火) 09:03:47ID:DK0oUKwt●本家(英語)
ttp://www.gamemaker.nl/
●GameMaker Japan - 非公式情報サイト(日本語)
ttp://gamemaker.main.jp/
●初心者向けチュートリアル
ttp://gamemaker.main.jp/modules/articles/index.php?cat_id=1
前スレ: 【2D】ゲーム作成ツールGameMaker【マンセー】
http://pc8.2ch.net/test/read.cgi/gamedev/1087068523/
0136名前は開発中のものです。
2006/02/14(火) 19:00:34ID:OGIWffPiヒミツ
マヌアルに目を通してみようよ
0137名前は開発中のものです。
2006/02/15(水) 20:04:58ID:6LM6alMi0138125
2006/02/16(木) 19:54:41ID:+HYBFe6pダッシュと組み合わせようとするとなおさらさっぱり。
0139名前は開発中のものです。
2006/02/17(金) 04:01:55ID:dYDNpFEDタメジャンプじゃなくて、マリオみたいにジャンプ後に制御したいのかな?
変数を一つ用意して、ジャンプした時に変数を1にする。
一定時間経過するか、ボタンを離したら変数を0に戻す。
で、変数が1の間は重力の効きを弱くする、というのではどうでしょう。
0140名前は開発中のものです。
2006/02/17(金) 21:27:27ID:EyjSGAvOttp://gamdev.org/up/img/4690.zip
こんな感じ?
0141名前は開発中のものです。
2006/02/17(金) 23:48:09ID:7zEm/w8C>>139
その通り、マリオ(もっというとロックマン)みたいなジャンプを再現したかったのです。言葉足りなくてスマソ
とりあえずその方法を試して見ます。
>>140
感じとしてはそんな感じです、わざわざすみません。
0142名前は開発中のものです。
2006/02/19(日) 14:11:12ID:CCeheyjZヘルプ読んでも、わかんねえ…。
0143名前は開発中のものです。
2006/02/19(日) 14:15:33ID:hVYPSpvh現在のゲーム状況をセーブします。
つ「ttp://gamemaker.main.jp/」
0144名前は開発中のものです。
2006/02/20(月) 01:52:21ID:Ngv0PK/OFinishing the Game -> Global game settings -> Various other options
Let <F5> save the game and <F6> load a game
デフォルトでこの機能は有効になっている。
変数などの状態は保存できるので、機能的には通常、これで十分かと思われる。
しかし、どこでもセーブ可能なため、制限したいならこのチェックをはずし、アクション "Save the game" 等を使って自力で組む必要がある。
パーティクルの状態が再現されないなどの点にも注意。
0145名前は開発中のものです。
2006/02/20(月) 12:39:53ID:7gRnoyKeスクリプトがもっと書きやすかったらGameMaker良いんだがなあ・・・。
0146名前は開発中のものです。
2006/02/20(月) 13:49:24ID:QEe7nvmj0147名前は開発中のものです。
2006/02/20(月) 14:55:56ID:4zpNyKhY0148名前は開発中のものです。
2006/02/20(月) 16:13:18ID:ZzYiwD5Z直ぐ飽きられる場合もあると思う。
>>145
こだわりがあっていいじゃん。
0149名前は開発中のものです。
2006/02/21(火) 23:19:35ID:ygP3Me4d( ´∀`)/< 先生! 自己満足ゲーム作ってたら、
_ / / / \ 原因不明のバグにぶち当たりました!
\⊂ノ ̄ ̄ ̄ ̄\ \_______________
||\ \
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
.|| ||
0150名前は開発中のものです。
2006/02/22(水) 00:04:54ID:+bb3J/620151名前は開発中のものです。
2006/02/22(水) 02:13:42ID:WD1YjkLm0152名前は開発中のものです。
2006/02/22(水) 10:18:04ID:RmfqUly/とうあえずうp
ttp://gamdev.org/up/img/4743.zip
□ 同士が離れていると、仲間の近くへ移動するようにしたいんだけど動いてくれない。
○のDepthを変えるとちゃんと動くようになるみたいなんだけど、
GameMaker自体のバグか何かなのかな?
だけど変えると今度は○の方がおかしくなるし・・・
0153149=152
2006/02/22(水) 12:17:49ID:RmfqUly/どうも5.3Aのcollision関連の関数で起きる模様。
0154名前は開発中のものです。
2006/02/22(水) 12:38:07ID:RtW+y/jzまちがってたらすません
前レスの717〜740ぐらいに丼氏のボイドトランサーで逆のパターン(近くにいるおなじインスタンスから離れる)
だったかの質問レスがあるのでそれもチェックしてみたら?
>>50に前レスログのURLあるよ
0155名前は開発中のものです。
2006/02/22(水) 13:08:59ID:RtW+y/jzmbtext_draw()の第4引数widthを指定しない時やwidthに満たない幅で描画するときに描画幅を調べる構文を以下の様に書いてます。
今のところ"\\n”や改行などを無視してもいい状況なのでこれで妥協してます。
作者観点から付け加えがありましたらヨロシクです。
----------ここから---------------
var inputtext, code, text_len_cnt, i, textareawidth;
inputtext = "描画させる文字列1234"
textareawidth = 0;
text_len_cnt = string_length(inputtext);
for( i = 1; i <= text_len_cnt; i += 1)
{
code=ord(string_char_at(inputtext, i));
if((code>=32)&&(code<=126)) textareawidth += global.mbchar_size/2;
if((code>=129)&&(code<=152)) textareawidth += global.mbchar_size;
}
0156名前は開発中のものです。
2006/02/22(水) 13:44:20ID:RtW+y/jzこの後に
mbtext_draw(inputtext, room_width/2 - textareawidth/2, 150, 0, 0, 0))
といった感じで続けています。
0157名前は開発中のものです。
2006/02/22(水) 14:14:25ID:CuQeG0lj絵師乙です!
0160名前は開発中のものです。
2006/02/22(水) 18:51:30ID:WbHshgLKそれとも押したら変数で逃がしてうんたらかんたらなどをGMLで記述しないと作れないのでしょうか。
0161よこしまなMr.0
2006/02/22(水) 19:28:30ID:vs/6uiJnttp://gamemaker.main.jp/modules/news/article.php?storyid=31
>>160
以下のスレッドに同様の質問があります。
GMJ Forum -> ジョイスティックのボタン押下時にイベントを発生させたい
ttp://gamemaker.main.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=37&forum=1
0162名前は開発中のものです。
2006/02/22(水) 23:01:27ID:kPdMax+/instance_furthestの返り値を表示してみたら-4(noone)になってるね。
しかし、Squareがルーム内に複数いる以上、nooneが返ることはありえないはず。
は、もしかして……!
スプライトとオブジェクトの名前がかぶってますよ。
0163149
2006/02/23(木) 10:06:26ID:tTwTR64C( ´∀`)/< 先生! if (collision_circle(self.x,self.y,70,Spuare,false,true))
_ / / / \ を
\⊂ノ ̄ ̄ ̄ ̄\ | if (distance_to_object(Spuare) < 70)
||\ \\ に代用させた所、問題なく動きました!
||\|| ̄ ̄ ̄ ̄ ̄|| \_______________
|| || ̄ ̄ ̄ ̄ ̄||
.|| ||
>>162
違うようにした方がいいんでしたっけ?
0164名前は開発中のものです。
2006/02/23(木) 12:52:18ID:3zWbUjiFスゲー
AIですか
0165名前は開発中のものです。
2006/02/23(木) 14:15:06ID:PAdpKi4bいろいろ調べた結果、GameMaker 5.3A側でcollision系関数の引数 notme の適用方法にバグがありそうですね。
コリジョン対象のオブジェクトを オブジェクト名で限定した場合、特定の状況で notme を true としても有効にならず、
本来なら「偽」と判定される状況でも「真」となってしまう模様。(対象オブジェクトがallとかなら問題なさそう)
6.1では、このバグは解消されているようです。
・・・5.3Aのサポートは終わってるのかなぁ…?
0166よこしまなMr.0
2006/02/23(木) 17:52:05ID:iLVzLMDT違うようにしないとだめなんです。
なぜなら、リソース識別子はダイレクトにGMLの定数としてマッピングされるので、同じ名前空間で識別子の衝突が起こってしまうからです。
これはGMJフォーラムでも何度か話題に上りました。
ttp://gamemaker.main.jp/modules/newbb/viewtopic.php?topic_id=34&forum=6&post_id=136#forumpost136
>>165
ttp://www.gamemaker.nl/bugreport.html には一応「Older version」という選択項目もあるみたいですが、"Make sure you use the latest version of Game Maker. We do not handle bugs in older versions."という記述がこれまた微妙ですね
お知らせ:
現在、GM5/GM6でmp3,oggをBGMとして再生することができる連携プログラムを開発中です。この連携プログラムは、レジスト版の機能に「依存しない」ので、Game MakerのBGM再生機能に不満を抱いている方にとっては便利なものとなる予定です。
(.NETアプリではないので軽いはず。MODにもおそらく対応。MIDI形式は未定)
0167149
2006/02/23(木) 18:55:07ID:tTwTR64C英語ダメ、計算ダメ、絵ダメ、文才ダメだけど、
AIだけには拘りと自信があるのだ。
>>165
ふむふむ・・・検証オツカレです。
>>166
特に問題なかったから今まで普通にシテマシタヨ。
参考になりました。
0168名前は開発中のものです。
2006/02/24(金) 04:19:37ID:/Tk/YbQr155です
前回の書き込みで舌たらずな文章で心証悪くしてたらすみません。
そして素早い対応、すっごく感謝です。ありがとうございました。
今シューティングを作成してて・・スコアとかの表示関連を作りなおしてるんですよ。
それで自機が近づいたら表示を画面外に出すやつをやってて、
先に描画領域が取得したかったんです。
mbtext動作状況はゲーム進行を妨げずうまく動作しています。
0169よこしまなMr.0
2006/02/25(土) 02:33:02ID:mwGxEe4mいえいえ
実際の描画幅を取得できないというのは盲点でした。
おかげさまでmbtextを改良することができたのでこちらこそ感謝です。
お知らせ:
>>166でちらっと触れていたBGM再生用のプログラムおよびスクリプトがほぼ完成しました。
再生に対応しているサウンド形式は「mp3, ogg, mod, it, xm, s3m」です。
同時に再生できるサウンド数は無制限です。
GM5/GM6と共に動作し、レジスト版でも未レジスト版でも動きます。
機能的には、「再生、一時停止、再開、停止、リセット」の操作、および、「音量、再生スピード、パン、ループ」の制御(再生後でもサウンドごとに変更可能)をサポートしています。
GMとは別プロセスでサウンド再生を行いますが、制御元のGMのウィンドウが消失すると自動終了する仕組みになっているので、万が一GMのゲームがフリーズした場合でも「サウンドだけがずっと鳴ったままになる」という事態は起こりません。
また、サウンド再生を行ってもGMのゲームスピードを遅らせることはありません。ループ再生の場合も安定して動作します。
いまいち分かりにくいかも知れませんが、GMのゲームが この「BGM再生用のプログラム」を非同期制御するという仕組みです。
GM側からは、簡単なスクリプトを呼ぶだけで透過的にサウンド再生を行うことができます。
例:my_music.mp3を音量80%で再生する
bGM_play("my_music.mp3", 0.8);
現在、細かい改良と調整を行っています。
0170よこしまなMr.0
2006/02/26(日) 21:15:52ID:2s5I4Elfttp://gamemaker.main.jp/modules/news/article.php?storyid=33
名前が覚えやすい(BGMとカブる)のが最大の特徴です( ワラ
0171名前は開発中のものです。
2006/02/26(日) 23:33:03ID:FvVbCteIIDが妖精サンダー
0172名前は開発中のものです。
2006/02/27(月) 23:56:13ID:cC0bdxOdwithの中ではotherが元々selfだったインスタンスを参照するようになりますが、
では元々otherだったインスタンスはどうやって参照できるのでしょうか?
具体的には、自分と敵弾がぶつかった時に破片を飛び散らせようとしてるのですが……
// self=自分、other=敵弾
var i, ii;
for (i = 0; i < 8; i += 1) {
ii = instance_create(x, y, obj_fragment);
ii.direction = i * 360/8;
ii.speed = 4;
with (ii) {
motion_add(???.direction, ???.speed / 2); // ←ここで敵弾の動きを合成したい
}
}
??? の所に何を入れたらいいかわからなくて困っています。
0173172
2006/02/28(火) 03:02:25ID:emwe4w/Oii.hspeed += other.hspeed / 2;
ii.vspeed += other.vspeed / 2;
で可能でした。
でも後学のため、with内から外側のotherを参照する方法
ご存じの方いたらお願いします。
0174名前は開発中のものです。
2006/02/28(火) 14:52:42ID:vklEnotzスクリプト内部の一時変数に記憶しておくしかないかな。
-----
var other_id;
other_id = other.id;
with ( ) {
// withループ内でも、変数 other_id で 元々の other のインスタンスIDを参照できる。
}
-----
0175よこしまなMr.0
2006/02/28(火) 18:56:54ID:6cM1DN1x174さんが仰っている通りですね。たぶんその方法しかないと思います
bGMのプレビューデモ(*.gmd, *.gm6)を公開しました。
ttp://gamemaker.main.jp/modules/news/article.php?storyid=34
マウスクリックおよび[←][→]キーに合わせてoggストリームの音量・パン・ピッチシフトを変化させるデモです。
0176172
2006/02/28(火) 23:15:51ID:emwe4w/Oども、それでいけました。
with内では何も付けなければvarで宣言した変数を参照できるみたいですね。
ん、でも、同じ名前のインスタンス変数があったらどうなるんでしょう?
実験してみたらこんなん出ました。
var inst1, X;
inst1 = instance_create(0, 0, object1);
X = 'var X';
self.X = 'self.X';
inst1.X = 'inst1.X';
with (inst1) {
show_message(X); // ←これは var X になる
show_message(other.X); // ←これは self.X になる
show_message(self.X); // ←これは inst1.X になる
}
0177名前は開発中のものです。
2006/03/07(火) 20:49:20ID:c3gblkOt0178名前は開発中のものです。
2006/03/08(水) 00:00:41ID:pSfOHtTI0179駄々
2006/03/08(水) 15:02:46ID:U8guAHRA質問なんですがキャラのアニメーションでカーソルキー→を押したら
右に移動しているアニメ
←をおしたら左に移動しているアニメを表示させるにはどうすれば良いのでしょうか
簡潔に言うと
→を押したら ● ⇒ ●
>| /|
みたいな・・・(分かりにくくてすんません)
0180名前は開発中のものです。
2006/03/09(木) 01:46:39ID:fAsQapMu右用オブジェと左用オブジェ作って同一親オブジェクトを登録
右用オブジェと左用オブジェの逆方向のキーボードイベントで逆のオブジェクトへ
インスタンスチェンジする。
共通のイベントは親オブジェクトで作成する
みたいな感じがいいんでないかい?
0181駄々
2006/03/09(木) 01:58:19ID:kV2wX20Fそれでなんとか出来そうです
ありがとうございます!
0182名前は開発中のものです。
2006/03/10(金) 02:52:55ID:/vwSpjSbttp://gamdev.org/up/img/4909.zip
0183名前は開発中のものです。
2006/03/10(金) 18:35:27ID:kxaQ8pGuレーザーの動きが滑らかでいいね!
普通に楽しめますねー。
0184名前は開発中のものです。
2006/03/11(土) 13:07:48ID:B0K6mRFK贅沢いうと、複数ロックオンした時はいっぺんに発射するよりゼロコンマ秒遅れて時間差で
発射するようにしたほうが爽快な気がス
0185名前は開発中のものです。
2006/03/12(日) 16:59:08ID:EbhNu3eRパッド差してると勝手に右下に移動しちゃうんだけど……。
0186名前は開発中のものです。
2006/03/13(月) 03:31:36ID:3bCLLKKk0187名前は開発中のものです。
2006/03/13(月) 03:45:59ID:1xHX09ww時間差実装してみました。ついでにレーザーの表現もちょっと変えてみたです。
>>185
パッドによってはjoystick_xposが厳密に0を返さないことがあるみたいですね。
閾値を設けて判定するように修正しました。
ttp://gamdev.org/up/img/4967.zip
イカミサイルが時々何にも当たってないのに消えちゃう現象が出るけど、
原因がつかめん……
0188名前は開発中のものです。
2006/03/14(火) 19:14:36ID:8RK8eiVf即効で修正しまくるオマエGJ。
0189名前は開発中のものです。
2006/03/17(金) 21:57:55ID:/PdAbkhMこういう入力の仕方を教えて頂けないでしょうか
if there is an object at a position
でオブジェクトAがオブジェクトBの一定範囲内に入った場合、行動を起こすようにしたいのですが
この数値の範囲の入力方法がわからず困っております
マニュアルに書いてあるような初歩的な事かもしれないので大変恐縮ですがお願いします
一応、印刷された旧バージョンのマニュアルを持っているので
読んではみたのですが探し当てる事が出来ませんでした…(´・ω・`)
0190名前は開発中のものです。
2006/03/17(金) 23:48:51ID:UTobLwMnif there is an object at a positionは登録したオブジェクトと指定したオブジェクト同士が
衝突しないと真をかえさないので”一定範囲に入ったとき”とはなんだかニュアンスが違うような気がしますが?
自分のやり方でわるいですが”Execute a piece of code(コードを実行)”でGMLを書いたほうがすっきりすると思います
たとえばオブジェクトAのオブジェクト名を”obj_A”オブジェクトBをobj_B”として一定範囲に入ったときオブジェクトAを
動かしたい場合obj_AオブジェのステップイベントにExecute a piece of codeを登録する。
”一定範囲”が単純に”A,B間の距離”でいいならpoint_distance(x1,y1,x2,y2)関数(2点間の距離を計算する)を
使えばいいと思います。100ピクセル以内に入ったときとしての記述はこの場合・・・
if(point_distance(self.x, self.y, obj_b.x, obj_b.y) <= 100)
{
//ここに動かす為の記述をする
}
というふうにしてみてはどうですか?
0191190
2006/03/17(金) 23:55:05ID:UTobLwMn○ if(point_distance(self.x, self.y, obj_B.x, obj_B.y) <= 100)
細かい訂正及び長文ですいません(´・ω・`)
0192名前は開発中のものです。
2006/03/18(土) 00:27:30ID:WYhXOtxE>if there is an object at a positionは登録したオブジェクトと指定したオブジェクト同士が
>衝突しないと真をかえさないので
済みません、知りませんでした…
プログラムとかできないよって言う友人と作業しているので
GMLは使えないのですが(書くべきことを書いていなくて重ね重ね済みません(´・ω・`))
変数でも同じ事ですので大変参考になりました、有難うございます
0193190
2006/03/18(土) 02:26:21ID:9Lf6fvmN> プログラムとかできないよって言う友人と作業しているので
> GMLは使えないのですが(書くべきことを書いていなくて重ね重ね済みません(´・ω・`))
ああ・・なるほどGMLなしなんですか^^; GMLでもアクションアイコン(っていっていいのかな?^^)
でも自分が思っている動きができればOKかと^^
で・・・実現できそうですか?(いっちょかみしたので少し気がかり^^
0194名前は開発中のものです。
2006/03/18(土) 04:07:36ID:KjV7bw5B0195名前は開発中のものです。
2006/03/18(土) 13:39:39ID:bMeUjPwj0196名前は開発中のものです。
2006/03/18(土) 14:00:07ID:U+h1lbvn本当に有難うございました。
0197よこしまなMr.0
2006/03/18(土) 21:43:30ID:G0hInr+Cttp://gamemaker.main.jp/modules/articles/article.php?id=25
0198駄々
2006/03/23(木) 20:11:36ID:QpjTFGD2また質問なんですが主人公キャラに重力を与えたのですがブロック(地面)の上に乗ると
←方向に移動してしまいます(移動と言うよりも左に引っ張られている感じ)
どなたか解決方法を教えてください
0199駄々
2006/03/23(木) 21:07:49ID:QpjTFGD2自己解決しました
すいませんでした
0200名前は開発中のものです。
2006/03/24(金) 00:10:23ID:1MGw+l1bいいけど、質問する前に、もっと慎重にな。
フォーラムの質問もおまいなら削除依頼なりなんなりしておけよ。
あと、症状だけいわれてわかるエスパーなどいないことも覚えておいてくれ。
0201名前は開発中のものです。
2006/03/24(金) 22:32:50ID:PR6KQDDwぶっちゃけ過疎ってるんだから小さな質問でもいいんじゃない?
>>199
自己解決すんな。回答を待て!w
0202名前は開発中のものです。
2006/03/27(月) 12:11:59ID:Ft51kzDw…頑張ってみた。
はぁ。
0203名前は開発中のものです。
2006/03/27(月) 13:28:28ID:Ft51kzDwhttp://www.uploda.org/uporg347869.zip.html
0204名前は開発中のものです。
2006/03/27(月) 17:34:37ID:w/CqsEE/0205名前は開発中のものです。
2006/03/27(月) 19:38:49ID:Ft51kzDwジョージ…残念ながらそれは無理だ。
別に出来ないことはないが時間が無い。
リソースにメッセージデータが入ってない箇所が多すぎる。
いちいち特定してCRCエラーが起きないようにビクビクしながらやるのは
すごく大変なんだ。
クラック対策用の処理の潰し方が結構適当。
とりあえず致命的エラーは起きないようにしてあるけど、
起動時に必要な処理をどっか潰してる可能性もある…。
まぁ、俺が使っている"かぎりでは"何の問題もない。
ちゃんとファイルのロード、セーブも出来てるし実行ファイルの出力も出来た。
実行ファイルの方には何も手をつけてないから当然か。
0206名前は開発中のものです。
2006/03/29(水) 06:10:57ID:s0l2fzu90207名前は開発中のものです。
2006/03/29(水) 14:06:16ID:BdCnmoxX0208駄々
2006/03/29(水) 22:26:10ID:Mzj60OcAロックマンのようなボスキャラの動きなどはGMLコード(だっけ?)を使わなくては作れないのでしょうか?
質問ばかりですいません(しかも無駄レス・・)
0209名前は開発中のものです。
2006/03/29(水) 22:34:41ID:PV+kH8qvロックマンのようなボスの動きというのがわからないので回答できません。
すみません・・・
0210駄々
2006/03/30(木) 00:08:23ID:98xmE8PI・左右にランダムに動く(又は壁にぶつかったら反対方向に動く)
・2〜3秒に一回攻撃する
・ピンチになると本気モードになる(これは実装するか分からないのですが一応)
以上の動きをさせたいんですが
GMLコードを使わなくてもできますか?
0211名前は開発中のものです。
2006/03/30(木) 13:19:39ID:YmzEqY6O実際試してないができると思う、詳細はマニュアルorヘルプファイル参照願う
>左右にランダムに動く
ステップイベントにWith a change perform next actionをおいてsidesを2で指定し、その下にReverse horizontal directionアクションをおいて反転させる
With a change perform next actionの結果が偽ならReverse horizontal directionは無視され結果1/2の確率で反転される。
>壁にぶつかったら反対方向に動く
ステップイベントにIf there is a collision at a positionを置いてRelativeにチェック、x,yにはボスが1ステップで動く量を代入する(実際に動く前に
どこへ動くかの前判定になる)objectには壁になるオブジェクトを指定してやる(壁オブジェは親オブジェでくくっといてこの親でobjectに代入しておくと後々楽)
後は左右に動くと同じでReverse horizontal directionを登録、縦方向の動きがあるならReverse vertical directionもあわせて登録しておく、
この場合Start of block、End of blockで前述のReverse horizontal direction、Reverse vertical directionアクションをまとめてやる。
この2つは既に動作アクションが前もって実行されていることが前提であるから生成イベントとかで動作アクション等を割り付けておく。
0212211
2006/03/30(木) 13:44:20ID:YmzEqY6O>2〜3秒に一回攻撃する
アラームイベントを使う。
一番シンプルなのが常に指定した単位秒で毎回攻撃するという形で書かせてもらうと
生成イベントでアラームアクションを登録number of stepには現状ルームスピード*秒数の値を、
in alarm noにはどのアラームを使うかを指定する。
指定したアラームのイベントに攻撃する用のアクションを登録していって、最後に生成アクションでつくったアラームアクションをコピぺする
これで指定秒ごとに繰り返すようになる。
>ピンチになると本気モードになる
ピンチというと普通HPがある程度のとこまで減ったとかそんなんだよね?
それ前提で・・・
ステップイベントでHPとなる変数を If a variable has a valueで監視→規定量以下になったらさっきの
「2〜3秒に一回攻撃する」の秒数を減らすとか、移動スピードを多くするとかしてみたらどう?
実装するときはこの秒数なり移動スピードを変数で登録しておくなどの下ごしらえで結構楽に組めたりするよ
0213211
2006/03/30(木) 14:02:04ID:YmzEqY6O>>左右にランダムに動く
>ステップイベントにWith a change perform next actionをおいてsidesを2で指定し、
>その下にReverse horizontal directionアクションをおいて反転させる
>With a change perform next actionの結果が偽ならReverse horizontal directionは無視され結果1/2の確率で反転される。
ステップイベントでやると毎回確率判定が行われるから反転が重なる可能性がおおいので
これもアラームアクションを使って何秒間かに1回判定をかける方がいいですね
0214名前は開発中のものです。
2006/03/30(木) 16:02:04ID:flRGae76とりあえずは上のアラーム使う方法が手っ取り早いと思うけれど、
タイムラインで行動パターンを組んでループさせる方法もあるね。
特に説明はしませんが
ステップ数 行動
0 ランダムで方向決める
100 弾を撃つ
110 ジャンプ
200 弾を撃つ
250 弾を撃つ
400 先頭へ戻る
タイムライン上のスピードの変数もあったりするから、
GMLも知っておくといろいろ応用が利く。
パターン化された動きをするならこっち、
AIっぽく振る舞わせるならタイマーかなあ。
0215名前は開発中のものです。
2006/03/30(木) 16:06:44ID:flRGae76クリック&プレイ使ってた時の癖が
0216駄々
2006/03/30(木) 21:16:29ID:98xmE8PIとりあえず後で試してみます!
自分もクリック&プレイしてたな〜・・・・
0217名前は開発中のものです。
2006/03/31(金) 16:41:53ID:4VV46Pcn0218名前は開発中のものです。
2006/04/03(月) 14:38:26ID:W85JHXvuアレくらいわかりやすいともっと流行るのかなあ……
0219駄々
2006/04/13(木) 12:58:29ID:CCVlXrag・主人公についてくる
・敵が近づいてきたら攻撃しにいく
・敵が近づいてきたら遠ざかる(↑のとは違うキャラです)
上記のようにキャラを動かしたいんですかどうすればいいのでしょうか?
前回のはうまく動きました!(本気モードはまだやってない)
211さんありがとうございました
0220名前は開発中のものです。
2006/04/15(土) 19:49:09ID:fbNvFET3チュートリアルのボールゲームは作れたけど、自力じゃ歩くキャラ作るのもままならないやw
0221名前は開発中のものです。
2006/04/17(月) 01:49:39ID:MWZgJo7r30フレームのroomAにおいて、
オブジェクトBの座標に向かってスピード80で進むオブジェクトAがオブジェクトBと重なった時に次のイベントが発生するように
イベントの発生条件をアクションリストのIFを使って
obj_A=(obj_b.x,obj_b.y)
としたのですが、2〜3回に一回程素通りされてしまいイベントが開始されません。
どうすればいいのでしょうか?
あと、オブジェクトが重なりあった時の前面に出るオブジェクト画像の優先順位は変えられないのでしょうか?
どなたかお願いしますm(__)m
0222よこしまなMr.0
2006/04/17(月) 05:47:17ID:cr8rW51E>オブジェクトAがオブジェクトBと重なった時に次のイベントが発生するように
Case1. 自インスタンスの位置がobj_bの位置と同じかどうか判定する場合:
[If an expression is true]
expression: (x == obj_b.x) && (y == obj_b.y)
Case2. 自インスタンスのspriteがobj_bのspriteと重なっているかどうか判定する場合:
[If an expression is true]
expression: place_meeting(x, y, obj_b)
>オブジェクトが重なりあった時の前面に出るオブジェクト画像の優先順位
各オブジェクトのdepth(深度)を変更します。
0223名前は開発中のものです。
2006/04/17(月) 10:55:50ID:Zn9G8oL+>>222さん
>>221さんは
>スピード80で進むオブジェクトA
及び
> 2〜3回に一回程素通りされてしまいイベントが開始されません。
といってるから多分コリジョンエリアが重なっていない症状が出てるんだと思うんだけど?
だとするとexpressionは線分で判定するcollision_line()がいいんじゃないの
collision_line(xprevious, yprevious, x, y, obj_b, false, true)
みたいな感じで・・・
0224よこしまなMr.0
2006/04/17(月) 20:33:57ID:cr8rW51E補足どうもです。
>>222のCase2は素通りしたら意味が無かったです・・・
collision_line()で試してみたところ、collision_line()は「線分そのものと、静止しているobj_bが重なる場合」なら判定できるようです(つまり、「obj_Aのスプライトの形状」および「obj_bも動いていた場合」は考慮されない)。
一方、obj_A,obj_bそれぞれの動きとスプライトまで考慮し、さらに素通りした場合も考慮にいれてコリジョン判定をするとなると、どうしてもGMLでごちゃごちゃforループするしかないみたいです。
(素通りしないようにすれば、通常のコリジョンイベントで十分なんですけどね・・)
0225221
2006/04/18(火) 20:49:01ID:kvqrJBQi>>223さん>
詳しい説明有難う御座いますm(__)m
obj_bと同種のオブジェクトをポジションランダムに複数配置して、その上をobj_aが高速で移動していく動きを作りたかったんです。
コリジョンだとビリヤードの球のような動きになってしまったのでできれば他の方法が無いかとおもいましたが、
まだ初心者でGMLを複雑に使いこなすのは厳しいので、まずは欲張らずにコリジョンを使おうと思います。
丁寧に有難う御座いました!
0226223
2006/04/19(水) 14:23:47ID:D713torSなるほど、30fpsでspeedが80という高速オブジェってどんなんだろうと
思ってたんだかなんとなく判った。
その要件だとステップごとにdistance_to_object()でターゲットになるobj_bとの距離を
計測してやって80以上の場合にspeedを80とし、未満の場合はdistance_to_object()で
測定した距離の値をそのままspeedに代入してやってはどうだろうか?
減速する形にはなるが減速するのはobj_bと重なる時の1ステップだけで、なおかつ必ず
衝突判定がとれるようになると思う。一回試してみて
0227名前は開発中のものです。
2006/04/24(月) 14:36:25ID:+HnYfiB70228よこしまなMr.0
2006/04/24(月) 21:24:01ID:CcS3zOyAGMの日本語化について、現在までの情報をまとめると以下のようになります。
▲GM5.3Aの場合、ttp://gamemaker.main.jpで配布している「Game Maker 5.3A用 日本語化パッチ」でインターフェイス部分のみ日本語化可能。
ただし、>>202=203=205さんがメインメニューも日本語化可能なパッチを作成された。(このパッチについてはGMのライセンスに触れるかどうか微妙。現在リンク切れ。)
▲GM6の場合、実行ファイル自体が暗号化されているため、仮に技術的に日本語化が可能であったとしても、GMのライセンスに触れるため、パッチを作成することができない。
以前、本家ttp://www.gamemaker.nl/facts.htmlにて、「GMのプログラムが翻訳されやすいように修正を加えるといったことを計画している」との記述があり、作者さんにメールで問い合わせた結果、「いつになるか分からない」との事。
つまり、GM6自体のi18n(インターフェイスや表示メッセージの多言語化)待ちの状態。
(GM初心者で英語も苦手という人は、本家ttp://www.gamemaker.nl/doc.htmlにて配布されているGM6.0のヘルプ日本語訳が非常に役に立つと思います。)
で、i18nがいつになるか全く不明なので、「日本人のためのGMバイブルみたいなものを作れば、多くの人が気軽にGMを使えるのではないか」と思って試しに作ってみたのが次のHTML Helpです。(まだ目次を書いたぐらいですが)
ttp://gamemaker.main.jp/dlfiles/gm_japan.chm
※WinXP SP2の場合、ファイルのプロパティで「ブロックの解除」ボタンを押さないとHTMLが表示されません。
0229名前は開発中のものです。
2006/04/26(水) 09:53:02ID:GhrlEj72乙です。
ヘルプに含まれているGMLの各関数にサンプルコードを付けて欲しいなー。
ここで言うことではないとは思いますがとりあえず要望。
0230229
2006/04/26(水) 10:07:26ID:GhrlEj72>>229で書いた件ですが、ヘルプはGM付属の直翻訳ヘルプの事でして、よこしまなMr.0氏が作成しているHTML Helpではありません。
で、HTML Helpをちょっと見てみました。
関数リファレンスが期待していたような記述になっていてよかったです!
例:項がシンプルで判りやすくGJ!完全版を期待してます。
(たまにGMLの関数で扱いがわからず、数時間も悩むことがあるのでホント期待してます・・・)
0231よこしまなMr.0
2006/04/29(土) 07:39:55ID:QD/JyLTS関数リファレンスについては正確性と分かり易さを両立させようと心がけていた次第です。
>228のHTML HelpはDocBookで生成したものですが、いまいち作業が捗りませんでした。
そこでOpenOffice.org 2で書き直してみると、まともなPDFを素早く生成してくれたので、この形式を採用することにします。
ttp://gamemaker.main.jp/dlfiles/u_gm_rev1.pdf
目標としては、リニアに読んでいけば理解できる構成ですね。
それと、こういった文章があればGame Makerを大学や専門学校の講義で活用したい教員の方にとって便利だろうと思います。C++などの言語解説は抜きにして「純粋にゲーム作成について講義をしたい」とか。
0232名前は開発中のものです。
2006/05/02(火) 00:31:42ID:KgjzlEux0233名前は開発中のものです。
2006/05/02(火) 09:25:24ID:2lQlIqWb作者はそろそろUnicode位対応してくれと思う。
そんな簡単なもんでもねえのかなあ。
催促したら他言語化早まるだろうか。
0234よこしまなMr.0
2006/05/03(水) 17:54:24ID:blvZBroHttp://gamemaker.main.jp/modules/newbb/viewtopic.php?topic_id=58&forum=8
>>233
GNU gettextを使えばインターフェイスのi18nは割と楽に実装できるんですけどねぇ。
とりあえず、6.2が出た後の動向に期待がかかります。
0235名前は開発中のものです。
2006/05/11(木) 07:00:50ID:7O4pl5z4オブジェクト増やしていくとF5のローディング時間だんだん長くなるでしょ
敵キャラクター調整してるとこの時間なんとかならないかなぁとか思うんだけど
みんなどうしてる?
■ このスレッドは過去ログ倉庫に格納されています