トップページgamedev
983コメント346KB

【2D】ゲーム作成ツールGameMaker【マンセー】

■ このスレッドは過去ログ倉庫に格納されています
0001よこしまなMr.004/06/13 04:28ID:FjVifVER
2Dゲーム作成ツールGame Maker( - _ - )イイ!!なスレッドです。
機能がしっかりしているので、アイデア次第でいろいろなゲームを作ることができます。

「Game Maker」の特徴

・コリジョン(当たり判定)、スプライト、マップ、タイマ処理、ランダム処理、サウンド再生...などを簡単に管理できる
・*.exeにてゲームを出力可能
・キーボード、マウス、ジョイスティックからの入力をサポート
・イベントドリブン型なのでスマートにゲームを構築できる
・組み込みスクリプト言語"GML"により、さらに細かい処理が可能
・なんといっても無料!! (15ユーロ寄付してユーザ登録すると起動時のロゴが除去され機能が若干追加されるが、基本的に無料で十分使える)


Game Maker Website> ttp://www.gamemaker.nl/
日本語マニュアル[Word形式]> ttp://www.gamemaker.nl/doc/gmaker_japan.doc
0793名前は開発中のものです。05/02/07 14:43:36ID:1+7BHQSV
なぜブルブル震えるか考えてみたか?
Move towards pointは、あくまでオブジェクトに進行方向と速度を与えているに過ぎないということだ。
略図を使って説明。
★:自機
□:マス目
▲:マウスポインタ
速度:5(1ステップで5マス進む)

状態1:★□▲□□□

この次のステップはどうなるかというと、進行方向は右、速度5だから、

状態2:□□▲□□★

となる。じゃあ次は?といえば、今度は進行方向は左なので、1の状態になる。
この繰り返しが、あのブルブル震える現象の正体。これをどう解決するか?
マウスポインタまでの距離が速度より大きい場合と小さい場合で処理を変えなければならないだろう。
速度より小さい場合のときに、速度5ではなく、マウスポインタまでの距離を移動させるようにすれば。。。
速度とか弄るより、この場合だけjump to a given positionを使うとよい感じか。
ただし、マウスポインタと自機がピッタリ重なったときに速度(speed)を0にしておかないと、無駄に動いてしまうぞ。

左クリックの問題は、Global Mouseの中の物を使うとよい(Global left buttonか?)
でないとおまいさんの指摘どおり、オブジェクト上にマウスポインタがあるときだけしか反応しない。
Left buttonイベントは、メニュー選択などのボタンアクション向けかと思われる。

文才無いからか、老婆心過ぎるのか、無駄に長いな。。。ウザカッタラキエマス。。。
079478905/02/07 15:56:39ID:2lGFcnKA
>>793
キタ――――!!
解決しますた! 本当にありがとうございます!
ちゃんと動いて弾を撃ってます!
自機操作さえ何とかなったらあとはシューティングはテンプレや
初心者向けの製作チャートがいっぱいあるんで何とかうまくいけそうです
まともなのが出来たらサンプルをageようかと思います
本当にありがとうございました!
0795名前は開発中のものです。05/02/07 19:11:34ID:1+7BHQSV
>>794
無事解決できてなにより。
距離の判定は多分GML関数(point_distanceかな?)使わないと出来なかったんだが、出来てる様でよかった。
また余計なお世話かもしれないが、最後に一言。
スクリプトの記述はそんなに言うほど難しくない。
むしろ、アイコンでやりくりするほうが煩雑になったりする場合があるので、毛嫌いせず、挑戦してほしい。
基本的な文法の理解と、GMLをヘルプで調べるスキルさえあればいいんで・・・
(・∀・)ガンガレ!!
079678905/02/07 22:40:21ID:SX23cWKX
>>794
申し訳ありません。。。
やっぱり「静止した!」と思ったら常時Jump〜アクションが優先されていただけでしたorz
距離の判定を全てQuestionアイコンで行っていまるのですがやはりGMLが必要なようです・・・
やはり、しばらくスクリプトを修行してきまつ
・・・と、まあ自機操作は漏れが勉強するとして、
それはそれとしてJump〜アクション(アイコンのみ)の自機移動による
STGを概要だけ作って見ようとしたところ・・・
http://gamdev.org/up/img/2331.lzh
うわあぁぁあぁああぁああせdrftgyふじこlp
問題点は列挙にいとまが無いですがorz、とりあえず解決方法がまったく見えてこないのは
・敵大杉弾大杉
 (ステップ毎にオブジェクト生成アクションをさせている事に原因があるような気がしますが、
  ステップ毎以外に常時敵を出現させたり、
  特定の条件下やランダムで弾を撃たせたりする方法が思い浮かばない)
ザコの挙動がおかしいのはアクションの数値を間違ってたりしてるというのは分かっているので
それは適当に直せば大丈夫なのですが、上二つがどうにも・・・
いつまでもただの長文質問ばっかりで少しはうpなどしてスレに貢献しようと思ったら
結局また長文質問を出してしまう有様・・・スマソ
左上のカタパルトからしか敵が出てこないのはこれを書いている間に解決しますたw
ザコを射出する座標を設定してなかったから全部(0,0)から出てたのね。。。orz
入力ミス&入力忘れ以外で何か他にアドバイスあればおながいします
0797名前は開発中のものです。05/02/07 23:34:31ID:1+7BHQSV
orz
>>793のヒント。
・条件文を使うのはやはりステップイベント
・条件に使うアイコンは8角形の奴で、中に?かVARと書いてある奴のどちらかを使う(どちらでも出来る)
・2点間の距離を得るのはpoint_distance(x1,y1,x2,y2)という関数。 点(x1,y1)と点(x2,y2)の距離を返す
・マウスポインタまでの距離がspeedより近い場合に、自機のspeedを0にするのを忘れずに
それ以外について。(2つと書いてあるが、出現数に関してだけかな)
『敵多すぎ=ステップごとに生成しているから』は当たりだ。
特にenemy2の弾撃ちは確実にステップごとに行われているため、ものすごい数が飛んできている。
一定の時間間隔で撃つには、alarmイベントを利用するとよい。
また、敵生成でも使っているランダムの条件をくわえて抑えるのも可。
カタパルトによる敵生成も、ステップごとに判定しているな。
1秒間30ステップがデフォルトなので、1秒間で考えると結構出現する計算になるんで、
弾と同じように一定間隔にするか、出現確率を下げてみてはどうか。
最後に、ここを参照しているか?イベントやアクションについて基本事項は抑えてあるので一読を。
GM6の情報だが、アイコンに関してはさほど変わってないので、参考になるはず。
GMJapan 非公式情報サイト
ttp://gamemaker.main.jp/index.php
いつもお世話になっております...>>よこしまさん
079878905/02/08 00:32:37ID:h6GtyXnX
>>797
度々申し訳ありません
実は797様がダウンロードなさったのは一回細かいところを修正してうpしなおしたバージョンでして
それを書きこむのをすっかり忘れていたため内容が796のカキコと矛盾するものになってしまいました

ええと、GMLのpoint_distance(x1,y1,x2,y2)に関してはご紹介してくださったサイトを含め
勉強してみます。ありがとうございます! ただ、ヒントの上二つ
>・条件文を使うのはやはりステップイベント
>・条件に使うアイコンは8角形の奴で、中に?かVARと書いてある奴のどちらかを使う(どちらでも出来る)
自機オブジェクト(2種類ありますが)の中身見ていただければ分かるのですが、
一応If a variable has a valueクエスチョンでマウスと自機の位置関係に関して条件分岐っぽいものを
実装してはいます。jikiの場合は無条件下でマウス座標に対し所定速度のMoveアクションを行い、
通常速度分の距離以内にいるならJumpアクション、jiki2は無条件下でJumpアクション、
マウス座標と所定の距離より離れていたらその距離分のフレーム間速度でMoveアクションと
してはいるはずなのですが・・・何故か完全Jumpアクションでの挙動です
まあ、中身からも分かるとおりアイコンの数が大変なことになっているのでw GMLを修行することにしますが、
それでも上で論理的に何が間違っているのかよく分からないのが心に残ります・・・
とりあえず目標は見えてきたし、うだうだ言っててもウザイと思うので名無しに戻らせていただきます
ご教授ありがとうございました!
0799名前は開発中のものです。05/02/08 05:05:43ID:zk7JeCnz
>>798
もう直してるかもしれないけど、mouse_yと比較するのは jiki.x じゃなくて jiki.y ですね。
で、jikiについては最初の Jump to a given position を実行した時点で
jiki.x=mouse_x, jiki.y=mouse_y になります。
だからその後の条件判定にはひっかかりません。

jiki2については、たとえばx方向の条件について見ると
(1) jiki2.x-mouse_x が-6より小さい時は、最初のIfにひっかかる
(2) jiki2.x-mouse_x が-6〜6の時は、最初と2番目のIfにひっかかる
(3) jiki2.x-mouse_x が6より大きい時は、2番目のIfにひっかかる
ので、結局どんな場合でも Jump to a given position が実行されてしまいます。

この場合、座標に関する4つの条件が「すべて」成立した時だけ
Jump to〜 を実行すべきなので、and演算子(&&)を使って

If 条件1 && 条件2 && 条件3 && 条件4
Jump to a given position

のように一つの判定文にまとめます。まあ、すごく長い式になってしまうので、
ここまで来たら上で出てたpoint_distanceを使った方が楽ですが。
0800よこしまなMr.005/02/08 06:48:20ID:bYhSHMb8
>>789
>なんで直ぐにオブジェクトの位置をマウスの座標に代入しないで変数作るのですか?
mouse_yは各ステップごとに更新される変数... というわけではなく、「GML内で参照されるたびに更新される変数」ですので
mouse_xやmouse_yをせまいコード内で何度も記述するのは避けるべきだと思います。

ちなみにmouse_yをCとWin32APIで極端に書くと、
POINT point;
RECT rect;
int mouse_y = 0;
GetCursorPos(&point);
GetClientRect(hWndGM, &rect);
mouse_y = (point.y - rect.top);
たぶんこんなかんじなので、1秒間に何百回もmouse_yを参照すると重くなるかも... というわけです。

>>797
どもです。
0801まとめた ◆yIZgqoM/0k 05/02/11 19:46:08ID:VYcDpRib
何故かまとめサイトがデリられた。
近いうち移転するんでよろ
0802名前は開発中のものです。05/02/11 22:59:27ID:4Bznc7HM
ここじゃなくて?
ttp://gamemaker.main.jp/
0803名前は開発中のものです。05/02/11 23:19:42ID:Dcu7PeaK
>>801
乙です。漏れもwww-aaaにもってたサイトがデリられた(gamemakerと関係ないサイトだけど)
RSSでチェックできるサイトにしてくれたらなぁ・・・・と要望。
0804まとめた ◆yIZgqoM/0k 05/02/13 20:52:56ID:gmldcHyv
http://gamemaker.shrine-maiden.org/
移転完了。RSSでチェックできるようになったはず。
なんかあったら言ってくれ
0805名前は開発中のものです。05/02/14 01:03:04ID:kuuRTVnx
>804
お疲れ様です。

むかしハマったクリックアンドプレイっぽいなと思って、
なんとなくブロック崩し作ってたらいつの間にか、どっぷりハマってしまった。
やっぱりゲーム作るのは楽しいなぁ。
0806名前は開発中のものです。05/02/14 01:25:11ID:Jj3GmAmR
>>804
乙、さっそくRSS登録しますた。
0807名前は開発中のものです。05/02/17 02:16:06ID:DecmQgwT
GM6.0では、日本語表示は出来ないのでしょうか・・・?

私がやったことは以下のとおりです。
・フォントリソースに"MSゴシック"、Character Range をALLに設定したものを追加。
・以下の命令を持つオブジェクトを追加
Draw Event:
set the font for drawing text to font0 and align left
set the drawing color to 0
at position (0,0) draw text: "テスト"

以上を実行すると、"テスト"とは表示されず、文字化けしたようなものしか表示されません・・・
半角カナの文ならうまくいくのですが。2バイト文字は表示できないのかな・・・
余談ですが、
半角カナだけで日本文を表示すると懐かしいと感じるのは年寄りだからですか、そうですか。
0808名前は開発中のものです。05/02/18 21:48:21ID:sqW1Scv8
>>807
うちもだめですなー
てか、5.3で日本語表示が出来たことに、今気付きました。
日本語化のおかげ?
なんかいい方法ないもんかなー。
日本語をビットマップフォントに置き換えるスクリプト書くとか……面倒か
080980705/02/19 04:33:32ID:MYybBstf
>>808
現状、画像を利用するしか解決できなさそうですね。
ver6.1ではローカライズに力を入れるみたいなんで、そのときに修正してもらえることを期待・・・
0810名前は開発中のものです。05/02/19 16:10:38ID:r5DvU9w7
5.3での日本語表示ってどうやるんですか?
0811名前は開発中のものです。05/02/20 01:15:07ID:k+cXeeL8
display a messageでも日本語表示されないね。
俺は仕方ないので、EDGHで画像作って表示させてるけど、激しく面倒・・・orz

>>810
Createイベント等で、「set the font for drawing text」日本語フォントを指定、
Drawイベント内で、「draw a text」で文章を表示させるだけだよ。
もしかしたら、日本語パッチを当ててないと表示されないかも・・・。
0812名前は開発中のものです。05/02/20 11:48:48ID:j27t95AP
>>811
できました。ありがとうございます。


0813名前は開発中のものです。05/02/20 18:20:54ID:4c0NXvEv
GMの使い方を覚えるために作ってみました。
プログラミングの経験が殆ど無く、マニュアルと睨めっこしながらコードを書いたので
やたらと重いものになってしまいました・・・
ttp://hiya.ciao.jp/gm/file/Ms_paddler_gm6.zip
ttp://hiya.ciao.jp/gm/file/Ms_Paddler_exe.zip

プログラミングが出来なくても思いついた事をすぐ形に出来るGMはほんと楽しいです。
0814名前は開発中のものです。05/02/24 19:56:46ID:U48Jz3Xw
アクションゲーム作成中。
ttp://www.ismusic.ne.jp/nagatsuta/yurika3_gmd.lzh
継承覚えたら、格段にコード量減ったわー。しかし疲れた。
0815名前は開発中のものです。05/02/24 20:13:05ID:U48Jz3Xw
>>813
今更だけど、できいいなぁ。
演出が凝ってる。
0816名前は開発中のものです。05/02/25 18:20:44ID:6+Hc8BU2
最近、レベルが高いぁ。
ところで日本語表示について。次のコードを実行すると、
display a message で日本語が表示できるようになりました。(5.3A , 6.0 ともに動作確認)
-----
message_text_font("MS ゴシック",10,c_white,0) ;
-----
最初の引数にはフォント名を入れるのですが、GM6.0で設定できるフォントリソースのIDではありません。

また、レジストの制限がありますが、
GM6.0ではスプライト画像をフォントとして利用することが出来るらしいです。(未確認)
関数font_add_sprite( ) を参照してみてください。
使用する漢字の描かれたスプライトを用意することで、
0-255のアスキーコードをテーブルとして応用することが出来ると思います。
ビットマップフォントを使用することには変わりませんが、
少しは自分で管理するより楽になるかも・・?
0817名前は開発中のものです。05/02/26 10:09:59ID:B+4ixigE
>>813
ほんとすごいなぁ
アクションゲームなら何でも出来そうだ・・
081881305/02/28 01:07:44ID:GAEbwpd7
プレイありがとうございます。
ブロック崩しで少しは使い方が判ったので、
今度はアクションゲームに挑戦してみようかなぁと思ってます。
0819名前は開発中のものです。05/03/01 10:28:16ID:a8U64FeL
Gamdev が復活してきたので、wikiのほう適当に編集しておきました。
作品が多くなってきたので、負荷分散のため別ページに移動しました。
前回更新からかなり日が経っていたのもあり、
既にDLできなくなっている作品は、割愛させていただきました。
抜けてる作品があったらごめんなさい。
0820名前は開発中のものです。05/03/01 13:52:14ID:7Kgvi68w
>819
乙ですっ。
人少なめですが盛り上げて行きましょう!

やりたい事は色々あるものの、絵がなぁ…絵が…
絵描き歌のかわいいコックさんですらUMAになっちまうしなぁ。
0821名前は開発中のものです。05/03/01 16:43:12ID:mFC8Y2QC
showcaseのコンテストどうなった?
0822名前は開発中のものです。05/03/05 02:04:53ID:ioXJEL8a
>>819
乙です。
参考にさせていただいてます。
0823名前は開発中のものです。05/03/05 15:57:28ID:f+q5Yy4z
日本語マニュアルはもうなくなったんですか?
0824名前は開発中のものです。05/03/05 23:41:16ID:f+q5Yy4z
すいません。落とせました。
0825名前は開発中のものです。05/03/06 18:04:39ID:am2JgNGr
EXE形式にするにはどうしたらいいのですか?
0826名前は開発中のものです。05/03/06 18:17:54ID:Lc/GMt6Z
File メニューにある、Create Executable を選択。
0827 ◆dmakQ6Mags 05/03/06 19:36:38ID:UHvjcj+y
ゲームを作ってはみたものの全く利益に繋がらないという方へ
簡単に大儲けしてみましょうよ
■□■□■□■□■□■□■□■□■□■□
2週間で100万円 最高のビジネス到来!
成功者続出です!
□■□■ 特 徴 □■□■
◎知識や技術は何もいらない!
◎一日30分で十分稼げる!
◎家に居ながらできる!
◎利益は全て自分のもの!
◎2週間で100万円!
◎特別おまけ付き!
■□■□■□■□■□■□■
無責任な誇大表現ではありません!
ご自分の目でお確かめ下さい!
人数制限あり!早い者勝ちです!
詳しくは下記アドレスまで!
ttp://www18.tok2.com/home/kantan100man/
皆様のご訪問お待ちしております!
■□■□■□■□■□■□■□■□■□■□
これで貯めたお金でツールを買って最高のゲームを作ってください
0828名前は開発中のものです。05/03/06 21:03:11ID:EfEp2IDv
http://gamdev.org/up/img/2398.png
ブロック素材提供
0829名前は開発中のものです。05/03/09 18:12:05ID:5+vQO/af
壁にぶつかるとChange the instanceで
画像が入れ替わるように設定したのですが、そこからまた壁から離れると元の画像に戻るように設定したいのですが
どうすればいいかわかりません。どうすればいいでしょうか?
あと、常に画像が変化し続ける(1秒ごとに画像が変わるなどのような)ように設定したいのですが
なかなかわかりません。。
0830よこしまなMr.005/03/09 19:50:41ID:xegQl9qY
>>829
GM Japan Forumで既に返答しています。
0831名前は開発中のものです。05/03/09 20:20:12ID:CgMXBO4N
>>829
前者の件に関して、よこしまなMr.0氏の回答でも出来ますが、
こんな感じでもよいかと。
ttp://gamdev.org/up/img/2406.zip(gm6ファイル)

obj_Wall2のほうで、ステップ毎に周りにobj_Myobjが居ないかどうかチェックしてます。 (居た場合に処理を抜けてます)
obj_Myobj中のコリジョンイベントでやっている move contactは、壁に密着するためのテクです。
0832名前は開発中のものです。05/03/10 23:50:32ID:U3xIj/jG
実行ファイルでけー・・・。
UPXでどれだけ縮む?
0833よこしまなMr.02005/03/25(金) 14:48:42ID:gN2sX+M2
本家サイトにて、GM6.0日本語マニュアルが配布開始されました。

詳細:
ttp://gamemaker.main.jp/modules/news/article.php?storyid=21
0834名前は開発中のものです。2005/03/31(木) 01:42:11ID:YNa+mEh/
面白そうなので作り始めたものの、
スレに書き込みが無く、不安な気持ちの俺ガイル。
0835名前は開発中のものです。2005/03/31(木) 01:43:05ID:3TThfFxd
>>834
書き込みはないけど、見ていますよ。
0836名前は開発中のものです。2005/03/31(木) 15:24:54ID:UpoF/Zxu
>>834じゃないけど。
練習作が出来たので、アップしてみました。
http://gamdev.org/up/img/2478.zip

GameMaker、面白いですね。
0837名前は開発中のものです。2005/03/31(木) 16:42:01ID:MrBus2W4
うーむ、得点を常に左上に表示したいのですが、できません。
Viewでスクロールさせているので、
もうひとつのビューを使って得点表示オブジェクトを作ろうとすると、
左端の壁を、背景が覆う…orz

Draw the value of scoreで、
画面から見た座標指定はできないものですかね?
08388372005/03/31(木) 17:00:18ID:MrBus2W4
ありゃ、公式にあるチュートリアルを見るのを忘れていました。
自己解決しました。失礼しました。

view_xview
view_yview ですね。
0839名前は開発中のものです。皇紀2665/04/01(金) 10:24:12ID:1ARpyFX9
こんにちは、横スクロールアクションゲームを作っている者です。

敵を倒す判定で困ったことになっていまいました。
重なった敵を倒そうとすると、一匹は倒せるものの、
主人公キャラが死亡してしまいます。

・主人公キャラ
 ・敵キャラと衝突イベント
vspeed > 0 && y < other.y+8が成立している時

(other)Destroy the instance
(self)Set the vertical speed -10
    (↑ここが原因っぽい。マ○オ風にしたかった。)

else

死亡時キャラグラに変更
1000ミリ秒停止
ライフが一つ減る
現在のルームをやり直す


次の発言へ続く。
0840名前は開発中のものです。皇紀2665/04/01(金) 10:25:15ID:1ARpyFX9
・敵キャラ
 ・破壊されたときのイベント
主人公キャラ.Chainに1を足す
得点に「10*主人公キャラ.Chain」を足す
(地面に着地したらChainは0になる。連続踏みボーナスのつもり)

重なっている敵を同時に倒す方法はないのでしょうか。

vspeedがマイナスになっている時は判定しないように
しようかと思いましたが、それだと下から触った時に主人公キャラが死ねないし。

Destroy instance a potisionを色々な方法で使って見たのですが、
うまくいかないし…

わかる方がいたら、助言をお願い致します。

(アップロード用のファイルを作ったのですが、
 Gamedev.orgが落ちているため、アップできず・・・)
0841名前は開発中のものです。皇紀2665/04/01(金) 15:48:39ID:2TUpx/JQ
そうそう、コリジョンチェックは同時に二つ以上は出来ないんですよ。
衝突対象のインスタンスが複数あった場合、
インスタンスIDの最も若い番号のものとのコリジョンチェックとなってしまいます。

以下、こちらの想像になりますが>>838さんの場合、
一匹の判定を行った直後のステップに、
(すでに下がっている位置から)主人公ともう一匹目とのコリジョンチェックが入るため、
if (vspeed > 0 && y < other.y+8) が満たされずにあぼーんしていると思われます。

場当たり的な解決法ですが、
主人公と敵のコリジョンチェック時に、主人公へ以下のコードを適用してみてはどうでしょう。
---------------
x = xprevious
y = yprevious
---------------
この場合1ステップごとにそれぞれ判定するため、
かなりの数が重なっていた場合は動作がおかしくなってしまうかもしれません。

1ステップで全ての判定を行うには、ちょっと複雑なコードが必要そうですね。

これで解決できなくてもうらまんでください。。。
0842名前は開発中のものです。皇紀2665/04/01(金) 15:49:47ID:2TUpx/JQ
訂正;>>838さんではなくて>>839さんでした。
0843839皇紀2665/04/01(金) 16:54:10ID:1ARpyFX9
実は838=839だったりします^^;

おお、こっちで対処した方法よりも、
>>841さんのコードを入れたほうが性能がいいですね!
ありがとうございます。

こっちは、倒した時に、とある変数に1を代入して、
次の死亡時に、とある変数が1だった場合に、それを0にして、
死亡をキャンセルする、という風にやっていたのですが。

…直前のステップの座標を読み込んでいるみたいですが、
どうして成功するのか、原理がわかりませんが…

猛烈に感謝します。
084482皇紀2665/04/01(金) 18:19:47ID:8UFw11JE
Rezもどき作成中
何時完成することやらorz
0845841皇紀2665/04/02(土) 00:33:28ID:e8w6vALJ
蒸し返すようで申し訳ないですが、私>>841でえらい適当なこと言ってますね。というか嘘ついてます、ごめんなさい。
最初に言っていることですが、アレは衝突するオブジェクトがソリッドのときです。
(なぜならソリッドオブジェクトと衝突したときは、強制的に直前の位置に戻されてしまうからです)

ソリッドでないときは、重なっている全てのインスタンスとコリジョンイベントは生じます。
しかし、同時ではなく一つずつ処理されます。
>>839さんが詰まっていた原因は、一つ目の敵と衝突したときにvspeedを上方向にしてしまっているので、
二つ目の敵の処理に移ったときに、条件の一つ目 (vspeed>0) が満たされなくなっているため、が正解です。
すみませんでした。。。

対処法ですが、>>841で言っていることは忘れてください。。。(同時に踏めないと思われます)
当たり判定で踏むor死亡の条件文は、一見正しそうに見えますが、踏んだときに移動方向を修正することを考えるとあまりよくありません。
そうではなく、お互いの衝突する(重なっている)直前の位置関係を見て、判定してはどうでしょうか。
たとえば、衝突直前の位置で、主人公のあたり判定最下部分が、衝突する敵の当たり判定最上部より上にあったら踏む、など。。。
衝突直前の位置は、xprevious,ypreviousで参照できます。

例 ) show information による情報 (16とか-12は調整してください)
Collision Event with object obj_enemy:
if expression (yprevious+16 )< (other.yprevious-12) is true
    for other object: destroy the instance
    set the vertical speed to -5
else
    destroy the instance

長文ごめんなさい。
0846名前は開発中のものです。2005/04/02(土) 21:57:55ID:9/v1pEH6
なんとなく作成板に来て2Dアクションが作れるということで機能からgamemakerを使っているものです。なかなか難しいですね。
質問なのですが、今ロックマン風2Dアクションを作っているのですが、ジャンプはうまくいったのですが、地上でキャラを右や左に移動させることができません。
普通に設置するとキャラが壁をすり抜けてしまうので壁に当たったとき速度が0になるようにしているのですが・・・。どうしたらいいでしょうか。
後は重力を下にしか設定していないのにジャンプ中に右に移動すると加速度がかかり左は等速運動になってしまいます。
それでは回答していただければと思います。
0847名前は開発中のものです。2005/04/02(土) 22:07:49ID:9/v1pEH6
すいません。後者の問題は解決しました。
相対設定が違っていたのが原因だったようです。
0848名前は開発中のものです。2005/04/02(土) 22:25:38ID:9/v1pEH6
すいません前者も解決しましたw
しかしこのソフト、やればやるほど味が出ますね。
0849名前は開発中のものです。2005/04/10(日) 13:52:46ID:Ft2lWGsv
はじめまして。最近このツールを使い始めた者です。
縦スクロールのシューティングゲームを作ろうと思っているのですが、
敵キャラ一体ずつに耐久値を設定し、自機の弾が当たるごとに耐久値を減らし、
耐久値が0になったら消滅させるようにしたいのです。
敵キャラ一体ごとに変数を設定する、という方法でもできないことはないと思うのですが、
敵キャラがランダムで生成されるようにしたいので、その方法をとることが出来ません。
どのようにすればよいでしょうか?
0850名前は開発中のものです。2005/04/10(日) 20:50:29ID:4BUBsZ6n
これ以上プログラマの仕事を奪わないでくれい!
0851名前は開発中のものです。2005/04/11(月) 00:44:27ID:pmiR29yl
その心配はないと思うぞ。
ツールである以上どうしても限度があるし
結局はプログラム組める奴が勝る・・・っていうか、自作できるならこんな苦労しない・・・orz
0852名前は開発中のものです。2005/04/11(月) 19:39:07ID:gpEYhi0g
>>849
どんなのを作りたいのか分かりませんが、同じ敵、同じ画像のオブジェクトを何種類か用意して
それを順番に出せば良いと思います。
0853名前は開発中のものです。2005/04/16(土) 12:37:59ID:I50qDNJ/
ボイドトランサのGM6ファイル公開した丼氏は神。

ttp://homepage1.nifty.com/cheap/untitled/
0854名前は開発中のものです。2005/04/22(金) 07:05:46ID:2k8er4Qc
うちの大学の演習科目でこのツール使うそうなので、どんな物なのか覗きにきますた
08558532005/04/24(日) 18:53:27ID:gUwf2Is+
>854
とにかく楽、やね。
上記の丼氏のサイトでチュートリアルあるから覗いて見れ
08568492005/05/01(日) 18:51:32ID:p1tHT4Pn
失礼します。
スコアを半分にしたり、1,5倍にする、といったアクションをさせたいのですが、どうすればよいでしょうか?
0857名前は開発中のものです。2005/05/03(火) 00:25:38ID:LBbdJe+i
>>856
score=score*0.5;
とか
08588492005/05/07(土) 15:15:01ID:yG9sIXqw
度々失礼します。
一つのゲームに二種類の難易度をつけて、ハイスコアリストを二種類作りたいのですが、どうすればよいでしょうか?
0859名前は開発中のものです。2005/05/08(日) 00:56:20ID:aUYEHdno
本家でGM6の次期バージョンの情報が出てる。
バグフィックスや、エディタの調整をやるみたい。
見てみると、結構バグが多いようだ。。。
ttp://www.cs.uu.nl/people/markov/gmaker/todo.html
0860名前は開発中のものです。2005/05/08(日) 01:26:06ID:7HhJrEj2
シューティングゲームを作っているのですが、
かれこれ3時間ほど悩んでいる事があります。

マウスのボタンを押し続ける事で、1秒間に8発ほどの弾を発射する、
連射機能を付けたいのですが、どのような処理をすれば良いのでしょうか。

GMはver5.3Aを使っています。
フレームレートは60に設定してあります。
よろしければお知恵を貸して下さい。
08618602005/05/08(日) 09:06:10ID:Jn0IsbF2
一晩、仕事をしながら考えましたところ、
なんとか自己解決できそうな雰囲気です。

詰ったら、またお願いします。
0862名前は開発中のものです。2005/05/08(日) 19:45:59ID:tBnYVyJ4
どこでどう詰まって、それをどう解決したのかを書いといてくれたら
将来、同様の処理で悩む人の助けになるかもしれない。
08638602005/05/09(月) 15:13:26ID:h92qojUL
では、自分が悩んだ連射機能について書きます。
自機となるオブジェクトに、以下の処理を行いました。


イベント    アクション
[Create]━━[Set variable canshoot to 1]

[Alarm 0]━━[Set variable canshoot to 1]

[Step]━━━[If left mouse botton is pressed]
                ┃
         [If canshoot is equal to 1]
                ┃
                ▲ Start of a block
                ┃
         [Set variable canshoot to 0]
                ┃
         [Create instance of object (発射する弾のオブジェクト名)]
                ┃
         [Set Alarm 0 to 8] ←数字が大きいほど連射速度が落ちる
                ┃
                ▼ End of a block

サンプルゲーム 1945と、同じ様な処理になりました。
0864名前は開発中のものです。2005/05/14(土) 14:33:13ID:TuIBdZZc
こう言うのはありがたいなあ。
0865名前は開発中のものです。2005/05/14(土) 21:52:32ID:AaeMHBn6
>>863
GっJーぶ。
0866名前は開発中のものです。2005/05/16(月) 23:13:12ID:ksOzUGDv
マニュアル通りにやってもぜん全然違う動作する。
違う動作って言うより、何にも変化しない時がある。
壊れてんのか?コレ。
保存して終了しても、次にやるときに全然保存されてねぇし。
ちゃんと設定してるのにルームの外に自機が出ちゃうし。
0867名前は開発中のものです。2005/05/16(月) 23:21:04ID:Wm9Xk9Nr
まぁ、所詮フリーソフトですよ。
0868名前は開発中のものです。2005/05/17(火) 00:19:51ID:pjjVkKq6
>>866
> 保存して終了しても、次にやるときに全然保存されてねぇし。
数ヶ月使ってるけど、そんな現象は一度もないが。

ゲーム動作に納得いかなかったらソースうぷしてここで聞くなりしてみれば。
0869名前は開発中のものです。2005/05/17(火) 00:27:40ID:2qtACK8+
ルームから自機が出ないようにするのはどうやるんですか?
色々やったけど、ルームの外枠部分に透明のブロックを置くしか出来ないんですけど。
コレだと全然話にならないので困ってます。
0870名前は開発中のものです。2005/05/17(火) 00:53:39ID:pjjVkKq6
863氏を真似てみる。
例:右矢印キーで右へ動かす場合に、ルームからはみ出るのを防ぐようにする処理。

[Keyboard Event for <right> key]
   [if x is smaller than room_width] ※変数room_widthでルーム幅が分かる。厳密にはオブジェクトの基点によるから、調整が必要。
              ┃
              ▲ Start of a block
              ┃
   [Jump to given position (4,0) relative]
              ┃
              ▼ End of a block
0871名前は開発中のものです。2005/05/17(火) 02:26:34ID:2qtACK8+
>>870
サンクス。
スクリプト使わなくちゃ駄目なのか。
ルームの境界線に達した時に起こすイベントと自機の移動速度を0に設定できるアクションのアイコンがあるから
アイコンで出来るのかと思った。
マニュアル読むと出来そうなのに、実際やると何にも出来ない。
アイコンは飾りですか?



0872名前は開発中のものです。2005/05/17(火) 20:13:05ID:Xz1FpaVV
6.1βがキテマスヨ。
ttp://www.cs.uu.nl/people/markov/gmaker/beta.html
主な変更点は
パーティクルの仕様変更、サーフェス(裏画面)作成および描画のサポート、3Dモデル形状作成のサポートかな。
数種類のオブジェクトからランダムに選択してインスタンスを作成する、といった新しいアクションも追加されている。
また、イメージエディタが少し使いやすくなってる。とはいえ、EDGEとかの方が使いやすいとは思うけどね。
0873名前は開発中のものです。2005/05/18(水) 10:57:11ID:bUL6qxTH
やべっ、これ作ってておもろいわ
ツクール,C&C,HSPとかやってたけどさ
これが一番わかりやすくていい感じがする

ちょっとゲーム作ってみるよ
0874名前は開発中のものです。2005/05/18(水) 21:01:12ID:EsN3mDOU
kitaisiteru
0875名前は開発中のものです。2005/05/19(木) 08:56:28ID:p+eF/8jP
873ではないがうp
タイトル部分だけだが・・・
ttp://gamdev.org/up/img/2673.zip
08768732005/05/19(木) 12:05:59ID:S5NL3eo/
俺もUPしてみよっと
http://uploader.xebra.org/?id=d0b6d0c&dl=1
タイトル&NewGame押した後、自作マップチップを並べた奴

キャラグラ描くのがつれぇぇ><
0877名前は開発中のものです。2005/05/19(木) 16:51:05ID:eE37F0Ib
両方とも良い感じ。ガンガレ。
0878藤野社長マンセー2005/05/19(木) 17:00:44ID:fki78r0E
今、必死にSTG作ってる。
普通だったらこんなにタルい作業に手は出さないと思う、だけどなんか
小さい頃の情熱が突然噴出してきてしまい、激しく楽しい。








シューティング・ラ(ry
0879名前は開発中のものです。2005/05/20(金) 21:00:31ID:H0Kq/TNd
うへっ、花火とかシェアウェアの機能か
レジストろっかな
08808732005/05/20(金) 21:20:05ID:H0Kq/TNd
はじめから、アクションRPGなんか作ろうとしたのが間違いだった・・・
操作慣れる為に、一週間くらいで作れそうなミニゲームつくってくるよ
08818492005/05/21(土) 17:40:35ID:Ju99Y1o2
ようやく使い方が飲み込めて来ました。
開発途中ですが、便乗して・・・
ttp://etcete.hp.infoseek.co.jp/ro.zip
0882名前は開発中のものです。2005/05/21(土) 19:50:18ID:wSWQYUfj
>>881
おお、凄いCoolなゲームだ
完成板楽しみにしてます:D
0883名前は開発中のものです。2005/05/21(土) 22:41:03ID:vyuZfmMy
これってアクションゲームのみしか作れないの?
0884名前は開発中のものです。2005/05/22(日) 01:58:57ID:iB/p7Jbu
>>883
きあいとこんじょうさえあればナンデモツクレルヨ
0885名前は開発中のものです。2005/05/22(日) 13:09:39ID:zUvPLpWB
View0とView1を表示して、
View1の方をライフ表示として使う場合、
View1の空白部分を透明にして、View0の部分を表示するってことデキマセヌカ?
0886名前は開発中のものです。2005/05/22(日) 15:20:28ID:rq0VgBBF
これってネット対戦できるゲームも作れますか?
0887名前は開発中のものです。2005/05/22(日) 15:31:30ID:Rn6lCv4G
>>885
それは出来ない。(6.1ならサーフェスをうまく使えば出来そうだけど)
というか、わざわざ透過するぐらいなら、
Draw系の関数でライフバーの部分を描画する専用オブジェクトを
用意したほうがいいと思う。

>>886
既出。一応出来るが、有料バージョンのみだ。ライセンス登録にUS20$かかる。
08888872005/05/22(日) 15:46:16ID:Rn6lCv4G
>>885
うー、表現をよく考えてなかった。
その描画オブジェクトがView0を追尾するようにするなりして、View0の座標系で描画するって意味です。。。
0889名前は開発中のものです。2005/05/22(日) 16:23:38ID:zUvPLpWB
>>888
なるほど、
まだ始めたばかりだから、追尾させる方法ちょっと考えにくいが
試行錯誤してみまふ(・∀・)

回答アリガトウ
0890名前は開発中のものです。2005/05/22(日) 20:23:10ID:zUvPLpWB
やっとでけた
view_xview[0] 等の関数使うのに気づくまで頑張りマスタヨ

レジストしなくてもある程度できるけど、
結構制限されて厳しいネ
約2k円程度だから買ってみようかな
0891名前は開発中のものです。2005/05/23(月) 21:33:22ID:n6yETejv
う〜ん、Unicode 対応をお願いする Suggestion を投稿してみたんだけど、
Unlikely suggestions に入っているなぁ。
フォントのマルチバイト文字対応の可能性は、ほぼ無くなったとみるべきか。
0892名前は開発中のものです。2005/05/23(月) 22:34:58ID:JQ0KAMF9
たしかにマルチバイト文字を使えないのは痛い。
■ このスレッドは過去ログ倉庫に格納されています