【2D】ゲーム作成ツールGameMaker part4【マンセー】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/04/23(木) 08:11:08ID:iAS0afeL●本家(英語)
ttp://www.gamemaker.nl/
●GameMaker Japan - 非公式情報サイト(日本語)
ttp://gamemaker.main.jp/(現在一時閉鎖中)
前スレ
【2D】ゲーム作成ツールGameMaker part3【マンセー】
ttp://pc11.2ch.net/test/read.cgi/gamedev/1210437707/
0117名前は開発中のものです。
2009/06/23(火) 07:31:18ID:u1YEd1nSまず、ID:gIps/Kzsにはマニュアルを読んで試行錯誤するという発想があるのか?
自覚があるのかわからんが、上で聞いていることはGMの中でも初歩中の初歩だ
その程度の内容ならマニュアルにそのまま答えが書いてある
0118名前は開発中のものです。
2009/06/23(火) 10:25:53ID:3z1JGY14FATAL ERROR in
action number 1
of Collision Event with object player
for object roomChanger:
Unexisting room number: 0
0119名前は開発中のものです。
2009/06/23(火) 11:58:10ID:je7ivZKWルームの移動先は正しく指定したのか?
>>116に具体的に何をしたのか書くこととあるだろうが。
何で何度も同じことを言われないとわからんのだ。
ツクールと比べて自由度が高い分、何でも自己責任で作らなければいけない。
マニュアル読めないやつは、いきなり作りたいゲームから作ろうとするな。
まずチュートリアルに沿ってゲームを作るなり、Exampleを見ながらその通りに作ってみるなりしてGMに慣れるのが先だ。
自由に作るのは慣れてからにしろ。
0120名前は開発中のものです。
2009/06/23(火) 14:07:16ID:3z1JGY14これだけでは次のルームにワープするわけがないというのですね。
次のルームへ移動するためには、どう設定すれば良いのでしょうか?
0121名前は開発中のものです。
2009/06/23(火) 14:29:59ID:kUxvm7WBそれを自分で学習できないようじゃ
このツールを使うのは向いてないよ
0122名前は開発中のものです。
2009/06/23(火) 16:08:41ID:3z1JGY14もう一つ気になってるんだけど、has code ってなに?
0123名前は開発中のものです。
2009/06/23(火) 16:13:46ID:Pc2GWQ8qNGID:3z1JGY14
0124名前は開発中のものです。
2009/06/23(火) 22:08:54ID:NBD7UU/Chas codeだけでは…。その前後に文章は無かったですか?
ttp://kabocha.sakura.ne.jp/uploader/src/up0378.zip
とりあえずルーム移動のサンプルを作りました。簡単なつくりですが、これと照らし合わせながらもう一度試行錯誤してみてください。
※GM6.1で作っています。
ただいろいろな方が言われているとおり、質問される前に一度インターネットで調べるであるとかいろいろ試してみるとかされるのが望ましいかと。
意外とGM利用者も多いみたいですので、「GameMaker 解説」等で検索すると参考サイトも見つかるかと思います。一度お試しください。
0125124
2009/06/23(火) 22:12:36ID:NBD7UU/Cサンプル内のGame Informationに解説を書いていますので、それをお読みいただくと一層理解が深まると思います。
0126名前は開発中のものです。
2009/06/24(水) 00:11:17ID:Q45EUiKYを置いて、Ctrl押しながら右クリックするとポップアップメニューが出る。
その一番下の「Creation Code」というのを選んでみると、コード編集画面が現れる。
これはCreateイベントのようにオブジェクト単位ではなく、
インスタンスごとに個別に初期化コードを記述できるというすぐれもの。
例えば移動先ごとに別々のオブジェクトを定義しなくても、
Creation Codeで移動先を定義してやればオブジェクト一種類で済ませられる。
さて、再びルームエディタに目を戻そう。インスタンスの上にマウスを移動させるたび
下のステータスバーにIDなど色々な情報が表示されることに気付くはず。
ここで今しがたCreation Codeを定義したインスタンスの上にマウスを置くと、
idの隣に「has code」という文字が表示される。これはCreation Codeが定義済みですよと、
いちいちCtrl+右クリックで開いて確認しなくても済むように表示されているわけだ。
つまり122はこの初期化コードを利用して、一種類のオブジェクトで別々の部屋に移動するような
サンプルをいじりながら話をしていると推察されるわけだが、そんだけの情報でわかるかこんちくしょう
0127名前は開発中のものです。
2009/06/24(水) 05:12:50ID:zrT0JE6k>>119にも何でも自己責任で作らなければいけないとあるだろうが。
自分で調べることを知れ。低脳。
0128名前は開発中のものです。
2009/06/24(水) 06:50:48ID:j1ZRO4Kv>>122は彼らに感謝しろよ、それと小中学校のどっちでもいいから卒業してくれ、頼む
0129名前は開発中のものです。
2009/06/24(水) 08:54:08ID:q+ZjUiLQとりあえず同じ質問を2ヵ所でするのはやめてくれ
折角答えてくれる人に失礼だ
0130名前は開発中のものです。
2009/06/25(木) 00:05:05ID:XavehMxJそもそも、こんな頭の悪いゆとりレスをしてくるわけがないだろ
>>122みたいな白痴は、もうここ読んでないし、
そんなマジメに相手してやる事自体が無意味だよ
0131名前は開発中のものです。
2009/06/25(木) 02:21:21ID:fllMyOLZ(とか書いておくと反抗期の小学生は頑張る)
0132名前は開発中のものです。
2009/06/25(木) 18:16:46ID:DXf4kZNS縦辺の長さと横辺の長さをh,wとして角度が増えるたびx,yにh,wとθで計算した数値をいれれば、回転する点を変えられると思うのですが、どういう風に計算すればいいでしょうか?
0133名前は開発中のものです。
2009/06/25(木) 22:55:29ID:QCl4CUg1dx = w/2; dy = h/2; // 原点から回転の中心までの距離
dx' = lengthdir_x(dx, θ) - lengthdir_y(dy, θ)
dy' = lengthdir_y(dx, θ) + lengthdir_x(dy, θ)
これを中心点に足すなり引くなりすればいいべ
0134名前は開発中のものです。
2009/06/25(木) 23:26:38ID:DXf4kZNSサインコサインをなんとかすんのかなあ…とずっと考えてました。ありがとうございます!
0135名前は開発中のものです。
2009/06/26(金) 01:19:08ID:R2VlleOL0136名前は開発中のものです。
2009/06/26(金) 22:27:11ID:XzTjtQH4draw_sprite_part_extで回転もできればいいんだけど、ないんだよね。
>134 lengthdirも実体はsin・cosだよ。覚えやすいように名前と引数変えてるだけで。
0137名前は開発中のものです。
2009/06/27(土) 17:58:45ID:g1C/dppuまさしくそうなんです。教えてもらって申し訳ないのですがいろいろ試してみたらsurfaceで思い通りのことできました!
surf = surface_create(w,h); //切り取りたいスプライトの幅,高さ
surface_set_target(surf);
draw_sprite(spr,sub,xx*-1,yy*-1); //切り取りたいスプライトのインデックス、サブイメージ,xx,yyの場所から横w縦h文だけ切り取ります
nspr=sprite_create_from_surface(surf,0,0,w,h,false,true,false,true,xo,yo)//各パラメータはお好きに!
surface_free(surf);
http://www.gmlscripts.com/script/sprite_desaturate
ココ参考にしました!僕以外の役に立つかどうかわかりません!
0138名前は開発中のものです。
2009/06/27(土) 22:18:00ID:Vqi57wNdいちいちdraw_sprite_general()で描画に毎回切り出しながらやるよりは、
一度手間をかけてやることにより、後の処理が楽になるね。
で、分かってるかもしれないけど、念のために補足。
その nspr は、使わなくなったらしっかり sprite_delete() しておくこと。
そうでないとメモリを食いつぶすことになるから、注意してください。
0139名前は開発中のものです。
2009/06/30(火) 21:48:36ID:JX1m/hgW・イメージエディタを一新(アルファチャネルのサポート、フィルタなど)
・コードエディタを一新(コード補完、括弧の対応表示ほか色々)
・コリジョン設定の変更(サブイメージ毎のマスク、円形マスクなど)
・スクリプト以外のリソース(ルームとか)もImport/Export可能に
・スプラッシュスクリーンにWebページやHTMLファイルを表示
・タイムラインの機能強化(一時停止や逆再生など)
・トリガイベント(自分で条件を設定できるユーザイベント?)
・ロード時間の短縮、その他の細かい改善
ルームエディタとかフォント関係はやっぱそのままなのかな
0140名前は開発中のものです。
2009/06/30(火) 23:21:27ID:RYkPWQI30141名前は開発中のものです。
2009/07/01(水) 03:38:54ID:s7gXk+nj一つ目は、sprite_addとsprite_deleteを1ステップ間隔くらいで頻繁に行うとメモリ使用量が16kから48kほど増えていく問題。
sprite_add中のpreloadはfalseにしてある。
それと、突然iやjといった変数が機能しなくなる問題。
例えばfor(i=0; i<instance_count; i+=1){...}の...の部分で1行ごとにshow_message(string(i))でiの値を確認すると、
ある行で突然変な値になる
使ってるスクリプトの中にiという変数を用いたループを使っていないことも確認した
誰か同じ経験している奴がいるだろうか?
0142名前は開発中のものです。
2009/07/01(水) 04:11:05ID:93GVivtHそもそもそのスプライトの作成と削除を毎ステップ行うっていうデザイン自体がよくないんじゃないだろうか。
helpにも、スプライトの作成はメモリを食うってあるし。
何をしているのか知らないけど、別のアプローチはないの?
>i,j
そのスクリプトを呼び出しているインスタンスか何かがそのiとか持ってるんじゃないか?
有効範囲をスクリプト内だけに留めておきたいのならvarを使うといい。
0143名前は開発中のものです。
2009/07/01(水) 04:23:22ID:93GVivtHでもどっちにしろ、何か別のアプローチがあると思う。
それと、呼び出し元がiとかの変数を持っていなかったとしても、
varを使えば解消すると思う。
0144名前は開発中のものです。
2009/07/01(水) 18:32:23ID:wsmIF7l0一番安定してるしなあ〜
0145名前は開発中のものです。
2009/07/02(木) 03:01:27ID:hsioop3Kenterキーを押す → 必要なスプライトをロード → メニューを表示
escapeキーを押す → ロードしたスプライトをデリート → メニューを閉じる
という操作をしてる
だからenterとescapeを連続で押せば、最速1ステップ間隔でスプライトのロード・消去を行うことになる…って感じ
外部読み込みにした理由は、メニューに使う大量のスプライトを常にメモリに入れておきたくないから
別のアプローチとしては、メニューウインドウそのものではなくウインドウの枠のパーツのみメモリに入れておくとか?
それで、色んな大きさのウインドウはそのパーツから構成する、みたいな
するとあまり凝ったデザインが出来ないのが問題か…
varも常に駆使してる
i, jの件については、具体的な例が出てきたらまた書き込んでみるよ
ありがとう
0146名前は開発中のものです。
2009/07/02(木) 04:40:24ID:nsbUExRL常にメモリに入れておきたくないってのはわかる。
でも、Helpにも「基本的にゲームプレイ中にリソースの変更はしない方がいい」って書いてあるし、
特に頻繁に使うものなんかは、ゲーム中に作成&削除をしない方がいいと思う。
逆に、頻繁に呼び出すことがあるものを毎回外部からロードする、と考えると、
それこそ効率が悪いのではと思えてくるんだけどな。
確かにメモリは使うけど、その為のメモリだと思ってるから。
そんなわけで、リソースの作成や削除は基本的にルーム移動時に殆ど済ませるようにしているし、
ゲーム中でも、本当に必要なくなったものは削除するけど、
すぐに呼び出す可能性があるものは、出来るだけメモリに入れるようにしてる。
まぁリソースの簡略化(枠のパーツ化とか)もしているけど。
0147名前は開発中のものです。
2009/07/02(木) 07:41:53ID:hsioop3Kなるほど、納得
メモリ使用率は少ない方がいい、とばかり思っていたが
そういう理由なら無難にメモリに突っ込んでおいた方がいいかもしれない
外部読み込みの方が起動も早いかと思ってたけど、コンパイルが長いからあんまり変わらないしな
あとはやはりリソースの簡略化か、ふむふむ
ありがとう参考になった
0148名前は開発中のものです。
2009/07/02(木) 23:19:30ID:HJ1haqOLデフォームで検索すればサンプルが見つかるかも、と思いましたがそうはいきませんでした!
d3dで丸いモデルにテクスチャをはっつければ曲がるかな、と思いましたがプリミティブ関連の記述がさっぱりわかりません。
何かいい方法ないでしょうか?
0149名前は開発中のものです。
2009/07/03(金) 00:15:04ID:MOGY37Zl0150名前は開発中のものです。
2009/07/03(金) 00:25:09ID:EJjOUzB4d3d_draw_cylinder()
d3d_draw_cone()
d3d_draw_ellipsoid()
あたりを使ってみれば。
0151名前は開発中のものです。
2009/07/03(金) 00:27:05ID:4SHxhWQ7まあ、今ならプリミティブでいいんじゃない?GM6以降なら2Dでそのまま使えるよ
0152名前は開発中のものです。
2009/07/04(土) 14:01:13ID:wARlrEyPあとこれだけ聞きたいのですが、今ボスを作成中なのですが、
以下のようにするにはどうすればいいのでしょうか?
・スプライトを上下に移動させたい
・何秒か毎に攻撃(レーザー光線)を放射させたい
・何発か攻撃するとスプライトが消えるようにしたい
0153名前は開発中のものです。
2009/07/05(日) 14:16:51ID:8ABSewN93体存在するボスのオブジェクトが全て消えたとき、
最終ステージへの門が開く、というようにしたいのです。
つまり、「複数のオブジェクトが消えたとき、ある特定の場所へワープさせる」
ということをしたいのですが、どうすれば良いのでしょうか?
0154名前は開発中のものです。
2009/07/05(日) 14:18:54ID:8ABSewN90155名前は開発中のものです。
2009/07/05(日) 14:20:18ID:8ABSewN9何度もすいませんwwwwww
0156名前は開発中のものです。
2009/07/05(日) 14:21:11ID:8ABSewN90157名前は開発中のものです。
2009/07/05(日) 22:01:32ID:Xh6km2on0158名前は開発中のものです。
2009/07/06(月) 15:23:33ID:iriqlFx7http://www.nicovideo.jp/watch/sm6286966
0159名前は開発中のものです。
2009/07/06(月) 20:23:23ID:agP5gMex0160名前は開発中のものです。
2009/07/06(月) 23:04:37ID:pu2JgBqG0161名前は開発中のものです。
2009/07/07(火) 07:28:04ID:HWuU6Za6テキストの多いゲームを作ろうとすると、どうしても第二水準の漢字にぶち当たってしまう
今のところ必要な文字は手で挿して使ってるけどさすがに大変なんだよな……
0162名前は開発中のものです。
2009/07/07(火) 22:59:54ID:Mfs4614r0163名前は開発中のものです。
2009/07/08(水) 01:25:14ID:OPujPKaU例えば登場人物の名前とか。
0164名前は開発中のものです。
2009/07/08(水) 01:26:11ID:g9VlwgPmhttp://tsushima.2ch.net/test/read.cgi/newsplus/1246852005/-100
↑秘書の犯行も自分の責任を認めてるのに
警察に出頭しないで罰金も納めずに済ますのは絶対おかしい!!
犯罪者鳩山由紀夫を諭して
自首を呼びかけましょう
民主党https://form.dpj.or.jp/contact/
検察https://www.kensatsu.go.jp/kensatsumail/feedback.php?id=001
法務省http://www.moj.go.jp/mail.html
0165名前は開発中のものです。
2009/07/08(水) 01:44:36ID:OPujPKaUまぁ自分以外にも第二水準で四苦八苦している人がいるということは、
少しは需要があると思うんだ。
スクリプトの方は少し弄れば処理できるようになる。
勿論第二水準が必要ない人もいるので、
もしよければ、jFontMakerに第二水準のON/OFFの機能を追加してほしい。
0166名前は開発中のものです。
2009/07/08(水) 03:00:56ID:7bwe3GjOテキストを書いてみると、案外文字化けが多いことに気づく。
でもサブイメージの数が2倍以上になるからな…ON/OFFも含めて追加されれば嬉しい。
オープンソースであれば、描画する文字コードの範囲の拡張くらいは出来るかもしれないが…
0167名前は開発中のものです。
2009/07/08(水) 06:52:41ID:xLCuvTpV第1水準だけとか言ってる奴、どんだけゆとりの低学歴なんだよw
頭悪いにも程がある。
0168名前は開発中のものです。
2009/07/08(水) 10:30:14ID:Ca6Hf7Pr0169名前は開発中のものです。
2009/07/08(水) 19:10:29ID:k41sOO30ひらがなとカタカナだけで満足な人からしたら不愉快だろうけど、やっぱり漢字使いたいんだよね。
0170名前は開発中のものです。
2009/07/09(木) 08:03:27ID:D9tzZRHzGMJの移転作業とかで忙しいだろうし、いつか対応されれば感涙ものくらいの気持ちでいよう
0171名前は開発中のものです。
2009/07/09(木) 08:56:14ID:VDbgfUAGあと、別のプラグインだけどMIDIをまともにループさせられるのが出てきてくれたらなぁ。
MP3やOGGのBGM素材はちと大仰過ぎるのが多いし、そもそもあんまりまとまった数が手に入らない・・・
(個人的にはピストンコラージュが使えるプラグインが登場しても面白いと思うけどまずMIDIだ)
0172名前は開発中のものです。
2009/07/09(木) 11:09:44ID:yobaDOg1すいません、少しややこしい質問になるのですが、d3dの効果を特定のオブジェクトだけに適用するにはどうすればいいのでしょうか?
たとえばdraw_set_blend_modeなら_bm_addで始めてbm_normalで閉じれば内側のスプライトは加算合成になりますよね?
これと同じ具合に、d3d_set_projectionを使って、視点を動かすと重ねたスプライトがずれるような動きをしたいのですが、これって無理ですか?
解り辛い質問で申し訳ありません、突っ込んでいただければ、できるかぎり補足します!お願いします!
0173よこしま
2009/07/09(木) 22:53:50ID:tDSIyShLttp://gamemaker.main.jp/dlfiles/mbtext-2nd-level-kanji.zip
※全角スプライトのサブイメージ数が22→40に増えたので、
メモリ使用量がその分増えます。
追加した文字の参考表:
ttp://www.page.sannet.ne.jp/mtoga/etc/cpu/bih-g_cl.htm
0174名前は開発中のものです。
2009/07/09(木) 23:44:41ID:VDbgfUAGきたぁぁぁぁ!
本当に本当にありがとうございます、早速使わせていただきます!
0175名前は開発中のものです。
2009/07/10(金) 00:27:43ID:wxEAQxJK0176名前は開発中のものです。
2009/07/10(金) 03:40:01ID:QgBn60lhまじかよぉぉぉぉぉぉぉ!!!!
本当にありがとうございます、感謝してもしきれないです。
今同人ゲームを作っていて、漢字の問題に悩んでいたところなので……
お礼になるかはわからないが、日本GMユーザーの励みになるようきっと頒布まで持っていってみせる!
0177名前は開発中のものです。
2009/07/10(金) 20:04:36ID:H7MFUHPJ別々のルームに存在するボスが3体消えたときに、
特定のルームへワープさせる、ということをしたいのですが、どうすれば良いのでしょうか?
簡単にいえば、i wanna be the fangameで例えるとのラストへ行く前のリフトは、3体のボスを倒すと現れる。
という感じにしたいわけです。
0178名前は開発中のものです。
2009/07/11(土) 08:40:47ID:KnOrr9uVグローバル変数使えばいいんじゃないの?
0179名前は開発中のものです。
2009/07/12(日) 04:39:23ID:RLThpjAH凄い!
0180名前は開発中のものです。
2009/07/12(日) 11:23:32ID:opcvOITmこれをオンにしとかないとCPUの負荷がものすごいことになる
0181名前は開発中のものです。
2009/07/14(火) 03:55:40ID:8XVe7npV背景黒にしたフォントを加算で描画すればほぼ事足りることに気づいた
0182名前は開発中のものです。
2009/07/14(火) 16:06:00ID:CU0jQ04KGM6.1Aでゲームを作成しているのですが、
キャラのモーションなどを描画する際、パーツの角度や
位置などの情報を大量の配列で扱っています。
(どういうものかは動画とかを見ていただけると分かりやすいかと)
「変数の宣言できる量などの上限などはスペック依存なのか、
あるいは仕様として上限が決まっているのか・・・。」
ヘルプを見たところ特に記述が無かったのでどうなのか知りたいです。
見落としでしたら申し訳ないです。
>>177
他の方も言っている通り、グローバル変数を使うのが簡単だと思います。
global.boss[0] = true;
global.boss[1] = true;
global.boss[2] = true;
とでもしておいてボスを倒したら各々ボスに対応した変数をfalseにして、
3つのグローバル変数がfalseになったら移動すればよいと思います。
0183名前は開発中のものです。
2009/07/14(火) 16:17:45ID:VeW5i252各配列のインデックスの上限は32,000まで、
全配列のインデックスの総数は1,000,000まで。
原文:The system puts a limit of 32000 on each index and 1,000,000 on the total size.
変数は多分、上限はスペック依存かもねぇ。
ただ、一度にそれだけの変数を使う場面ってあんまりないのでは?
ローカル変数で処理しておけば、
インスタンスが存在するときだけメモリが消費されるわけで。
(インスタンスが破棄されれば、そのインスタンスに使っていたローカル変数のメモリも開放されるはず)
0184182
2009/07/14(火) 17:57:23ID:vUQ3woyL配列の項目に書いてありましたか・・・すいませんでした。
インデックスは上限が決まっているけど
配列の数そのものはスペック依存な感じですかね。
でも出来るかぎり少なく作らないといろいろ問題もでるので気をつけようと思います。
一応現在もローカル変数で作っているのですが、
今後も出来るかぎりメモリの浪費を抑える努力をしようと思います。
0185名前は開発中のものです。
2009/07/14(火) 21:09:17ID:xN5w2kOc0186名前は開発中のものです。
2009/07/14(火) 21:38:37ID:vUQ3woyL自分は特定ボタンを押すまでwhileループさせて
その中にscreen_redrawを入れてます
この方法だとポーズ中×を押しても
終わらなかったりするので
他に良い方法があればそちらの方が良いと思います
0187名前は開発中のものです。
2009/07/15(水) 01:16:16ID:x7myA04Tサンプルに付いてくる隕石ゲームではkeyboard_waitを使ってるな。
これをループで回してキーチェックを入れれば
簡単なポーズメニューくらいは実装できる。
他には、画面のスクリーンショットをとって背景に設定してから
他のオブジェクトをdeactivateする手法がよく使われるかな。
0188名前は開発中のものです。
2009/07/16(木) 18:14:35ID:VZjdHqja親切にもサンプル作ってもらって、「なんのこっちゃ、全て分からん」
その後、サンプルその2作ってもらって「分からんから俺の作ったのを改造してよ」
DQNもいい加減にしろ。sageてなかったり、忠告してくれた人に
「自分で学習できないようじゃ、って言われてもね〜。」だの酷すぎる
一度生まれ変われ
0189名前は開発中のものです。
2009/07/16(木) 18:21:31ID:/ens9lwf0190名前は開発中のものです。
2009/07/16(木) 18:28:39ID:vL2/o72f彼自身なんだし暖かく見殺せばいいんじゃないですかね
0191名前は開発中のものです。
2009/07/16(木) 19:52:16ID:7TZC2gMD0192名前は開発中のものです。
2009/07/16(木) 21:54:41ID:gO8rBliLRPGツクールの売りはRPGを自分で作る楽しさ。
だったらGMの売りはゲームを自分で作る楽しさ。
何かを作る時には、どう作ればいいかという試行錯誤が必要なわけで、
逆に言えば、その悩む工程無しに物は作れない。
自分の頭を使えず、他人に任せ、作ることを楽しめない人には何も作れない。
0193名前は開発中のものです。
2009/07/16(木) 22:29:37ID:MpWxoNZ20194名前は開発中のものです。
2009/07/17(金) 01:13:50ID:hU1Bxe0M・アルファチャンネルネイティブサポートなんで透過PNG使うのがラク。超綺麗。
・イメージエディタも↑対応。
・ビルドが若干早くなってる。
・スクリプトも若干記述が簡易になったものが。
・トリガーイベントが地味に便利っぽい。
全体としてはマイナーチェンジの印象が拭えないけど、各所で地味に作りやすくなってるのは確か。
特に問題がなければ推奨かも。個人的にはアルファチャンネルサポートが一番嬉しい。
0195名前は開発中のものです。
2009/07/17(金) 06:59:35ID:8JCsTQOdそこらへんはどんな感じだろう
0196名前は開発中のものです。
2009/07/17(金) 13:24:51ID:FXJQqITE「衝突したその種類のすべてのインスタンス」に処理が行われますが、
collision関数を使って同じように行うにはどうすればよいでしょうか。
イベントではなく関数を使うのは、キャラの攻撃判定を
プレイヤーが任意に設定できるようにするためなので、
あらかじめ攻撃判定の大きさのマスクを用意するわけにもいかないのです。
現在は
var col;
col = collision_line(~,~,obj~);
with(col){・・・処理・・・};
で行っているのですが、これだと「衝突したうち一つのインスタンス」
しか衝突判定が行われません。
アクションゲームなどで重なった敵を攻撃する際に
非常にストレスになるらしく、出来れば改善したいところです・・・。
0197名前は開発中のものです。
2009/07/17(金) 14:49:28ID:Ys5x6wolinstance_place()で得られるインスタンスって一つしかないんだよね。
なので、一つ得られたらそれを deactive にして、さらに判定して、、、ということをすればいいのでは?
と思ってやってみたら出来た。
ttp://gmdev.xrea.jp/st/up/54.zip
コリジョンイベントは使わず、collision_circle()をつかった手抜きサンプル。
デバッグモードでメッセージウィンドウを見れば、
同じステップの時点で当たり判定が行われているのがわかると思う。
0198名前は開発中のものです。
2009/07/17(金) 15:31:03ID:Mf35okkzさらには解説付のサンプルまで・・・
本当にありがとうございました。
なるほど・・・判定をループさせるのは考えてはいたんですが、
一時変数で判定したオブジェクトを記録することは思いつきませんでした。
今思えば当然といえば当然ですけどコロンブスのなんとやらですねぇ。
ということはコリジョンイベントの際にも裏でこういう処理をしているんだろうか・・・?
何はともあれこれで要求を満たせそうです。ありがとうございました。
0199名前は開発中のものです。
2009/07/17(金) 19:06:30ID:sccaG/w+プレイヤーが任意に設定したい攻撃判定の数だけダミーの不可視のオブジェクト作って、
これのx,y座標をプレイヤーキャラのx,yに同期して、
何かのインスタンスに当たったら、これの衝突情報を、プレイヤーキャラのインスタンス側で参照するとかは?
0200名前は開発中のものです。
2009/07/18(土) 00:20:17ID:lmxBXlGJ発想を逆にして
with (obj) {
if (collision_line(other.x, other.y, .., id, ...)) { 処理 }
}
みたいにする方法もある。withの中ではselfとotherが逆転するのに注意だけど
0201名前は開発中のものです。
2009/07/18(土) 16:01:59ID:HY50PxeX>>199
んおお・・?
攻撃判定用のオブジェクトを先に作っておいて
プレイヤと同期させて、プレイヤーと目標物が当たったら
攻撃判定用のオブジェクトと目標物でコリジョンイベントを行うような感じです・・・かね?
>>200
なるほど。シンプルですね。
欠点としてはcollision_〜関数を実行するインスタンスが
場合によっては大量になる点でしょうか。
0202名前は開発中のものです。
2009/07/20(月) 09:08:57ID:s1CnwUHQスプライトのアニメの制御で、OtherイベントのAnimationEndとImage_Indexをif構文で制御する以外の方法ってありますか?
if構文で制御すると安定しないんです。
(インスタンスの移動スピードが速いと判定をすり抜けてしまうようような感じ)
キャラクターの向きや状態ごとに新規のオブジェクトとスプライトを設定してそこで制御すると安定するんだけど、
ソースがややこしくなってしまいました。
(雛形のオブジェクトを親、新規の空オブジェクトを子にして、スプライトやパラメーターで個性を出すと言うことが出来なくなってしまった)
0203名前は開発中のものです。
2009/07/20(月) 10:25:28ID:S0Bac2pO確かに、image_speed に小数点以下の値を設定していて、かつ、条件を == (等しい) でやっていると
すり抜ける場合があるんで(丸め誤差による)、
>= (以上) とか、 <= (以下) で比較してみるとよいかも。
0204名前は開発中のものです。
2009/07/20(月) 23:39:21ID:s1CnwUHQ動作ごとにオブジェクトに分けて(親にデフォルト移動のオブジェクト)、
向きごとに空オブジェクト(スプライトはそれぞれの向きで親は元の向き)で設定完了しちゃったあとなんで
確認使用がありません。
うーん、マウスイベントに変なの仕込んじゃったかなぁ・・・。
マウスホイールの動作中にSTEPイベントが無視されてる気がしたんですよ。
0205名前は開発中のものです。
2009/07/23(木) 11:11:26ID:siugnnVTそういうまとめサイトがあればGMユーザーの存在感も増すだろうけど
0206名前は開発中のものです。
2009/07/23(木) 12:27:13ID:9sYuv18dあと、まとめよりは日本語フォーラムが欲しい。
0207名前は開発中のものです。
2009/07/23(木) 15:10:50ID:CphK7ga9目的が存在感アップなら向かない
0208名前は開発中のものです。
2009/07/23(木) 15:18:28ID:MsF2cp7s確かに日本での皆で公開する場所ができれば嬉しいかも
0209名前は開発中のものです。
2009/07/23(木) 17:12:53ID:4NdzeTGqゲーム開発自体は初心者だし。
0210名前は開発中のものです。
2009/07/23(木) 21:49:01ID:9sYuv18d0211名前は開発中のものです。
2009/07/24(金) 00:54:57ID:4oRtOW6p0212名前は開発中のものです。
2009/07/24(金) 01:28:06ID:VftsPVOX俺は別にGMでドーコーってのは無くて普通に公開するけど。
0213名前は開発中のものです。
2009/07/24(金) 17:31:08ID:JepbGxNyまだ体験版にすら至ってないが…
0214名前は開発中のものです。
2009/07/24(金) 20:36:34ID:rsS/wSle0215名前は開発中のものです。
2009/07/24(金) 22:42:14ID:p6tGynQgところで、国内でTDS(TopDownShooter,真上から見た視点のFPSみたいなの)作ってる人っているのだろうか?
公式フォーラムではアメリカや西欧だけでなく東欧や南米の人も作ってるみたいだけど、日本で作ってる人はいるかな。
0216名前は開発中のものです。
2009/07/26(日) 17:08:53ID:HUXpWVlVマイナージャンルで仲間見つけたら嬉しいってのもあるだろうし
他人のを見て色々と勉強になることもあるだろうし。
■ このスレッドは過去ログ倉庫に格納されています