トップページgamedev
981コメント382KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/04/23(木) 08:11:08ID:iAS0afeL
無料Windows用2Dゲーム作成ツール"Game Maker"について、色々と語り合うスレッドです。

●本家(英語)
 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
せっかく>>90の見事な回答を見ていい気分だったのに、なんだこれは新手の荒らしかw

まず、ID:gIps/Kzsにはマニュアルを読んで試行錯誤するという発想があるのか?
自覚があるのかわからんが、上で聞いていることはGMの中でも初歩中の初歩だ
その程度の内容ならマニュアルにそのまま答えが書いてある
0118名前は開発中のものです。2009/06/23(火) 10:25:53ID:3z1JGY14
こんな感じ
FATAL 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
worpのオブジェクトを選んでぽんと置いただけですwww。
これだけでは次のルームにワープするわけがないというのですね。
次のルームへ移動するためには、どう設定すれば良いのでしょうか?
0121名前は開発中のものです。2009/06/23(火) 14:29:59ID:kUxvm7WB
>>120
それを自分で学習できないようじゃ
このツールを使うのは向いてないよ
0122名前は開発中のものです。2009/06/23(火) 16:08:41ID:3z1JGY14
自分で学習できないようじゃ、って言われてもね〜。
もう一つ気になってるんだけど、has code ってなに?
0123名前は開発中のものです。2009/06/23(火) 16:13:46ID:Pc2GWQ8q
みんな分かってると思うけど
NGID:3z1JGY14
0124名前は開発中のものです。2009/06/23(火) 22:08:54ID:NBD7UU/C
>>122
has codeだけでは…。その前後に文章は無かったですか?

ttp://kabocha.sakura.ne.jp/uploader/src/up0378.zip
とりあえずルーム移動のサンプルを作りました。簡単なつくりですが、これと照らし合わせながらもう一度試行錯誤してみてください。
※GM6.1で作っています。

ただいろいろな方が言われているとおり、質問される前に一度インターネットで調べるであるとかいろいろ試してみるとかされるのが望ましいかと。
意外とGM利用者も多いみたいですので、「GameMaker 解説」等で検索すると参考サイトも見つかるかと思います。一度お試しください。
01251242009/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
>>124-126の大人っぷりに泣いた
>>122は彼らに感謝しろよ、それと小中学校のどっちでもいいから卒業してくれ、頼む
0129名前は開発中のものです。2009/06/24(水) 08:54:08ID:q+ZjUiLQ
>>122
とりあえず同じ質問を2ヵ所でするのはやめてくれ
折角答えてくれる人に失礼だ
0130名前は開発中のものです。2009/06/25(木) 00:05:05ID:XavehMxJ
あのさ、お前ら>>122に、そんなまともな頭があれば、
そもそも、こんな頭の悪いゆとりレスをしてくるわけがないだろ
>>122みたいな白痴は、もうここ読んでないし、
そんなマジメに相手してやる事自体が無意味だよ
0131名前は開発中のものです。2009/06/25(木) 02:21:21ID:fllMyOLZ
っていうか奴は>>124-126読んでも理解できないと思うし、高確率ではなから読む気がない。
(とか書いておくと反抗期の小学生は頑張る)
0132名前は開発中のものです。2009/06/25(木) 18:16:46ID:DXf4kZNS
すいません、数学の話なんですけど、draw_sprite_generalで描画すると四角形の左端を中心に回転しますよね?
縦辺の長さと横辺の長さをh,wとして角度が増えるたびx,yにh,wとθで計算した数値をいれれば、回転する点を変えられると思うのですが、どういう風に計算すればいいでしょうか?
0133名前は開発中のものです。2009/06/25(木) 22:55:29ID:QCl4CUg1
回転の公式でググって、GMだとY座標が下向きだから適当に反転する
dx = 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
あーなるほど!lengthdirを使えばよかったのですね!
サインコサインをなんとかすんのかなあ…とずっと考えてました。ありがとうございます!
0135名前は開発中のものです。2009/06/26(金) 01:19:08ID:R2VlleOL
俺ならsprite_set_offsetで画像の中心を移動して、あとはsprite_draw_extで回転角をいじるかな
0136名前は開発中のものです。2009/06/26(金) 22:27:11ID:XzTjtQH4
general使ってるってことは、一部分だけ切り出して回転させたいんじゃないの。
draw_sprite_part_extで回転もできればいいんだけど、ないんだよね。
>134 lengthdirも実体はsin・cosだよ。覚えやすいように名前と引数変えてるだけで。
0137名前は開発中のものです。2009/06/27(土) 17:58:45ID:g1C/dppu
>>136 一部分だけ切り出して回転させたいんじゃないの。

まさしくそうなんです。教えてもらって申し訳ないのですがいろいろ試してみたら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
GM8の新機能(暫定)が発表されてた
・イメージエディタを一新(アルファチャネルのサポート、フィルタなど)
・コードエディタを一新(コード補完、括弧の対応表示ほか色々)
・コリジョン設定の変更(サブイメージ毎のマスク、円形マスクなど)
・スクリプト以外のリソース(ルームとか)もImport/Export可能に
・スプラッシュスクリーンにWebページやHTMLファイルを表示
・タイムラインの機能強化(一時停止や逆再生など)
・トリガイベント(自分で条件を設定できるユーザイベント?)
・ロード時間の短縮、その他の細かい改善
ルームエディタとかフォント関係はやっぱそのままなのかな
0140名前は開発中のものです。2009/06/30(火) 23:21:27ID:RYkPWQI3
7で作ってるゲームをそのまま移行できるんかな
0141名前は開発中のものです。2009/07/01(水) 03:38:54ID:s7gXk+nj
突然だが、最近経験している問題2つについて誰かアドバイスがあったら教えてほしい

一つ目は、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
>sprite_addとsprite_deleteを1ステップ間隔くらいで頻繁に行う
そもそもそのスプライトの作成と削除を毎ステップ行うっていうデザイン自体がよくないんじゃないだろうか。
helpにも、スプライトの作成はメモリを食うってあるし。
何をしているのか知らないけど、別のアプローチはないの?

>i,j
そのスクリプトを呼び出しているインスタンスか何かがそのiとか持ってるんじゃないか?
有効範囲をスクリプト内だけに留めておきたいのならvarを使うといい。
0143名前は開発中のものです。2009/07/01(水) 04:23:22ID:93GVivtH
っと、毎ステップじゃなかったか。
でもどっちにしろ、何か別のアプローチがあると思う。
それと、呼び出し元がiとかの変数を持っていなかったとしても、
varを使えば解消すると思う。
0144名前は開発中のものです。2009/07/01(水) 18:32:23ID:wsmIF7l0
GM5.3使ってんの俺だけかな〜?
一番安定してるしなあ〜
0145名前は開発中のものです。2009/07/02(木) 03:01:27ID:hsioop3K
>>142
enterキーを押す → 必要なスプライトをロード → メニューを表示
escapeキーを押す → ロードしたスプライトをデリート → メニューを閉じる
という操作をしてる
だからenterとescapeを連続で押せば、最速1ステップ間隔でスプライトのロード・消去を行うことになる…って感じ
外部読み込みにした理由は、メニューに使う大量のスプライトを常にメモリに入れておきたくないから

別のアプローチとしては、メニューウインドウそのものではなくウインドウの枠のパーツのみメモリに入れておくとか?
それで、色んな大きさのウインドウはそのパーツから構成する、みたいな
するとあまり凝ったデザインが出来ないのが問題か…

varも常に駆使してる
i, jの件については、具体的な例が出てきたらまた書き込んでみるよ
ありがとう
0146名前は開発中のものです。2009/07/02(木) 04:40:24ID:nsbUExRL
>>145
常にメモリに入れておきたくないってのはわかる。
でも、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:MOGY37Zl
念力
0150名前は開発中のものです。2009/07/03(金) 00:25:09ID:EJjOUzB4
3Dで考えてるのなら、
d3d_draw_cylinder()
d3d_draw_cone()
d3d_draw_ellipsoid()
あたりを使ってみれば。
0151名前は開発中のものです。2009/07/03(金) 00:27:05ID:4SHxhWQ7
1ラインずつずらしたり伸縮させたりしながら描画するなんて手法が昔あってのう
まあ、今ならプリミティブでいいんじゃない?GM6以降なら2Dでそのまま使えるよ
0152名前は開発中のものです。2009/07/04(土) 14:01:13ID:wARlrEyP
>>126さん感謝です!has codeが出て、ルームの移動が出来ました!!
あとこれだけ聞きたいのですが、今ボスを作成中なのですが、
以下のようにするにはどうすればいいのでしょうか?
・スプライトを上下に移動させたい
・何秒か毎に攻撃(レーザー光線)を放射させたい
・何発か攻撃するとスプライトが消えるようにしたい
0153名前は開発中のものです。2009/07/05(日) 14:16:51ID:8ABSewN9
ちょっとお聞きしたいのですが、
3体存在するボスのオブジェクトが全て消えたとき、
最終ステージへの門が開く、というようにしたいのです。
つまり、「複数のオブジェクトが消えたとき、ある特定の場所へワープさせる」
ということをしたいのですが、どうすれば良いのでしょうか?
0154名前は開発中のものです。2009/07/05(日) 14:18:54ID:8ABSewN9
すいません、sageて無かったですwwww
0155名前は開発中のものです。2009/07/05(日) 14:20:18ID:8ABSewN9
今度こそsage
何度もすいませんwwwwww
0156名前は開発中のものです。2009/07/05(日) 14:21:11ID:8ABSewN9
なんかsageって打ってもならない件
0157名前は開発中のものです。2009/07/05(日) 22:01:32ID:Xh6km2on
マルチ止めれ
0158名前は開発中のものです。2009/07/06(月) 15:23:33ID:iriqlFx7
>>153
http://www.nicovideo.jp/watch/sm6286966
0159名前は開発中のものです。2009/07/06(月) 20:23:23ID:agP5gMex
非公式情報サイト、早く復旧してほしいな……。
0160名前は開発中のものです。2009/07/06(月) 23:04:37ID:pu2JgBqG
8のbeta公開されてますぜ。
0161名前は開発中のものです。2009/07/07(火) 07:28:04ID:HWuU6Za6
mbtextで使用できる日本語文字、第二水準まで拡張されないかな……
テキストの多いゲームを作ろうとすると、どうしても第二水準の漢字にぶち当たってしまう
今のところ必要な文字は手で挿して使ってるけどさすがに大変なんだよな……
0162名前は開発中のものです。2009/07/07(火) 22:59:54ID:Mfs4614r
古文か厨ノベルでもない限り、第二水準なんて使わないだろ
0163名前は開発中のものです。2009/07/08(水) 01:25:14ID:OPujPKaU
いや、そうでもない。
例えば登場人物の名前とか。
0164名前は開発中のものです。2009/07/08(水) 01:26:11ID:g9VlwgPm
そもそも政治圧力に屈して会見で堂々と違法と監督責任認めてる鳩山を逮捕しない検察もクズなんだが
http://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
いや、普通に第2水準は、使うだろ。
第1水準だけとか言ってる奴、どんだけゆとりの低学歴なんだよw
頭悪いにも程がある。
0168名前は開発中のものです。2009/07/08(水) 10:30:14ID:Ca6Hf7Pr
GMJの移転日程が出てた。7月下旬だそうだ。
0169名前は開発中のものです。2009/07/08(水) 19:10:29ID:k41sOO30
手榴弾の「榴」が第二水準なだけでもいろいろ苦労してるから、第二水準対応はあると大変ありがたい。
ひらがなとカタカナだけで満足な人からしたら不愉快だろうけど、やっぱり漢字使いたいんだよね。
0170名前は開発中のものです。2009/07/09(木) 08:03:27ID:D9tzZRHz
なんだ、俺以外にも第二水準の問題持ってる人いたんだな……
GMJの移転作業とかで忙しいだろうし、いつか対応されれば感涙ものくらいの気持ちでいよう
0171名前は開発中のものです。2009/07/09(木) 08:56:14ID:VDbgfUAG
第二水準対応はまさに悲願だよね。
あと、別のプラグインだけどMIDIをまともにループさせられるのが出てきてくれたらなぁ。
MP3やOGGのBGM素材はちと大仰過ぎるのが多いし、そもそもあんまりまとまった数が手に入らない・・・
(個人的にはピストンコラージュが使えるプラグインが登場しても面白いと思うけどまずMIDIだ)
0172名前は開発中のものです。2009/07/09(木) 11:09:44ID:yobaDOg1
>>150,151 ありがとうございます。

すいません、少しややこしい質問になるのですが、d3dの効果を特定のオブジェクトだけに適用するにはどうすればいいのでしょうか?
たとえばdraw_set_blend_modeなら_bm_addで始めてbm_normalで閉じれば内側のスプライトは加算合成になりますよね?
これと同じ具合に、d3d_set_projectionを使って、視点を動かすと重ねたスプライトがずれるような動きをしたいのですが、これって無理ですか?
解り辛い質問で申し訳ありません、突っ込んでいただければ、できるかぎり補足します!お願いします!
0173よこしま2009/07/09(木) 22:53:50ID:tDSIyShL
ご要望が多かったので、第二水準追加版のjFontMakerとmbtext scriptsを作りました。
ttp://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
>>173
きたぁぁぁぁ!
本当に本当にありがとうございます、早速使わせていただきます!
0175名前は開発中のものです。2009/07/10(金) 00:27:43ID:wxEAQxJK
まあいまどきのPCならそれくらい余裕でしょ
0176名前は開発中のものです。2009/07/10(金) 03:40:01ID:QgBn60lh
>>173
まじかよぉぉぉぉぉぉぉ!!!!
本当にありがとうございます、感謝してもしきれないです。
今同人ゲームを作っていて、漢字の問題に悩んでいたところなので……

お礼になるかはわからないが、日本GMユーザーの励みになるようきっと頒布まで持っていってみせる!
0177名前は開発中のものです。2009/07/10(金) 20:04:36ID:H7MFUHPJ
>>153のものですが、
別々のルームに存在するボスが3体消えたときに、
特定のルームへワープさせる、ということをしたいのですが、どうすれば良いのでしょうか?

簡単にいえば、i wanna be the fangameで例えるとのラストへ行く前のリフトは、3体のボスを倒すと現れる。
という感じにしたいわけです。
0178名前は開発中のものです。2009/07/11(土) 08:40:47ID:KnOrr9uV
>>177
グローバル変数使えばいいんじゃないの?
0179名前は開発中のものです。2009/07/12(日) 04:39:23ID:RLThpjAH
>>173
凄い!
0180名前は開発中のものです。2009/07/12(日) 11:23:32ID:opcvOITm
ところで、出来た文字スプライトはPreload_textureをオンにした方がいいと思うんだけど
これをオンにしとかないとCPUの負荷がものすごいことになる
0181名前は開発中のものです。2009/07/14(火) 03:55:40ID:8XVe7npV
αチャンネルに対応してないのかー、と思ったけど
背景黒にしたフォントを加算で描画すればほぼ事足りることに気づいた
0182名前は開発中のものです。2009/07/14(火) 16:06:00ID:CU0jQ04K
ニコニコアクションを作っているものです。
GM6.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.

変数は多分、上限はスペック依存かもねぇ。
ただ、一度にそれだけの変数を使う場面ってあんまりないのでは?
ローカル変数で処理しておけば、
インスタンスが存在するときだけメモリが消費されるわけで。
(インスタンスが破棄されれば、そのインスタンスに使っていたローカル変数のメモリも開放されるはず)
01841822009/07/14(火) 17:57:23ID:vUQ3woyL
回答ありがとうございした。
配列の項目に書いてありましたか・・・すいませんでした。

インデックスは上限が決まっているけど
配列の数そのものはスペック依存な感じですかね。
でも出来るかぎり少なく作らないといろいろ問題もでるので気をつけようと思います。

一応現在もローカル変数で作っているのですが、
今後も出来るかぎりメモリの浪費を抑える努力をしようと思います。
0185名前は開発中のものです。2009/07/14(火) 21:09:17ID:xN5w2kOc
画面にポーズをかけて全てのオブジェクトの動きや変数の増減をその間ストップさせたいのですがそのようなことは可能でしょうか。
0186名前は開発中のものです。2009/07/14(火) 21:38:37ID:vUQ3woyL
負荷的にどうなのかはわかりませんが
自分は特定ボタンを押すまでwhileループさせて
その中にscreen_redrawを入れてます

この方法だとポーズ中×を押しても
終わらなかったりするので
他に良い方法があればそちらの方が良いと思います
0187名前は開発中のものです。2009/07/15(水) 01:16:16ID:x7myA04T
一番お手軽なのはshow_message("ポーズしたよ");

サンプルに付いてくる隕石ゲームではkeyboard_waitを使ってるな。
これをループで回してキーチェックを入れれば
簡単なポーズメニューくらいは実装できる。

他には、画面のスクリーンショットをとって背景に設定してから
他のオブジェクトをdeactivateする手法がよく使われるかな。
0188名前は開発中のものです。2009/07/16(木) 18:14:35ID:VZjdHqja
>>177
親切にもサンプル作ってもらって、「なんのこっちゃ、全て分からん」
その後、サンプルその2作ってもらって「分からんから俺の作ったのを改造してよ」
DQNもいい加減にしろ。sageてなかったり、忠告してくれた人に
「自分で学習できないようじゃ、って言われてもね〜。」だの酷すぎる
一度生まれ変われ
0189名前は開発中のものです。2009/07/16(木) 18:21:31ID:/ens9lwf
親切に教えてもらっても感謝の一言もないとかね
0190名前は開発中のものです。2009/07/16(木) 18:28:39ID:vL2/o72f
自分の力を育てなかった結果いつか損するのは
彼自身なんだし暖かく見殺せばいいんじゃないですかね
0191名前は開発中のものです。2009/07/16(木) 19:52:16ID:7TZC2gMD
どうせそんな奴、誰にも相手にされずに朽ちていくさ
0192名前は開発中のものです。2009/07/16(木) 21:54:41ID:gO8rBliL
前にもいたなぁ。変わりに作ってくれとか言ってたやつ。

RPGツクールの売りはRPGを自分で作る楽しさ。
だったらGMの売りはゲームを自分で作る楽しさ。
何かを作る時には、どう作ればいいかという試行錯誤が必要なわけで、
逆に言えば、その悩む工程無しに物は作れない。
自分の頭を使えず、他人に任せ、作ることを楽しめない人には何も作れない。
0193名前は開発中のものです。2009/07/16(木) 22:29:37ID:MpWxoNZ2
アイワナ好きがワナビー君。自己愛の強いやつってわけだw
0194名前は開発中のものです。2009/07/17(金) 01:13:50ID:hU1Bxe0M
GM8感想
・アルファチャンネルネイティブサポートなんで透過PNG使うのがラク。超綺麗。
・イメージエディタも↑対応。
・ビルドが若干早くなってる。
・スクリプトも若干記述が簡易になったものが。
・トリガーイベントが地味に便利っぽい。

全体としてはマイナーチェンジの印象が拭えないけど、各所で地味に作りやすくなってるのは確か。
特に問題がなければ推奨かも。個人的にはアルファチャンネルサポートが一番嬉しい。
0195名前は開発中のものです。2009/07/17(金) 06:59:35ID:8JCsTQOd
sprite_set_bboxが無くなっているという話を聞いたが
そこらへんはどんな感じだろう
0196名前は開発中のものです。2009/07/17(金) 13:24:51ID:FXJQqITE
Collisionイベントを使って特定のオブジェクトに衝突判定させたときは、
「衝突したその種類のすべてのインスタンス」に処理が行われますが、
collision関数を使って同じように行うにはどうすればよいでしょうか。
イベントではなく関数を使うのは、キャラの攻撃判定を
プレイヤーが任意に設定できるようにするためなので、
あらかじめ攻撃判定の大きさのマスクを用意するわけにもいかないのです。

現在は
var col;
col = collision_line(~,~,obj~);
with(col){・・・処理・・・};

で行っているのですが、これだと「衝突したうち一つのインスタンス」
しか衝突判定が行われません。
アクションゲームなどで重なった敵を攻撃する際に
非常にストレスになるらしく、出来れば改善したいところです・・・。
0197名前は開発中のものです。2009/07/17(金) 14:49:28ID:Ys5x6wol
ご指摘の通り、collisionチェック系の関数だとか、
instance_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+
>>196
プレイヤーが任意に設定したい攻撃判定の数だけダミーの不可視のオブジェクト作って、
これのx,y座標をプレイヤーキャラのx,yに同期して、
何かのインスタンスに当たったら、これの衝突情報を、プレイヤーキャラのインスタンス側で参照するとかは?
0200名前は開発中のものです。2009/07/18(土) 00:20:17ID:lmxBXlGJ
>>196
発想を逆にして
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
if文で出来ないことなんてないと思うけど・・・。ifの条件文を見直してみたら?

確かに、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
双葉のID板で、途中のやつを公開してみたけど。そのくらいかなぁ。
ゲーム開発自体は初心者だし。
0210名前は開発中のものです。2009/07/23(木) 21:49:01ID:9sYuv18d
GMユーザーの活動を広報したいのか、GMユーザーの裾野を広げたいのか。
0211名前は開発中のものです。2009/07/24(金) 00:54:57ID:4oRtOW6p
そんな細かく目的を分ける必要ないだろ・・・
0212名前は開発中のものです。2009/07/24(金) 01:28:06ID:VftsPVOX
ま、やりたい奴がやりゃそれでいいんじゃね?
俺は別にGMでドーコーってのは無くて普通に公開するけど。
0213名前は開発中のものです。2009/07/24(金) 17:31:08ID:JepbGxNy
俺も普通に公開するかな
まだ体験版にすら至ってないが…
0214名前は開発中のものです。2009/07/24(金) 20:36:34ID:rsS/wSle
ここがもうちょっとにぎわってからだね
0215名前は開発中のものです。2009/07/24(金) 22:42:14ID:p6tGynQg
昔作りかけで飽きて投げたのを久しぶりにやったら面白かったんで、大規模に改良したのを作ってみてる。
ところで、国内でTDS(TopDownShooter,真上から見た視点のFPSみたいなの)作ってる人っているのだろうか?
公式フォーラムではアメリカや西欧だけでなく東欧や南米の人も作ってるみたいだけど、日本で作ってる人はいるかな。
0216名前は開発中のものです。2009/07/26(日) 17:08:53ID:HUXpWVlV
みんなどういうもの作ってるのかというのは気になるね。
マイナージャンルで仲間見つけたら嬉しいってのもあるだろうし
他人のを見て色々と勉強になることもあるだろうし。
■ このスレッドは過去ログ倉庫に格納されています