1 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 01:41:47 ID:PRhlwPyW] 無料Windows用2Dゲーム作成ツール"Game Maker"について、色々と語り合うスレッドです。 ●本家(英語) ttp://www.gamemaker.nl/ ●GameMaker Japan - 非公式情報サイト(日本語) ttp://gamemaker.main.jp/ ●初心者向けチュートリアル ttp://gamemaker.main.jp/modules/articles/index.php?cat_id=1 前スレ: 【2D】ゲーム作成ツールGameMaker【マンセー】 pc8.2ch.net/test/read.cgi/gamedev/1087068523/
225 名前:名前は開発中のものです。 [2008/08/14(木) 01:58:12 ID:OGCepjkd] 描画APIとしてOpenGL使えないのか?
226 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 22:09:11 ID:y+Gl/YHW] うっわ今気づいた……ペアレント設定スゲエ便利…… うわあ・・・・・・・・・・かなり時間無駄にしてたきが・・・うわあ・・・・
227 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 22:10:41 ID:SEYmkdw0] ぺあれんと設定? どんな感じなのかkwsk
228 名前:名前は開発中のものです。 [2008/08/14(木) 23:19:00 ID:SyKT2EHY] このソフトを使ってこれからゲーム作ろうと思うのですが、 バージョンはどれがいいのでしょうか? パソコンでゲームを作った事はありません。 やっぱり日本語化できる5,3Aがいいでしょうか?
229 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 23:59:01 ID:fWCjSQKb] >>228 最新バージョン用の日本語辞書ファイルがこのスレにあがってたよ
230 名前:名前は開発中のものです。 [2008/08/15(金) 01:40:43 ID:YYg607kj] Linuxの、diff -u > に気づいたときと同じ衝撃を味わう パッチ作成、それまで手書きだったからな まさかdiffで簡単にできるとは
231 名前:名前は開発中のものです。 [2008/08/15(金) 14:49:00 ID:05Tah5Zi] >>229 レスどうもです。 今このスレ全部見てきたんですが・・・ 最新バージョンって7,0ですよね? 探しても見つからないです・・・ どこにあるのでしょうか?
232 名前:名前は開発中のものです。 mailto:sage [2008/08/15(金) 15:15:52 ID:oWA1flsm] ゲーム中にゲーム画面に日本語を表示する事は出来るのでしょうか? 英語でしか表示出来ず、今まで文字毎のスプライトとオブジェクトを作って表示してたのですが スプライトとオブジェクトの数が凄い事になってしまいました。
233 名前:名前は開発中のものです。 mailto:sage [2008/08/15(金) 21:17:31 ID:b4foDt54] >>232 そんな時こそ非公式情報サイトで配布してる日本語描画スクリプトですよ
234 名前:名前は開発中のものです。 mailto:sage [2008/08/16(土) 15:12:50 ID:phIiQvcL] gmlで衝突相手を判別するのはどうすればいいんでしょうか? 弾を跳ね返す盾をチュ食っているのですが、 あらかじめグローバル変数を決めて、 instance_positionでぶつかってきたオブジェクトの速度を調べ、グローバル変数に代入して 一定以上ならとび道具として速度を反転させる、というつもりで掻いてるのですがうまく言ってるのかどうかもわかりません。 あと大砲とか撃ったときの反動ってどういう現し方がありますかね? 自分はアラームで速度を半分にして反転させて……というのを繰り返してやってるんですが……あんまりスマートじゃないですよね?
235 名前:名前は開発中のものです。 mailto:sage [2008/08/16(土) 17:05:03 ID:59E6GChr] 衝突判定はAddEvent > Collision 衝突相手はotherで参照できる(ただしCollisionイベント内のアクションでのみ) 反動の件はイマイチやりたいことが理解できん 撃った反動で射撃方向とは逆方向に砲身が吹っ飛んだ後、ゆっくり元の位置に戻るってことかな 読んだ感じだと反動というより振動って感じだろうか それと余談だけどゲーム設定などを除いてグローバル変数は極力使わない方がGMっぽいかもよ もともとのオブジェクト指向的な作り方を徹底した方が色々と管理しやすいと思う 具体的には ×神の視点に立って弾が跳ね返るのを見守る→ぶつかったらボールの方向を変えてやる ○弾オブジェクトに「盾に衝突する」とか「跳ね返る」という振る舞いを教えておく→あとはボールに任せる ○盾オブジェクトに「弾が衝突する」とか「跳ね返す」という振る舞いを教えておく→あとは盾にまかせる 3番目のは他オブジェクトのプロパティを弄ることになるから少し気持ち悪いけど1番目のよりは分かりやすい HSPとかBasicの経験が長い人なら逆に1番目の方が分かりやすいかもしれん
236 名前:名前は開発中のものです。 mailto:sage [2008/08/20(水) 18:29:52 ID:iPH66y54] あるレイヤーに置いたタイルをみんな同じようにアニメーションさせる、って出来ないかな…… RPGの水面みたいな。
237 名前:名前は開発中のものです。 mailto:sage [2008/08/20(水) 19:25:06 ID:Rn6yFU9D] ・別々のレイヤにタイルを置いといてtile_layer_show/hideで切り替える (手動で同じ場所にタイル配置するのが大変なら、 ルーム開始時にコードでコピーする手がある) ・タイルが使っているイメージ自体をbackground_assignで入れ替える (荒技だしパフォーマンス的にもおすすめできない) ・あきらめてスプライト+オブジェクトを(ry ざっと思いつくのはこんなところかな。
238 名前:名前は開発中のものです。 mailto:sage [2008/08/20(水) 19:43:07 ID:iPH66y54] >>237 アニメーションが20枚もあるんで、やはり最後の方法しかないかな……。 ありがとうございました! 色々試してみます
239 名前:名前は開発中のものです。 mailto:sage [2008/08/21(木) 12:45:05 ID:G8dr1p1s] >>233 遅くなりましたがありがとうございます。 こんな便利な物があったのですね
240 名前:名前は開発中のものです。 mailto:sage [2008/08/22(金) 01:37:31 ID:OJ1IYSd5] >>236 変数の計算用のオブジェクト { global.image_num+=1 if global.image_num>20{global.image_num=0} } 水面のオブジェクト { image_index=global.image_num image_speed = 0 } こんな感じで出来そうだけどどうだろう
241 名前:名前は開発中のものです。 mailto:sage [2008/08/22(金) 04:20:26 ID:mbzREpFo] >>240 オブジェクトで描画する分には問題ないので…… わざわざありがとうございます
242 名前:名前は開発中のものです。 mailto:sage [2008/08/22(金) 18:34:03 ID:M3lU0P0b] このソフトで作られたフリーゲームのBGMを取り出したいんだけど 保存したexeを展開したりとかできたりする?
243 名前:名前は開発中のものです。 mailto:sage [2008/08/23(土) 03:36:04 ID:CfFt4xoC] >>242 そんな事は止めて下さい
244 名前:名前は開発中のものです。 mailto:sage [2008/08/23(土) 20:25:33 ID:KXs72kwh] >>242 基本的に、データを抜き出してどうこうっていうのはご法度。
245 名前:名前は開発中のものです。 mailto:sage [2008/08/24(日) 17:57:02 ID:MJZApYif] キャラ毎にライフ設定は出来ないのでしょうか? 各キャラにライフを設定して常に各キャラの下にバーを表示して起きたいのです。
246 名前:名前は開発中のものです。 mailto:sage [2008/08/24(日) 19:27:30 ID:wkT+Zen9] GMver7の日本語化ってまだできないんでしょうか?
247 名前:名前は開発中のものです。 mailto:sage [2008/08/24(日) 21:17:25 ID:T5dkUX6n] >>245 自分で答えを言ってる! オブジェクトごとにライフを設定すれば良いだけよ まずCreateイベントに MAX_HP = 100 hp=random(MAX_HP) //普通は体力満タンで生まれるだろうけど //今回はサンプルということで100以下のランダムな値をいれとく 次にDrawイベントに draw_sprite(sprite_index, image_index, x, y) //手動でスプライトを表示する draw_set_color(c_red) //描画色を赤に設定 draw_rectangle(x,y-10,x+sprite_width,y,false) //スプライトの幅と同じ長さの赤い棒を描く draw_set_color(c_green) //描画色を緑に設定 draw_rectangle(x,y-10,x+sprite_width*life/MAX_LIFE,y,false) //緑の棒を描く。棒の長さは、スプライトの幅×現在HP÷最大HP さらにちょこっと工夫すれば色々な表現ができるよ 棒の長さを一瞬で変えるんじゃなく、アニメーションさせて伸ばしたり縮ませたり、とか 格ゲーみたいに直前に食らったダメージの部分は違う色にする、とか 普段は非表示でHPが増減した時だけ数秒だけ表示する、とか
248 名前:名前は開発中のものです。 mailto:sage [2008/08/24(日) 21:47:18 ID:MJZApYif] >>247 ありがとうございます。 GM6なのでコードとかは良く分からないのですが・・・頑張ってみます
249 名前:名前は開発中のものです。 mailto:sage [2008/08/24(日) 22:35:27 ID:T5dkUX6n] GM6でも7でも5.3でもGMLというスクリプトを使ってゲームを作ることができます もちろんGameMakerはマウスでアクションを選ぶだけでもゲームは作れます (例えば上のレスの内容はVarableアクションやDraw系アクションを使えば同じことができます) なので無理に使う必要はありませんが簡単かつ便利なので少しずつ覚えていくと後々役に立ちます GMLは比較的オーソドックスな言語なので将来他のプログラムで製作する時にも理解の助けになると思います はじめは教材やサンプルが少なくて泣けてくると思うけど頑張れ!
250 名前:248 mailto:sage [2008/08/25(月) 06:32:19 ID:bHYCWqjA] >>249 なんとかHPを表示する事が出来ました。本当にありがとうございます。 二度も申し訳ないのですが敵と当たった時に誰のライフがどらくらい減るか、というのはどうすれば良いのでしょうか?
251 名前:名前は開発中のものです。 mailto:sage [2008/08/26(火) 19:09:24 ID:8PREyaa3] 格闘ゲームみたいなキャラクターセレクト画面を作りたいのですが セレクトしたキャラクターのオブジェクトを戦闘用の別ルームに出現させるにはどうすれば良いでしょうか? キャラクターセレクトのルーム内のオブジェクトをキャラデータ以外消去して セレクトマップにマップを構成するオブジェクトを直接置いて行く・・・という風なのならなんとか出来たのですが それだと物凄く面倒で新しく追加するのがとても大変です。
252 名前:名前は開発中のものです。 mailto:sage [2008/08/26(火) 20:42:28 ID:KqN2Dkl3] >>250 既に解決してましたらスルーしてください 上の方で書いたオブジェクトに防御力と攻撃力を追加し衝突するとダメージを受けるようにしてみます まずCreateイベントに追加(7とか18って数字は適当に変更してOK) bougyo=7 kougeki=18 あとはCollisionイベントにHPの増減を記述します 例1.敵と衝突した時に、自分のHPが18減る hp = hp - 18 例2.敵と衝突した時に、相手の攻撃力の分だけHPが減る hp = hp - other.kougeki 例3.敵と衝突した時に、相手の攻撃力と自分の防御力の差だけHPが減る hp = hp - max(0, (self.bougyo - other.kougeki)) 例4.敵と衝突した時に、相手のHPが30減る other.hp = other.hp - 30 1行だけのコードなら、controlタブにあるVariablesアクションを使っても同じことが出来ます GM付属のサンプル(例えば1945.gm6)でも機能説明ということでcontrolタブのアクションだけで作ってますね
253 名前:名前は開発中のものです。 mailto:sage [2008/08/26(火) 21:06:11 ID:KqN2Dkl3] >>251 単純にグローバル変数を経由して別ルームに情報を渡すというのはどうでしょう 例えば 自キャラの識別番号は「global.plyaerID」という変数に格納 敵キャラは「global.enemyID」という変数に格納しときます もちろんこれらはセレクト用のルームでプレイヤーが自由に変更できるようにしときます 戦闘ルームにはRoomCreatorというオブジェクトだけを配置しておきます RoomCreatorはルーム開始時など任意のタイミングで上記のグローバル変数を参照してキャラクターを生成します // playerIDが1ならガイル、7ならダルシムを生成 if(global.playerID==1){instance_create(0,0,obj_GAIRU)} if(global.playerID==7){instance_create(0,0,obj_DARUSIMU)} その他にも戦闘ルームの背景画像やBGMのセレクト状況なども渡せるようにすれば変更や管理が楽になるかと思います これらはRoomのCreationCodeでも可能かもしれません ただし管理の容易さや再利用性などを考えるとルーム管理オブジェクトを別に作った方が便利そうです
254 名前:名前は開発中のものです。 mailto:sage [2008/08/26(火) 22:53:57 ID:8PREyaa3] >>253 ありがとうございます。 つまりキャラアイコンをセレクトした時、変数に任意のキャラ識別番号を入れて 他ルームで識別番号によって呼び出すオブジェクトを変えるという感じでしょうか? 難しいですが大体分かるような気がします。 変数はルームを越えても大丈夫なんですね
255 名前:名前は開発中のものです。 mailto:sage [2008/08/26(火) 23:05:57 ID:3+A0dz+L] というか、起動してから消すまでずっと使えるメモリとしてグローバルという概念がある
256 名前:251 mailto:sage [2008/08/27(水) 18:07:00 ID:JyCTdSQ7] アイコンをセレクトしたイベントで コード「global.plyaerID=1」と入れたのですが 他ルームで「if(global.playerID==1){instance_create(20,10,OB_1)}」のようにしたのですが ルーム移動した瞬間にエラーが出てしまいます。 また、「global.plyaerID」というのもコードの一種なのでしょうか? 「global.plyaerID2」みたいにしてはいけない物なのですか?
257 名前:251 mailto:sage [2008/08/27(水) 18:13:46 ID:JyCTdSQ7] なんか普通にプレイヤーのスペル間違ってました。ありがとうございました。
258 名前:248 mailto:sage [2008/08/28(木) 23:55:55 ID:Q7MQ5kTN] >>252 遅くなりましたが分かり易い説明ありがとうございました。 これは簡単に色んなパターンが楽しめて良いですね。
259 名前:名前は開発中のものです。 mailto:sage [2008/09/04(木) 22:36:49 ID:4hJjzvVJ] GMphysics使ってる人います? 5のサンプルがうまく動かないんですよね…… 記述をみるかぎりポリゴン作るのがめちゃくちゃ楽そうなんですけど。 PCのスペック不足は自覚しているので、もし4より格段に便利ならPC買い換えようと思ってるんですけど…… どうでしょうか?
260 名前:名前は開発中のものです。 [2008/09/08(月) 07:25:08 ID:VEQWn8iA] なんか、GOTOと同じで グローバル変数を使うのは悪いこと! みたいに教育受けてきた者は グローバル変数にはアレルギーがあるだろう
261 名前:名前は開発中のものです。 mailto:sage [2008/09/11(木) 19:18:27 ID:px4WAX7A] 標準のセーブ機能って、scriptいじってからロードすると読み込めなくなったりするけど、 RPG等のセーブにも耐えられるものなのだろうか……
262 名前:名前は開発中のものです。 mailto:sage [2008/09/12(金) 14:57:50 ID:WTW/QyVX] ファイナルファイトのような横スクロールアクションを作るのは難しいですか? 素材などの作成時間は除いたとして
263 名前:名前は開発中のものです。 mailto:sage [2008/09/12(金) 16:36:54 ID:Es/bcu2J] >>262 素材の制作を考慮しないのなら、基礎を組むのにはあまり時間かからないと思う。 でも、攻撃のあたり判定や、敵の吹っ飛び方、攻撃の連携など難しい所もいくつか。
264 名前:名前は開発中のものです。 [2008/09/13(土) 21:33:52 ID:pOLwDEz8] STGで自機の周りを回るオプションを作ろうと思い 回るところまでは出来たのですが オプションが2つの時は180度あけて、3つの時は120、4つの時は90度 とゆうように自機の周りのオプションの間隔を均等にするには どうしたらいいのでしょうか?
265 名前:名前は開発中のものです。 mailto:sage [2008/09/13(土) 22:17:09 ID:y3l90inF] 増える度にオブジェクトを変えるとか
266 名前:名前は開発中のものです。 mailto:sage [2008/09/14(日) 00:18:40 ID:gN9mQ7cX] N個目のオプションの角度=N*360/(オプションの個数) ここからがんばれ
267 名前:名前は開発中のものです。 [2008/09/14(日) 11:14:40 ID:A6sMZm51] 有難うございます。↑の方法についてなのですが オプションを4つ作りたい場合は 4種類のオブジェクトを作る必要があるんですか? それとも1種類のオブジェクトを4つ作るだけでできますか?
268 名前:名前は開発中のものです。 mailto:sage [2008/09/14(日) 12:29:14 ID:gN9mQ7cX] 普通はオブジェクト1つ。敵が100機出るからってオブジェクト100個作らんでしょ? 各オプションに自分が何番目のオプションか教えてやる方法もあるけど、 このケースだと配列使って自機に全部管理させた方が楽。 今どうやっているのかわからんからあくまでも一例だけど /* Createイベント */ count = 0; // 今あるオプションの数 angle = 0; // 回転の管理用 /* どこかのイベント(オプション1個増やす) */ option[count] = instance_create(x, y, obj_option); count += 1; /* Stepイベント(オプション回す) */ angle += 1; // 適当に for (i = 0; i < count; i += 1) { option[i].x = x + lengthdir_x(100, angle + i / 360 * count); option[i].y = y + lengthdir_y(100, angle + i / 360 * count); }
269 名前:名前は開発中のものです。 mailto:sage [2008/09/14(日) 13:21:59 ID:y4Lx9aKy] あまりメリットは無いけどあえてオプション自身にやらせると・・・ 1.生成時にinstance_numberで自分が何個目かを記録 2.ついでに現在オプションが何個あるかを把握する 3.上で把握した数を全てのオプションに教えてやる 4.現在のオプション数、自分が何個目か、この2つの情報から位置を修正する 修正のタイミングや必要になる情報は同じだけど 3と4の「全てのオプション」を制御する部分が268氏の方法より面倒 ・コード記述欄の右上チェックボックスでObjectを選んで全てのオプションインスタンスに通知する方法 ・オプションが増減するタイミングでユーザ定義イベントを発行して全ての(ry ・ヘルプに載ってる方法、つまりinstance_id配列を使って全ての(ry 自機側は全く管理しなくて良い代わりにオプション側が同じかそれ以上に面倒そう しかもどの方法もオプション自身のアクションとして記述するとややこしくなる と、色々考えてみたけどやはり268氏のやり方が管理しやすいです
270 名前:267 mailto:sage [2008/09/14(日) 16:35:01 ID:A6sMZm51] やってみたところ オプションの間隔が均等にならずにオプション同士が くっついてしまいます。均等にするにはどうしたらよいのでしょうか? www1.axfc.net/uploader/File/so/11043.ttf ↑実際のファイルをUPしました。
271 名前:名前は開発中のものです。 mailto:sage [2008/09/14(日) 18:31:03 ID:gN9mQ7cX] 掛け算と割り算微妙に間違えてたわ。>266の式が正解。
272 名前:267 mailto:sage [2008/09/14(日) 23:14:48 ID:A6sMZm51] 有難うございました。 おかげさまで成功しました。
273 名前:名前は開発中のものです。 [2008/09/15(月) 09:18:36 ID:+qgjZ47x] フォントを見てみるとほとんどの英語フォントがArialと同じフォントになっているのですが これはどういうことでしょうか??
274 名前:名前は開発中のものです。 mailto:sage [2008/09/15(月) 10:20:24 ID:jDWWXeXP] >>273 ゲームに使われてるフォントのことなら GM6以降ならレジストしてユーザ製拡張機能を導入しないと日本語表示はできませんぜ コードエディターに使うフォントということなら なぜか一部のフォントが使えずにGMデフォルトのArialが選択される 例えばLucidaSansUnicodeは反映されるけど、LucidaConsoleは反映されない これはレジストしても変わらん
275 名前:273 [2008/09/15(月) 10:34:38 ID:+qgjZ47x] gm7proで普通にフォント作ろうと例えばfont1を追加して フォントの選択画面でいろいろ試してみてもほとんどの英語フォント はarialとまったく同じフォントになってしまいます (wordやexcelではちゃんと使えるフォント)
276 名前:名前は開発中のものです。 mailto:sage [2008/09/15(月) 11:41:06 ID:jDWWXeXP] >>275 すまん伝わらなかったかな レジストするだけじゃ表示できないよ 日本語表示DLLの詳しい導入方法や使い方はwikiを読んでみて
277 名前:名前は開発中のものです。 mailto:sage [2008/09/15(月) 12:05:43 ID:H1a8iGGW] 日本語フォント表示したいわけじゃなくて、たとえばComic Sans MSとか選んでも フォントに反映されない(Arialの字体のまま)ってことじゃないの? 上で言ってる「LucidaConsoleは反映されない」というのが フォントの選択でも起こっていると。 この件で文句言ってる人あまり見ないから、環境によるのかもしれないけど。 たぶんフォント指定する際にCharsetがSHIFTJISあたりになってるから 日本語文字の含まれるフォントしか反映されないと思われる。 GM側の問題だからバグ報告あげて直してもらうか、 自分でスプライト化して表示するしかないんじゃないかな。 上で紹介されてる日本語表示DLLでもできると思うけど。
278 名前:名前は開発中のものです。 [2008/09/15(月) 12:10:54 ID:+qgjZ47x] スイマセン 説明下手でした 自分が描画したいのは日本語ではなく英語です 日本語はすでに非公式サイトからスクリプトを導入しています 例えば自分がDLしたStarcraftフォントをインストールしました。 それはexcelなどではちゃんと使えるのにいざGMで使おうと思うと Starcraftフォント表示されるのになぜか中身がArialと同じになってしまうのです。
279 名前:名前は開発中のものです。 [2008/09/15(月) 12:12:32 ID:+qgjZ47x] 277さん すみません その通りです
280 名前:名前は開発中のものです。 mailto:sage [2008/09/15(月) 12:25:34 ID:P1NOywnZ] オブジェクトが画面上半分に入ると行動が変わるようにしたいのですが、 オブジェクトが指定した範囲内にあるかどうか判断するにはどうしたらいいですか?
281 名前:名前は開発中のものです。 mailto:sage [2008/09/15(月) 12:50:01 ID:jDWWXeXP] >>278 やっと意味が分かった 見当違いのレスすまんです GM7になっても直ってないということは日本語環境に特有のバグかもしれないね >>280 if(y < room_height/2) { // ルームの上半分にいる時の処理 } より厳密に判定したいなら↓このあたりを参考に sprite_height スプライトの縦幅 room_height ルーム全体の縦幅 view_height ビュー全体の縦幅
282 名前:名前は開発中のものです。 mailto:sage [2008/09/15(月) 14:15:05 ID:Z9WHzemZ] 277氏の話で気づきましたが、 フォントの問題は、フォントリンク機能(windows2000以降に搭載?)を使って 欧文のみのフォントに日本語のフォントを含めることによって解決できました。 Windows システム内部のレジストリをいじることになるので、 必ずレジストリのバックアップをとってください。バックアップから自力で元の環境に戻せる力量のある方のみ推奨です。 また、フォントリンク機能についてよく調べてから行ってください。 (自分も調べたてでよく分かっていません、よって、もっとよい方法があるかもしれません) starcraftフォントを例にとって、やり方を説明します。 (自分の環境はWindowsXP SP2です。 GMは7.0で確認しました) 1. starcraft フォントをインストールする。 2. レジストリエディタ(regedit.exe)を起動して、 [\\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink] に、複数行文字列値を新規作成し、以下のように入力する。 値の名前: Starcraft 値のデータ: Starcraft Normal.ttf,Starcraft normal MSGOTHIC.TTC,MS UI Gothic 3. Windowsを再起動させる。 すると、GM で font リソースの追加 で Starcraft を選択すると、 プレビューの時点で反映されるのが確認できるかと思います。 テキスト表示させるオブジェクトを配置してゲームを実行させても反映されました。 また、ゲームをexeで吐き出せばフォントリンクさせていない環境でも反映されるので、 exeで配布する分には問題ないと思います。
283 名前:名前は開発中のものです。 mailto:sage [2008/09/15(月) 15:26:51 ID:tvN7d6yW] >>282 それは自分の環境以外でも正常に動作するのでしょうか。 (他人のレジストリを弄らせるわけにはいかない)>>534
284 名前:282 mailto:sage [2008/09/15(月) 16:44:01 ID:E4MKDW7W] まず、製作側の環境は当然、変更しなければなりません。 そして、ゲームをソースの状態で配布する場合、 相手側もレジストリを変更しなければ反映されません。 ですが、実行形式で配布する場合は、実行ファイル自体にフォントが埋め込まれるため、 環境を変える必要はありません。 自分の環境で、フォントリンクさせた環境で作った実行ファイルを フォントリンクを解除した環境で実行しても、フォントが正常表示されたので、 自分の中では、そう結論付けてます。
285 名前:名前は開発中のものです。 [2008/09/16(火) 14:10:35 ID:JDKv6UBR] 練習で横スクロールアクションを作っているのですが、スプライト変更で苦戦しています。 内容は…… ・GM7使用 ・出来るアクションは棒人間が左右に移動、Zでジャンプ ・棒人間は停止、移動、ジャンプ上昇、ジャンプ下降のアニメが左右ある ・下に地面がある時に、左右キーを押すと左右歩きアニメ ・下に地面がある時に、左右キーを離すと左右停止アニメ ・vspeed-10(ジャンプの初速)で上昇、vspeed0.5(落下の初速)で下降アニメ このまま試したら、ジャンプから着地したときに下降アニメのままだったので 地面に触れたら停止アニメに変わるよう設定をしました。 完成した!と思ったら、今度は左右押したまま着地(着地後そのまま横移動)をしたら、 停止アニメのまま移動する問題が発生… ならば、着地時に左右キーを押しているか押してないかで分岐させればいいのでは?と考え if an expression keyboard_check(ord'right')is true ↑これを地面との衝突イベントに左右分組んでみたのですが うまく作動しませんでした…。 何か良い解決策はないでしょうか? すごく初歩的なことかもしれませんがアドバイスをお願いします。
286 名前:名前は開発中のものです。 mailto:sage [2008/09/16(火) 18:38:05 ID:2x1IGPqI] >>285 アクションゲームでは定番の話題だけど方法が色々あるから具体的に答えにくいな 「こうしたら解決」というアドバイスは難しい話題だけど勘で答えてみる 意外と気づきにくいのは衝突イベントの発生タイミング ×ぶつかった瞬間に1回だけ発生する ○触れてる間は常に(毎フレーム)発生する つまり地面に立ってる時は常に衝突イベントが発生してる 例えば、 衝突イベントに停止アニメを強制するアクションを書いてしまうと 左右への歩行アニメは発生しない (地面に立ってる=常に衝突イベント発生=常に停止アニメ) 解決策は色々あるけど一例を 地上にいる/空中にいる、などキャラクターの状態を変数で表しておく 1.「空中」から着地したら停止アニメ発動&状態を「地上」にする 2.ジャンプしたら「地上」から「空中」に入れ替える 3.「地上」にいる状態で地面と衝突しても停止アニメは発動しない 何かの参考になれば幸い
287 名前:名前は開発中のものです。 [2008/09/16(火) 18:59:33 ID:wc/bCpqZ] >>285 衝突イベント使わずにステップイベント使ったら?? もしy+1に床オブジェクトがあったらvspeedを0にして もしvspeedが0だったら停止アニメするとか…
288 名前:285 mailto:sage [2008/09/16(火) 20:41:11 ID:JDKv6UBR] 丁寧なご回答ありがとうございます! >>287 様 早速ステップイベントで試してみたところ、ステップごとに常に 足下をチェックするため、地上にいるときは停止アニメのみに なってしまいました。 >>286 様 ステップイベントで足下をチェックして、地面がある時は重力が0になるようにしています。 たぶん、これで衝突イベントの連続発生は回避できていると思います。 地上→垂直ジャンプまたは、ジャンプ後左右キーを離す→着地 この場合は地上で停止アニメになります。 その後左右キーを押せば問題なく移動アニメになります。 地上→ジャンプ→左右キーを押したまま着地して移動 この場合は、着地後に停止アニメのまま左右に移動します。 一度左右キーを離し、再度押すと移動アニメに変化します。 地面衝突よりも左右キーを押した時に移動アニメに変化するのが問題…? う〜〜ん…変数を使ってもう少し試行錯誤してみます。
289 名前:267 mailto:sage [2008/09/17(水) 01:00:40 ID:fciLO00k] 配列を利用してオブジェクトの動きを制御しているのですが 複数あるオブジェクトの中で1つだけを消すことって出来ますか? option[count] = instance_create(x, y, obj_option); count += 1; の逆でcountを1減らして countが最後のやつを消そうと思ったのですが 他のオブジェクトから他のオブジェクトをCreateできても 廃棄はできないのですか? ヘルプを見てもそれらしきものは見つかりませんでした。
290 名前:名前は開発中のものです。 mailto:sage [2008/09/17(水) 01:28:48 ID:+iHp1HAA] >>289 インスタンスを消すための関数はinstance_destroy()。 ただこいつは「自分自身を消す」関数なので、GMではちょっとトリッキーですが with文を使って「消したいインスタンスに関数を実行させる」必要があります。 with (option[番号]) { instance_destroy(); }
291 名前:267 mailto:sage [2008/09/17(水) 06:27:15 ID:fciLO00k] 有難うございます。 早速やってみます。
292 名前:名前は開発中のものです。 [2008/09/17(水) 16:50:11 ID:3ZsvlK2w] dlしたサンプルなどで演算子<>(例えば if turn <> 0)を見つけたのですが これはどういう意味でしょうか??
293 名前:267 mailto:sage [2008/09/17(水) 18:36:14 ID:fciLO00k] やってみたところ(Unknown variable option)とゆうエラーが出てしまい 色々と設定を変えながらやってみたのですが 自分ではどうしてもエラーを無くす方法がわかりませんでした www1.axfc.net/uploader/File/so/11187.ttf 現物をupしました。どなたか教えていただけませんか?
294 名前:名前は開発中のものです。 mailto:sage [2008/09/17(水) 18:47:37 ID:+iHp1HAA] >>292 それは != と同じで「等しくない」という演算子。 ちなみにGMのマニュアルに載っているのはC風の文法ですが、 歴史的な経緯からPascalライクの文法も一部受け付けるようになっています。 <> は != のPascal版。似たようなマニュアルに載っていないお仲間には and(&&), or(||), not(!), then なんてのがあります。 >>293 できればエラーメッセージは正確に書いてほしいな。 「array index out of bounds」(配列のインデックスが範囲外) ってのがこの場合の問題。 たとえばオプションの数が3つ(count=3)の時、配列の要素は option[0], option[1], option[2] の3つ。したがって最後のオプションは option[count] ではなくて option[count - 1] です。
295 名前:267 mailto:sage [2008/09/17(水) 20:35:59 ID:fciLO00k] 有難うございます。 そしてすいませんorのあとを書き忘れてました。
296 名前:292 [2008/09/17(水) 21:25:35 ID:3ZsvlK2w] >>294 ありがとうございます そんな演算子があったなんて驚きです
297 名前:名前は開発中のものです。 mailto:sage [2008/09/25(木) 18:58:23 ID:ePV3MaT7] みんなどんなジャンルのゲーム作ってるんだろう……
298 名前:名前は開発中のものです。 mailto:sage [2008/09/25(木) 19:20:38 ID:g090BAj9] 試しにマリオ風アクションを作ってて色々壁にあたり、 もっとシンプルなものから……と思ってゼルダ風に挑戦中 何か1つ完成させたいな〜…
299 名前:名前は開発中のものです。 mailto:sage [2008/09/25(木) 20:51:49 ID:dGYbhKuz] GMの魅力は日本的ジャンル区分とは少しズレたものが作りやすいことじゃないかな 下らないアイデアでも作ってみようかって気になれる FLASHゲーのようなシンプルで即効性があって馬鹿っぽいものが作りやすい(モチベ的な意味で) 今作ってるのはダウンタウン熱血行進曲のパクリ 全24人(CPU操作)を同時に出して殴り合いのカオスを眺めてるだけのゲーム?らしきもの 某FPSのBOT戦を眺めてるときに思いついた 無理矢理どこかのジャンルに分類すればライフゲームの一種になるんだろうか ゲームの目的と遺伝的アルゴリズム的な何かを加えたら少しはゲームになるかもしれない しかしゲームにしようと思うと自ずと既存の何かに似てくるから困る
300 名前:名前は開発中のものです。 mailto:sage [2008/09/25(木) 23:26:48 ID:q3MsUpLj] やっぱ配布する時とかにGameMakerの表示出ると格好悪いよな 課金版欲しいなぁ
301 名前:名前は開発中のものです。 mailto:sage [2008/09/26(金) 03:12:23 ID:sE3W1GIE] とりあえず、Cふう演算子以外は やらなくていいと思うよ いずれGameMakerを離れて自作するときに面倒になる
302 名前:名前は開発中のものです。 mailto:sage [2008/09/28(日) 18:10:00 ID:LS/ACw4R] 昔このスレだったかで見たんだけど view機能によって表示されている画面の左上の座標を返す関数があったとおもうんだけど 誰か覚えてない? HPゲージの表示場所に使うんだ
303 名前:名前は開発中のものです。 mailto:sage [2008/09/28(日) 20:13:19 ID:uhIOXa5a] ヘルプでviewひけばすぐ出てくる 5と6以降で名前が違うから気をつけるんだ
304 名前:名前は開発中のものです。 mailto:sage [2008/09/28(日) 21:17:06 ID:LS/ACw4R] >>303 ありがとう。すごく助かった
305 名前:名前は開発中のものです。 mailto:sage [2008/09/29(月) 18:56:28 ID:UJys+BvP] GM6で梯子を作りたいのですが良い案はありませんでしょうか? 接触中は↑キーでy方向に-32移動出来る様にして、接触中のジャンプも可能にしたいです。 操作キャラのジャンプ条件はy方向1にソリッドオブジェクトがある時ですが、 この条件に当てはめなくてもソリッドオブジェクト上にいる時と同じ様にジャンプ出来れば良いです。 よろしくお願いします。
306 名前:名前は開発中のものです。 mailto:sage [2008/09/29(月) 21:40:35 ID:TA0YzXK0] ジャンプ時の条件に「梯子と接触している」を付け加えればいいのでは? D&D使ってるなら「If thre is an object」アクション、GMLならplace_meetingでチェックできる。
307 名前:名前は開発中のものです。 mailto:sage [2008/09/29(月) 23:26:55 ID:UJys+BvP] >>306 ありがとうございます。 こんな便利なアクションがあったのですね。 お陰で触れてる間に↑キーで梯子を上る事も出来ました。 ですが上った後に静止する方法が分かりません。キャラに重力を設定してあるので落ちていってしまいます。 重力を設定したキャラを空中で静止させるにはどうすれば良いのでしょうか? 何度も質問すみません。よろしくお願いします。
308 名前:名前は開発中のものです。 mailto:sage [2008/09/30(火) 00:47:31 ID:YIigZYPb] >>307 チュートリアルを参考にして作ってるならおそらく Stepイベントの中に「足下がfreeでなければ重力を0にする」 という処理があるはずなので、そこにも下に梯子があるという 条件を追加すればいいかな。
309 名前:名前は開発中のものです。 mailto:sage [2008/09/30(火) 10:28:05 ID:gaxEls3H] >>308 ありがとうございます。 その通りにやったのですが問題がありまして・・・。 歩いて接触し、↑キーで上れば空中で静止する事が可能になったのですが ジャンプしながら接触したり、落ちながら接触すると止まりません。 www1.axfc.net/uploader/He/so/143051.zip&key=gm6 こんな感じです。何処か間違ってましたでしょうか?
310 名前:名前は開発中のものです。 mailto:sage [2008/10/01(水) 21:47:12 ID:Fc7yZooq] 重力を0にしてもスピードはそのままなので、vspeedも0にする必要がある。 触れたら止まるって仕様だと、接触中でもジャンプできるって仕様と 食い合わせが悪い気がするけどな。
311 名前:名前は開発中のものです。 mailto:sage [2008/10/01(水) 23:12:59 ID:1MeHwIPf] >>310 ありがとうございます。 見事に梯子っぽくなりました。が、やはりジャンプは出来ないようです。
312 名前:名前は開発中のものです。 mailto:sage [2008/10/01(水) 23:35:57 ID:dOI1qd/B] >>311 梯子を昇っているかの処理を初めの方にやって、フラグで処理するようにやりなおしてみたら? 毎step時に梯子に接触してるか? 触れている 梯子フラグA = 1(ON) → 触れていない 梯子フラグA = 1(ON) 梯子の所で上キーを押した → 梯子フラグB=1(ON) 梯子フラグON時 → 重力・vspeed 0 にし、上下ボタンは上下移動(vspeed 10とか)に設定
313 名前:名前は開発中のものです。 mailto:sage [2008/10/01(水) 23:39:24 ID:dOI1qd/B] ぎゃー間違って送ったorz 毎step時に梯子に接触してるか? 触れている → 梯子フラグA = 1(ON) 触れていない → 梯子フラグA = 0(off)、重力(vspeed=元値)ON ・・・伝わったらいいなこの説明。
314 名前:名前は開発中のものです。 mailto:sage [2008/10/02(木) 17:09:40 ID:JaYkkapt] >>312 ,313 ありがとうございます。 フラグを使って色々やってみたのですがジャンプは出来ても空中で静止出来なかったり 空中で静止出来てもジャンプは出来なかったりとどうも完璧にはなりませんでした。 まだ色々試してみますが、もしよろしければ>>309 のサンプルに付け加えて頂ければ幸いです。
315 名前:名前は開発中のものです。 mailto:sage [2008/10/03(金) 14:39:18 ID:ZrsFoNA5] 皆さんBGMってどうしてます?
316 名前:名前は開発中のものです。 mailto:sage [2008/10/03(金) 16:46:41 ID:uDeRDVYO] FamiTrackerっていうファミコン音源ツールで適当に
317 名前:名前は開発中のものです。 mailto:sage [2008/10/05(日) 04:52:05 ID:H1cq3pc2] ごめんなさい。質問の言葉が足りなさ過ぎました。 BGMをつけるとき、楽曲を自分で用意するとしても、何処からか借りてくるとしても、 そのファイル形式について知りたいのです。midiとかmp3とか。 できれば、そのBGMをどう再生しているのかも知りたいです。 midiなら最初から入ってるsound_playで再生できるけど、oggならbGMスクリプトとか使ったり。
318 名前:名前は開発中のものです。 mailto:sage [2008/10/05(日) 13:06:42 ID:Fn418VgV] midiはGSしか搭載されてない事多いから自分はもっぱらbGMスクリプトでoggだね。
319 名前:名前は開発中のものです。 mailto:sage [2008/10/05(日) 20:02:29 ID:4niTijZC] 私はMP3ファイルを、再生する前にリソース置換してるな……
320 名前:名前は開発中のものです。 mailto:sage [2008/10/08(水) 15:16:57 ID:RDU/YXQB] >>318-319 ありがとうございました。 参考にさせていただきます。
321 名前:名前は開発中のものです。 mailto:sage [2008/10/11(土) 18:30:28 ID:J25bobba] 画面全体を真っ暗にするにはどうすれば良いでしょうか?
322 名前:名前は開発中のものです。 mailto:sage [2008/10/11(土) 22:42:26 ID:VYtC5Q29] >>321 それは画面を完全黒で塗りつぶすということ? それとも、半透明の黒(変な表現だな)で暗闇を作りたいってこと? どっちにしろ、レイヤーを変更して一番前に表示するようにしてみたら?
323 名前:名前は開発中のものです。 mailto:sage [2008/10/12(日) 19:20:19 ID:0LPSWnKh] >>322 画面を完全に黒で塗りつぶしたいのです
324 名前:名前は開発中のものです。 [2008/10/12(日) 20:59:20 ID:WCmVlsh4] draw_rectangleアクションで高さと幅をroomと同じにして色を黒にするといいんじゃない?
325 名前:名前は開発中のものです。 mailto:sage [2008/10/12(日) 23:04:23 ID:0LPSWnKh] >>324 なるほど、ありがとうございます。盲点でした・・・。