1 名前:名前は開発中のものです。 mailto:sage [2010/12/05(日) 09:57:49 ID:AN26SQm8] 無料Windows用2Dゲーム作成ツール"Game Maker"について、色々と語り合うスレッドです。 ●本家(英語) ttp://www.yoyogames.com/ ●GameMaker Japan - 非公式情報サイト(日本語) ttp://gamemaker.jpn.org/v1/(現在一時閉鎖中) ●The Game Maker's Apprentice ttp://book.gamemaker.nl/ 前スレ 【2D】ゲーム作成ツールGameMaker part4【マンセー】 ttp://hibari.2ch.net/test/read.cgi/gamedev/1240441868/
319 名前:名前は開発中のものです。 mailto:sage [2011/05/10(火) 21:57:47.26 ID:T8uqKylv] >318 なるほど 1個のスプライトで全部のアニメーションをカバーするのか 管理がダルいけどありな方法だなぁ >317 sprite_indexはそのオブジェクトが指定しているスプライトIDだよ ヘルプ読め ttp://www.geocities.jp/hogehige2005/
320 名前:名前は開発中のものです。 mailto:sage [2011/05/10(火) 22:47:22.72 ID:Xl95nJbq] >>319 なるほど、sprite_indexの意味がちょっとわかりました。 こっちの方が管理が楽そうですね。 ちょっと工事してきます。 回答いただけた方、本当にありがとうございました。
321 名前:名前は開発中のものです。 mailto:sage [2011/05/10(火) 23:34:40.50 ID:PCGaliPA] >>316 instance_changeすると、オブジェクトのプロパティで設定できる項目 (depthとかvisibleとか)は新しいオブジェクトのデフォルト値に置き換わる。 それ以外の変数は、チェンジ前のものがそのまま引き継がれるというルールっぽいです。 というわけで sprite_index は新しいものに変わるが image_index, image_speed は今の値をそのまま引き継ぐ。 インスタンスの変更を使うなら、これらの変数は createイベントあたりで初期化しておくのが無難。
322 名前:名前は開発中のものです。 mailto:sage [2011/05/15(日) 16:44:15.62 ID:N6qdRXUq] アンドゥ機能って無いんですか?
323 名前:名前は開発中のものです。 mailto:sage [2011/05/16(月) 01:01:44.11 ID:vRUdEGoj] >322 アンドゥは個別にあるだろ アイコンまであるのに。 何に対して言ってるのかまったくわからん
324 名前:名前は開発中のものです。 mailto:sage [2011/05/16(月) 10:11:31.38 ID:lDJNj9Lq] アンドゥトロワ
325 名前:名前は開発中のものです。 mailto:sage [2011/05/16(月) 20:25:59.31 ID:ytgKQB8D] プレイヤーを左(もしくは右)の方に置いた状態で横スクロールするために //プレイヤーが右向きならglobal.muki=1 if(global.muki == 1) x = 120 + obj_player.x; else x = -100 + obj_player.x; y = obj_player.y; というコードをstepで実行するオブジェクトを作って一応うまくいったのですが なんだかスクロールが微妙になめらかじゃない感じがします 原因わかる方、ご教示してくださると幸いです 気のせいだったらすみません room設定は width 960 Height 480 View in room X 0 Y 0 W 480 H 320 Port on screen 同上 Hbor 240 Hsp 9 Vbor 160 Vsp -1 としています
326 名前:名前は開発中のものです。 mailto:sage [2011/05/16(月) 20:56:02.31 ID:CFVi0QEm] どういう状態かよくわからない プレイヤーオブジェクトの向きによって、見える視界範囲をスクロールする? それとも強制スクロールでプレイヤーオブジェクトを画面外に出ないようにする?
327 名前:名前は開発中のものです。 mailto:sage [2011/05/16(月) 21:08:15.11 ID:ytgKQB8D] すみません 目指しているのは、マリオのような通常横スクロールで、プレイヤーが画面の真ん中より進行方向逆側をキープしつつの スクロールです 進行方向(プレイヤーオブジェクトの向いてる方向)の画面を多く見せたいのです プレイヤーが逆方向を向いたときは、向いたがわの画面を多く見せたいのです ○をプレイヤーとすると、 右向きの時はこんな感じで、プレイヤは画面上はその位置をキープして ○ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 左向きの時は、実際の位置は変えずに、こういう感じにするのを目指しています ○ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ う〜む…なんかうまく説明できません 申し訳ない
328 名前:名前は開発中のものです。 mailto:sage [2011/05/16(月) 21:10:34.71 ID:ytgKQB8D] >>326 >>プレイヤーオブジェクトの向きによって、見える視界範囲をスクロールする? すみません。見逃していました たぶん仰る通りのことを目指しています
329 名前:名前は開発中のものです。 mailto:sage [2011/05/16(月) 21:58:08.71 ID:CFVi0QEm] たぶん透明のオブジェクトを作って viewはそれを追従するようにしてるんだと思うけど それならHspの値を変更すれば追従速度が変わるんじゃないかな 少数点とかの細かい値は指定できなかったと思う
330 名前:名前は開発中のものです。 mailto:sage [2011/05/16(月) 22:00:28.57 ID:sywNYm8h] Step じゃなくて End step に置くっていうのはやってみた?
331 名前:名前は開発中のものです。 mailto:sage [2011/05/16(月) 22:17:00.33 ID:ytgKQB8D] ご教示ありがとうございます End stepに置いたら上手くいきました! 原因は実行の順番にあったのかな >>329 ずばりその通りにしています 原因は透明のオブジェクトの方にあるようでした ありがとうございました〜 >>330 イマイチStep系統の使い勝手を分かっていませんでしたが、ちょっとわかったような気がします ありがとうございました〜
332 名前:名前は開発中のものです。 mailto:sage [2011/05/17(火) 07:32:08.70 ID:73LY8Wv3] 皆は外部ファイル(セーブデータやミッションデータなど)はどうしてる? 自分はミッションクリア式のゲーム(例えばイキキ様のはかいマン)を作っているけれども、外部ファイルをどんな風に扱えば良いのかなと 携帯からすまん
333 名前:名前は開発中のものです。 mailto:sage [2011/05/17(火) 11:17:17.96 ID:VvMqXX45] どうしてるってどういう意味? セーブデータならexeと同じフォルダに適当なフォルダ作ってその中に入れてるな 暗号化したければお好みで
334 名前:名前は開発中のものです。 mailto:sage [2011/05/17(火) 13:46:18.19 ID:i8OzSkbD] exeのあるフォルダにsaveフォルダ作って暗号化して放り込んでる
335 名前:332 mailto:sage [2011/05/17(火) 16:56:20.38 ID:73LY8Wv3] >>333 ,>>334 ありがとうございます。 暗号化ですか…調べてみます
336 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 03:23:58.02 ID:7W9fWkhX] スプライトを読み込むとメモリ上ではbmpになるけど、メモリ上でもpngのまま扱う方法ってないのかな? 連番画像を読み込んだ時のメモリ使用量が辛くなってきた ちょっとdllの作り方調べるくらいじゃ判断がつかない
337 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 03:24:59.59 ID:7W9fWkhX] ごめん、上のはpngを読み込むならpngのまま、gifを読み込むのならgifのままってことね
338 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 03:56:58.93 ID:+PTB5Jtq] ファイル形式のままメモリ上で保持するっていうのはない 読み込む画像データを少なくする手段を考えるほうが手っ取り早いはず シーン毎に必要な画像だけ裏で読み込んでいらん画像は破棄するとか
339 名前:名前は開発中のものです。 mailto:sage [2011/05/21(土) 00:19:10.49 ID:FrjLYHtD] 8.1になってから半角カナ使えなくなった?
340 名前:名前は開発中のものです。 mailto:sage [2011/05/22(日) 02:23:55.82 ID:DGEjNdCf] 突然すみません、質問させてください。 アニメーションgifの特定のsubimageの時にwaveを鳴らすって処理はできますか? 例えばアニメーションの4番目と8番目が拳を振り下ろすシーンで、その時に打撃音を鳴らすといった事は可能でしょうか? 素人の質問で恐縮です。 もしよろしければ回答頂けるとありがたく思います。
341 名前:名前は開発中のものです。 mailto:sage [2011/05/22(日) 12:22:40.30 ID:Q11em/4c] 俺のやり方 効果音が鳴ったかどうかの変数を作っておき、image_indexが3以上になったら変数をtrueにして効果音を鳴らす if image_index < 3 { se_flag = 0; } else if image_index >= 3 && se_flag == 0 { sound_play(効果音); se_flag = 1; }
342 名前:名前は開発中のものです。 mailto:sage [2011/05/22(日) 12:25:46.90 ID:Q11em/4c] あ、8番目も鳴らすのか、ならこうかな if image_index < 3 { se_flag = 0; } else if image_index >= 3 && se_flag == 0 { sound_play(効果音); se_flag = 1; } else if image_index >= 7 && se_flag == 1 { sound_play(効果音); se_flag = 2; }
343 名前:名前は開発中のものです。 mailto:sage [2011/05/22(日) 13:15:26.08 ID:UUQ6TMbs] 他にも効果音を鳴らす行動があるなら、配列とかも作ってどこで鳴らすかとかもやるといいかもね a[0] = 2;//鳴らす箇所の数 a[1] = 3;//鳴らすimage_indexその1 a[2] = 7;//鳴らすimage_indexその2 sound_ids = 効果音1 if(!sound_isplaying(効果音1)){//効果音1が再生中では無いなら for(i=1;i==a[0];i+=1){ if(image_index==a[i]){//image_indexがa[1~a[0]]の値ならば sound_play(効果音1);//効果音を鳴らす } } }
344 名前:名前は開発中のものです。 mailto:sage [2011/05/22(日) 13:17:04.98 ID:UUQ6TMbs] ありゃ、修正ミスだ たぶんこれで大丈夫なはず a[0] = 2;//鳴らす箇所の数 a[1] = 3;//鳴らすimage_indexその1 a[2] = 7;//鳴らすimage_indexその2 sound_ids = 効果音1 if(!sound_isplaying(sound_ids)){//sound_idsが再生中では無いなら for(i=1;i==a[0];i+=1){ if(image_index==a[i]){//image_indexがa[1~a[0]]の値ならば sound_play(sound_ids);//sound_idsを鳴らす } } }
345 名前:名前は開発中のものです。 mailto:sage [2011/05/22(日) 23:48:09.68 ID:DGEjNdCf] >>341-344 回答ありがとうございます! おかげで出来ました。ありがとうございました!
346 名前:名前は開発中のものです。 mailto:sage [2011/05/23(月) 15:59:21.06 ID:AtLcnK/y] 延々と右にスクロールするボスステージを作りたいのですがステージをループさせるのは可能なのでしょうか? またボスが登場するときなどに画面を揺らす効果を付けたいのですがよくわからないので教えていただけないでしょうか? なんとなくviewに関係ある関数を使うのだとは思うのですが・・・
347 名前:名前は開発中のものです。 mailto:sage [2011/05/24(火) 08:00:36.19 ID:TE7zmycQ] ループの方法はいくつか思いつくけど全部力技だからもっと賢い人のレスに任せた 画面を揺らすのはviewで合ってるよ view_*portとview_*viewの区別が最初はつき辛いから注意 簡単に言うなら、view_*viewがビデオカメラのレンズで view_*portはビデオで撮った内容を映写するためのプロジェクターだと思えばいい view_enabled = true; //view機能をONにする view_visible[0] = true; //0番目のviewを使う //まずはカメラで撮りたい場所を決める view_xview[0] = 0; //ルーム内の座標x=0と view_yview[0] = 0; //座標y=0から view_wview[0] = 640; //幅640pixel view_hview[0] = 480; //高さ480pixelの範囲をカメラで映す //撮った内容をスクリーンのどこに映写するか決める view_xport[0] = 0; //座標x=0と view_yport[0] = 0; //座標y=0から view_wport[0] = 320; //幅320pixel view_hport[0] = 240; //高さ240pixelの範囲に映写する
348 名前:名前は開発中のものです。 mailto:sage [2011/05/24(火) 08:02:35.70 ID:TE7zmycQ] こうすると、カメラで撮った範囲がスクリーンの左上に320*240に縮小されて写るはず (スクリーンの大きさは640*480ってことにしとく) ここまで出来たら、view_xportとかview_wportとか色々変えて 何が起こってるのが自分で理解してみるといい 丁度プロジェクターをいじってるような感じだね 次はview_xviewとview_yviewを変えてみる これはカメラを動かすことと一緒だってわかるはず それが出来たらあとは簡単 画面を揺らすってことは、つまりカメラを揺らすってことだから view_xview[0]とview_yview[0]を適当に変えればOK 昔苦労したから色々書いたけど、とりあえず自分で色々触ってみるといいよ ちなみにGMLじゃない方法は知らない
349 名前:名前は開発中のものです。 mailto:sage [2011/05/25(水) 02:30:01.55 ID:ZZ2I1X7r] 特定オブジェクトのインスタンス数を調べるにはどうすればいいのかしら
350 名前:名前は開発中のものです。 mailto:sage [2011/05/25(水) 10:10:27.96 ID:j/e14whg] >>349 つ instance_number(obj)
351 名前:名前は開発中のものです。 mailto:sage [2011/05/25(水) 14:05:01.90 ID:opsyaCmR] ニホンゴヘルプヲヨメコノヤロウ
352 名前:名前は開発中のものです。 mailto:sage [2011/05/26(木) 12:03:30.14 ID:j9K6d2Wg] GM8.1はbGMスクリプト使えないのかなあ・・・。 Illegal array index in script "bGM_play". trying to access argument[3], but only 3 arguments have been supplied. ってエラーでて起動できないです。
353 名前:名前は開発中のものです。 mailto:sage [2011/05/26(木) 12:58:51.69 ID:FOEeM3du] >>352 そのエラーをまんま翻訳すればわかると思うが。 要は値が足りてないってことで、以前のGMで省略できてたところが 8.1では省略不可になってるってこと。
354 名前:名前は開発中のものです。 mailto:sage [2011/05/26(木) 13:01:56.58 ID:j9K6d2Wg] >>353 うう、つまり自分で修正コード入れない限り再生できないってことですか。 GMLを最近学び始めた俺には少し厳しい・・・・。
355 名前:名前は開発中のものです。 mailto:sage [2011/05/26(木) 13:54:15.81 ID:FOEeM3du] 修正の必要はないと思うけどな bGM_play(filename, volume, is_loop, pan, pitch); だからループやパン・ピッチの値を全部入れればいいんじゃね?
356 名前:名前は開発中のものです。 mailto:sage [2011/05/26(木) 14:13:00.56 ID:j9K6d2Wg] >>355 お、おおおお!たったこれだけのことだったのか・・・! 危うくGM7で再出発するところでした。再生できました。 本当に感謝します。 くだらない質問でスレ汚しすみませんでした。
357 名前:名前は開発中のものです。 mailto:sage [2011/05/26(木) 14:23:45.17 ID:YWyy1BIh] 省略不可になってるとか、どんどん使い方が厳しくなっていくな 横着するなってことなんだろうが
358 名前:名前は開発中のものです。 mailto:sage [2011/05/26(木) 15:47:29.28 ID:FOEeM3du] よこしま氏は省略した時のスクリプトをちゃんと組んでるんだけど 値を見るタイミングがそのコードを見た後だったのが関数のコール時点に 変更になってるせいだと思う。YoYo側はそっちのほうが楽にエンジン作れるからいいんだけど、 ユーザーにとっちゃ厳しい変更だよね。
359 名前:名前は開発中のものです。 mailto:sage [2011/06/01(水) 20:06:27.79 ID:+m52XcHS] GMLからSet time lineみたいにタイムラインを使いたいのですがtimeline_add()の()部分にタイムライン名を入れるだけでは使えないのでしょうか? Wrong number of arguments to function or script.とエラーが出てしまいます
360 名前:名前は開発中のものです。 mailto:sage [2011/06/01(水) 20:39:53.72 ID:empjEd2o] なんでニホンゴヘルプ読んでから質問しねーんだよぉぉぉぉぉ!!
361 名前:名前は開発中のものです。 mailto:sage [2011/06/01(水) 20:52:15.33 ID:Wfx+wiQY] timelin_addは引数をとらない。そしてそれはタイムラインを新しく作るための関数だ。 タイムラインを開始するには timeline_index = 開始したいタイムライン と代入して 先頭から開始したかったら timeline_position = 0 にして さらに、GM8以降だったら timeline_running = true にする。
362 名前:名前は開発中のものです。 mailto:sage [2011/06/02(木) 00:00:46.77 ID:8YtJadZR] >>361 ありがとうございます ヘルプのtimeline_indexは(番号)だとか書いてあってまた違うものだと思っていました 代入する物なのですね
363 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 04:36:35.65 ID:bKns1Szr] コードの中でaaa = x+yと書いた場合、以降aaaと書く度に計算されてるんだよね ステップ中に一度出した計算結果を、再度計算抜きでそのまま参照する方法ってある? 計算内容によってはいくらかパフォーマンスが上がりそうな気がする
364 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 04:40:17.43 ID:+R2gRvWC] aaaという変数にx+yの計算結果が入っているだけ、計算式が入るわけじゃない
365 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 06:04:20.74 ID:bKns1Szr] その計算結果を出すために毎回計算しているという事は無いんですか? スクリプトaaa「x+y」 スクリプトbbb「hspeed+vspeed」 instance_create(aaa(),bbb(),object) ↑ この場合でもそれは同じですか?
366 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 07:02:02.49 ID:+R2gRvWC] スクリプト呼び出しの場合は毎回計算される 変数を読むだけなら計算された結果の値 step毎にaaa = x+yの計算はされる 計算するための条件をつけるとかで多少は改善できるかもしれないけど 単純な数値だけの計算だと、あまり関係無いと思う 文字を数値に変換したりを毎step繰り返すと重くなるけどね >>365 の場合 x+yの計算→hspeed+vspeedの計算→そしてオブジェクトの作成
367 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 07:08:45.01 ID:bKns1Szr] なるほど スクリプトはコードが綺麗にまとまるので頻繁に使っていましたが 内容によっては直接書いたほうが良いという事なんですかね どうもありがとうございました
368 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 07:26:48.41 ID:+R2gRvWC] 条件次第だけど必要なときだけ計算させて使うって方法があるかな x+y位置の情報を得るなら、キーを押して移動した後に 変数=aaa()とかで結果を入れるようにするとか 移動しない限り変数の値が書き換わらない
369 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 08:00:33.49 ID:bKns1Szr] x+yというのはでたらめ過ぎたのでもう少しまともに書くと スクリプトPD「point_direction(x,y,target.x,target.y)」 if (PD() > 0) && (PD() <= 90){ 処理 } if (PD() > 90) && (PD() <= 180){ 処理 } if (PD() > 180) && (PD() <= 270 ){ 処理 } if (PD() > 270) && (PD() <= 360){ 処理 } このPDの計算をステップ中一度だけに出来ればコスト削減になるのではと考えたのです スクリプトよりもPD = point_direction(x,y,target.x,target.y)又はvar PD(略)としたほうが良いのでしょうか
370 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 10:44:32.20 ID:uM1fq+B8] 処理を分岐させるための変数を「PD」、 point_direction(x,y,target.x,target.y)の計算をするスクリプトを「ScriptPD」 としたときに PD = ScriptPD; //このように変数に計算結果を代入すれば毎回計算しなくて済む if (PD > 0){ //ついでにこっちのコードもすっきり if (PD <= 90){処理1} else if (PD <= 180){処理2} else if (PD <= 270){処理3} else if (PD <= 360){処理4} }
371 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 11:06:07.76 ID:bKns1Szr] 大変為になりました どうもありがとうございます
372 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 11:18:43.54 ID:bKns1Szr] 何度もすみませんがvarでスクリプトを代入した場合でも>>370 でしょうか?
373 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 11:37:28.17 ID:uM1fq+B8] varは代入ではなく変数の作成。 ScriptPDの返す値は0〜360の整数で、GMLは変数の頭文字に数字が使えないので var ScriptPD();とするとエラーが出る(はず)
374 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 18:00:28.68 ID:bKns1Szr] var PD ; PD = scriptPD() ; これなら>>370 も一度の計算で大丈夫ですよね?
375 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 20:30:40.98 ID:czogavCN] ごめん、まともに考えてレスしようと思ったけど、処理速度ほとんどかわらんのだからPD=point_direction(x,y,target.x,target.y)でいい。 その後の処理は同じイベントか同じスクリプト内でやるんならvar宣言すれば多少はメモリ節約にはなるけど微々たるもんだから気にする必要はないと思う。 ちなみに単純にPD=ScriptPD()なんてやっても多分何も返してないんだから0が代入されるんじゃない? スクリプトの最後にreturn(PD)とすればPDに代入されたもんが返ってくる。 でも上の例じゃスクリプト内でvar宣言してないPDは、呼び出したオブジェクトのローカル変数になるしreturnも必要ないし
376 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 20:41:14.61 ID:czogavCN] バージョンによって違うのか知らんが、スクリプトは関数的な扱いだから変数に関数の結果を代入するのならPD=ScriptPD()という書き方が正しい(つかそうじゃなきゃエラーになる) そしてpoint_direction自体が関数なのだから、二度手間にしてる分余計な処理が増えてると思う。 あとvar宣言は変数の作成ってか、一時的に使う変数みたいなイメージ。 その場でしか使えない変数だから、スクリプト内で使ったらどこにも定義されてない変数になる。(呼び出し元のオブジェクトのローカル変数にもならない) それとたかだか何十桁の計算をしても処理速度はまず変わらないから気にしない方がいいよ。計算機ですら計算しても一瞬で答えが出るんだから。
377 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 22:38:19.27 ID:bKns1Szr] 長時間に渡ってのレスありがとうございます 基本的な数値計算なら細かいことは気にしなくても大丈夫なのですね 極端な話>>369 でもパフォーマンス上は問題がないと PD = ScriptPD; //このように変数に計算結果を代入すれば毎回計算しなくて済む ↑ この事についてのソースはありますでしょうか 勿論疑っているわけではないのですが、ネット上で見られるなら勉強の為に見ておきたくて
378 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 22:51:51.73 ID:czogavCN] >377 それは間違い。 ScriptPDというスクリプトを参照し、中身のpoint_direction関数を実行、結果を変数PDに代入 という一連の流れをやっている。 PD=point_direction(...)でやった場合は、point_direction関数を実行、結果を変数PDに代入 だけになる。 やりたいことは多分、前ステップとの座標を比較して、違いがあれば処理みたいなイメージかもしれないけど 結局前ステップとの比較と言う「計算」をしている以上毎回計算しなくて済むわけがないからあんまり意味ない。 まぁ処理速度的な話になるならどれにしても大差ないだろうけど
379 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 23:00:48.85 ID:czogavCN] パフォーマンスに関して考え出すなら、GameMakerというよりはベースになってるDelphiを調べた方がいいんじゃないかな GameMakerはライブラリ的な位置付けになりそうな感じがするから、GameMakeで何も処理しない状態のパフォーマンスから計測していけば、単純にどれだけ時間がかかるか出るかもしれない。 とはいえ1フレーム内でルームの描画、インスタンスの配置、ステップ内各処理、描画処理などなどをやってんだから計算程度じゃ0.000...秒という世界だろうけど。
380 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 23:05:11.56 ID:bKns1Szr] 間違いというのは「PD = ScriptPD; //このように変数に計算結果を代入すれば毎回計算しなくて済む」でしょうか >>370 にこのように書かれていたのですが 処理速度的な事を訊きたかったとはっきり書かなくて申し訳ありません 実際に>>369 の様な事がしたいわけではなく同じスクリプトを何度も使っている例として出しただけです どれも大差無いということならゲームを作る事に集中したほうが良さそうですね
381 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 23:07:47.43 ID:bKns1Szr] >>379 素人の手の出る領域では無さそうですね おとなしくゲームの完成を目指します ありがとうございました
382 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 23:18:28.12 ID:czogavCN] そう。 最終的に計算して代入してるから同じ。 例えば何かしら計算をさせる処理を複数のオブジェクトでやった場合無駄になる。 1ステップで何度も計算する事になるからね。 だから計算させるためのオブジェクトを一つ用意して毎ステップ1度だけ計算させるのがスマートだと思う。 これは個人的なやり方なんだけど、オブジェクトごとに数値をもっていると管理が大変な場合が多いからPersistentな管理用のオブジェクトを作っておくのはおすすめ。
383 名前:名前は開発中のものです。 mailto:sage [2011/06/04(土) 23:42:10.73 ID:8RjBJbYc] GMLのスクリプト呼び出しはオーバーヘッドがすごく大きいんだよなあ GMに直してほしい機能のうちの一つだな
384 名前:名前は開発中のものです。 mailto:sage [2011/06/06(月) 22:52:52.63 ID:YrcUqfkL] あるインスタンスの配列に違うインスタンスの変数の値を使うにはどうすればいいのでしょうか?
385 名前:384 mailto:sage [2011/06/06(月) 22:54:53.16 ID:YrcUqfkL] あ、配列の添字にです
386 名前:384 mailto:sage [2011/06/06(月) 23:16:40.20 ID:YrcUqfkL] 自己解決しました 単に他の部分でミスしてただけでした
387 名前:名前は開発中のものです。 mailto:sage [2011/06/06(月) 23:27:05.85 ID:BDlMKDQQ] >>370 の「PD = ScriptPD; //このように変数に計算結果を代入すれば毎回計算しなくて済む」について簡単な実験をしてみた 本当に毎回計算していないのかはわからないけど、それっぽい結果は出た 糞忍法で長文が書けねえので分割
388 名前:名前は開発中のものです。 mailto:sage [2011/06/06(月) 23:32:53.02 ID:BDlMKDQQ] @ スクリプトscr test+=1 return(point_distance(0,0,mouse_x,mouse_y)) オブジェクトobj クリエイトイベント test=0 ステップイベント scr() ドローイベント draw_text(0,0,scr()) draw_text(0,10,test) これを実行するとx0,y0からマウスまでの距離と変数testが表示され、変数testは1ステップ毎に1増えていく
389 名前:名前は開発中のものです。 mailto:sage [2011/06/07(火) 00:28:57.87 ID:ZJ4o791x] A ドローイベントを draw_text(0,0,scr()) draw_text(0,10,scr()) draw_text(0,20,test) これを実行するとマウス距離が2行表示され、変数testは1ステップ毎に2増えていく
390 名前:名前は開発中のものです。 mailto:sage [2011/06/07(火) 00:33:25.16 ID:ZJ4o791x] B ステップイベントを SCR=scr() ドローイベントを draw_text(0,0,SCR) draw_text(0,10,SCR) draw_text(0,20,test) これを実行するとマウス距離は2行表示されるが、変数testは1ステップ毎に1増えていく 以上
391 名前:名前は開発中のものです。 mailto:sage [2011/06/07(火) 02:40:26.35 ID:zx6XrJ8s] Aはスクリプトを2度呼び出しているからpoint_distanceの結果は変わらないけどtestを2回加算している事になる。 毎回計算しているっていうのと毎回加算しているっていうのは微妙に意味が違うような気はするけど、確かな結果だね。 スクリプトを呼び出した時点で計算はされている。 それを変数に「一度」入れれば同じ計算を1ステップ内で何度もする事はない。けど何度も計算しなければならない状況もあるから注意。 使い方次第だとは思う。
392 名前:名前は開発中のものです。 mailto:sage [2011/06/07(火) 19:39:04.85 ID:ZJ4o791x] >>391 なぜだか結果の変わらない物を使った方が良い気がしてた スクリプトに返させる値をtesterに変更してAの様にするとtest,tester共に2づつ、Bの様にすると共に1づつ増えていった 実験の結果から「PD = ScriptPD; //このように変数に計算結果を代入すれば毎回計算しなくて済む」は(おそらく)正しい これは>>363 の望み通りの物だと思う
393 名前:名前は開発中のものです。 mailto:sage [2011/06/08(水) 11:20:12.83 ID:WSSU3+pj] ttp://madebyluke.com/gamedesign/tutorials/tut_double_jump.html これだとジャンプ中に左右キーを放すとカクっと見えない壁にぶつかったようになるのですが 洞窟物語みたいに気持よくジャンプをするサンプルがあったら教えてください
394 名前:名前は開発中のものです。 mailto:sage [2011/06/08(水) 11:27:12.91 ID:4811qVsV] hspeedとかを徐々に増やす、減らすようにすればいいだけじゃないか?
395 名前:名前は開発中のものです。 mailto:sage [2011/06/10(金) 20:55:49.84 ID:KxmQk2Cc] test
396 名前:名前は開発中のものです。 mailto:sage [2011/06/10(金) 20:59:58.25 ID:KxmQk2Cc] 忍法帖orz >>393 左右移動にhspeedを使って、プレイヤーオブジェクトの生成イベントでfrictionを0.3程度に設定するとうまくいくかもしれない
397 名前:396 mailto:sage [2011/06/12(日) 20:29:55.89 ID:HJZIl/jx] >>393 www.mediafire.com/?925h3hxccsz4759 こんな感じ?
398 名前:名前は開発中のものです。 mailto:sage [2011/06/16(木) 18:40:01.87 ID:XN0pClxu] ver.8.1にて。 テストプレイしかしてなかったから知らなかったぜ。 exe吐き出したら画面にロゴ残しやがった。 これPro化しないとまともに配布もできなくなったのかよ…
399 名前:名前は開発中のものです。 mailto:sage [2011/06/16(木) 21:54:13.11 ID:BFj+P58V] 当初の段階だと、8.1 Liteはexe化すらできなくする予定だったのを ロゴ付きならできるようにしましょうと変更されたんだよ 結局商売だからこういう流れになるのは仕方ないんじゃないかな 購入する予定がないなら8.0 使えばいいと思うよ
400 名前:名前は開発中のものです。 mailto:sage [2011/06/17(金) 06:53:09.21 ID:NDC+ghZU] GML使える人ならHSPとかに移ったほうがいいレベルの糞ツールになりかけてる
401 名前:名前は開発中のものです。 mailto:sage [2011/06/17(金) 08:33:58.91 ID:7p6/goCA] ツール作るならまだしもゲーム作りなら手軽さが数レベル違うわ
402 名前:名前は開発中のものです。 mailto:sage [2011/06/17(金) 11:06:14.88 ID:DA2eICap] Proって言ってもせいぜい数十ドルだろ? 払った方早い
403 名前:名前は開発中のものです。 mailto:sage [2011/06/17(金) 12:24:10.20 ID:NSQKaG+q] あらかた完成してから気が付いたからもう買うしかないんだけどね。 てか40$って値上がりしてたのか、これまた知らんかった。
404 名前:名前は開発中のものです。 mailto:sage [2011/06/18(土) 00:31:31.40 ID:/YlR1dsF] 20ドルでも高いと思って渋ってたのをやっと買おうと思ったのに値上げ…
405 名前:名前は開発中のものです。 mailto:sage [2011/06/18(土) 06:20:41.48 ID:RFJ3bSCD] 普通に1万以上するツールが溢れてる中に比べれば日本円にして3200円程度なら安いだろ GMLは割りと色んな言語に通じるものがあるがHSPは微妙だし 日本語入力ができないとこ以外は結構いいと思うけどな
406 名前:名前は開発中のものです。 mailto:sage [2011/06/18(土) 10:36:54.51 ID:CQo3XnF/] 8.1 が高いか安いか言われると若干割高な気がするな GM自体高機能なソフトじゃないし 値上がりするのはしょうがないけど 毎回中途半端な機能を適当につけて新機能ですっていうのは正直やめてほしい 通販で2個セット+おまけで1万円の大特価と同じ印象を受ける
407 名前:名前は開発中のものです。 mailto:sage [2011/06/18(土) 23:09:46.34 ID:/YlR1dsF] 最初から40ドルです、どうですか。ってのなら良かったかも知れないけど つい先日まで20ドルだったのが何が増えたのか良くわからないバージョンアップで倍になるってのが心理的に来るなあ
408 名前:名前は開発中のものです。 mailto:sage [2011/06/19(日) 10:00:04.01 ID:qlVse/Xe] 高いだの他のツールのがいいだの言うなら買わなきゃいいしGMを使わなきゃいい 割に合った開発環境をそろえるだけの根性も知識もないからGM使ってんだろ 文句言うな
409 名前:名前は開発中のものです。 mailto:sage [2011/06/19(日) 12:00:21.18 ID:j0JA/0gE] 何様だよ
410 名前:名前は開発中のものです。 mailto:sage [2011/06/19(日) 13:20:26.33 ID:Q8kPrGnz] 使ってて糞な仕様変更されたんだから文句言うに決まってんだろ
411 名前:名前は開発中のものです。 mailto:sage [2011/06/19(日) 13:43:22.67 ID:qlVse/Xe] タダ飯食って不味いと言うのか ツールによっては年間更新料で数万取るようなツールもあるし、強制で仕様変更されるのが普通 過去のバージョンが残ってて、未だに無料で使えるならマシだろ 文句を言うならタダ飯でも食わなきゃいい話
412 名前:名前は開発中のものです。 mailto:sage [2011/06/19(日) 13:55:18.30 ID:j0JA/0gE] 他ツールの普通を語ってどうするわけ? GMの話題なんだけど?
413 名前:名前は開発中のものです。 mailto:sage [2011/06/19(日) 14:07:09.79 ID:qlVse/Xe] 語ってるんじゃなく比較してるんだよ GM高いよな、クソだよなと文句を共有してるのがGMの話題ではないと思う それならいい所を見出して、うまく使う方法を考える方がよっぽど有意義だろ
414 名前:名前は開発中のものです。 mailto:sage [2011/06/19(日) 14:21:58.02 ID:j0JA/0gE] 最近あった値上がりや無料版のゲーム内ロゴはGMの話題だが 大した機能も追加されてないのにうまく使うもなにも無いだろ それにそう言うならうまく使う方法を教えてくれよ 当然考えてあるんだろ?
415 名前:名前は開発中のものです。 mailto:sage [2011/06/19(日) 14:32:31.57 ID:qlVse/Xe] 比較的ASやJSライクなGMLというスクリプト言語はかなり親しみやすいし、実際は他の言語の入門としても使えるだろうね Delphiの開発の敷居が一気に高くなった中でDelphiベースのアプリケーションが作れるソフトがGMだけだし 仮に金を払ってもDelphi XEより遥かに安い。勿論機能も劣るけどデータベースとかまで使わないだろ 更に8.0以降、特に8.1はiPhoneアプリの開発も出来るようになってるだろ。それをロイヤリティを取らずに商用で使えるツールなんてまずないぞ 値上がりやロゴなんて7.0になる前からあるものだし、個人的な感想を共有するのは自由だけどネガティブ方向に持ってって何も生まない議論をするだけ無駄だろ。 それなら文句を言う前に使うのをやめろって話をしてるだけ しかもタダで使ってるなら文句を言える立場にないだろ
416 名前:名前は開発中のものです。 mailto:sage [2011/06/19(日) 14:40:11.54 ID:j0JA/0gE] なるほどなるほど で、個人的な感想を共有するのは自由なんじゃないの? こんなの一時的な話題じゃん そもそもなんで文句を言う前に使うのをやめろ、と言える立場にいるの?
417 名前:名前は開発中のものです。 mailto:sage [2011/06/19(日) 14:46:21.46 ID:qlVse/Xe] 何も生み出さない馴れ合いなら他所でやれってハッキリ言わないとわからんのか 立場的な問題じゃなくGM自体の評価を無駄に下げたくないだけ。 互いに無駄に酷評する立場でもないだろ そこが気に障ったなら謝るよ。 この議論も何も生み出さないからとっとと切り上げたいんだが、そろそろいいか?
418 名前:名前は開発中のものです。 mailto:sage [2011/06/19(日) 14:57:21.47 ID:j0JA/0gE] おいらっち他ツール使ってるんやけど?w、みたいのが来たと思って絡んだ 今は反省している
419 名前:名前は開発中のものです。 mailto:sage [2011/06/19(日) 15:11:15.57 ID:SHs/B8KT] 試食があったので食ってみたらまずかった 「これ不味いな」と言ったら隣に居たおっさんが突然顔を真っ赤にして説教してきた