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/
170 名前:名前は開発中のものです。 mailto:sage [2008/07/03(木) 23:20:15 ID:PDxRGKbt] 言うだけなのもなんなので大雑把な案 UserDefined0イベント:1ターンの行動をした時に発生するイベントとして定義 Alerm0:1ターン分の行動を見せるためのタイマー(再帰はしない) objEnemy:全ての敵オブジェクトの親 objZako1〜n:それぞれのユーザ定義イベント(UserDefined0)にターンごとのアルゴリズムを記述 だいたいの流れは プレイヤー行動決定→全敵にUserDefined0発生→全敵が行動を決定→それぞれの行動を描画(ビュー外なら結果だけ) →行動の結果を反映→最初に戻る 主人公オブジェクトが1ターン分の行動を決定するたびに以下のコードも実行 with(objEnemy){event_user(0);} この時点で敵も味方も動いてないけど全ユニットの行動は決まってるので ビュー内なら移動や行動アニメーションも見せる(Alerm0をONにしてゴニョゴニョ何かする) UserDefined0で決定したアクションに従って移動や行動のアニメーション描画 ビュー外なら結果だけ反映(座標に直接ジャンプしたりパラメータだけ変更したり) 厳密にやるならビュー内に侵入してくるタイミングだけ多少デリケートにコーディングしないとダメ でも面倒だからビュー外であろうが境界線の近くなら上記処理に振り分けてしまったほうが楽かも
171 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 07:50:41 ID:Er6IyJrw] 軌道を描写してそれに沿ってオブジェクトを動かしたいのですがパスの使い方が今一つ理解できません。 パスの使い方を教えていただけないでしょうか。5.3です
172 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 10:31:24 ID:Rye0/4Uv] >>171 まず「File」→[Advanced Mode」にチェックする。 「Add」→「Add Path」メニューがでるので前もってパスを作成しておく パスに沿って動かしたいオブジェクトで自分が思っているタイミングのイベントに (最初からパスで動かしたいのならクリエイトイベントにいれる・・・など) MOVE2タブの[set a path for the instance]アクションで作ったパスを指定してあげる。パラメーターは path:オブジェクトに割り当てたいパスの名前 speed:1ステップで動くピクセル数 at end:パスの終点についたらどうするかを指定stopはその位置停止continue from startはスタートした座標に戻ってパス動作を続ける continue from hereは今の座標を始点として同じパスでパス動作を続けるreverseはパスをさかのぼる relative:パスを絶対位置か相対位置かを指定 relativeで相対位置(アクションが動作した時の座標を始点にする) absoluteは絶対位置(パスエディットで書いたとおりの座標) てな感じ。 もち途中でパスを変更するとかも可能。GMLで書くならpath_start()関数をどぞ
173 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 13:12:20 ID:0oCVVzY6] シューティングのテスト版みたいなの作ったんだけど、ここで晒してもいいですかね? ソースはないけど……
174 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 15:07:42 ID:w93aKpMp] >>172 遅れましたがありがとうございます。
175 名前:名前は開発中のものです。 mailto:sage [2008/07/11(金) 15:45:47 ID:3T+5hIa7] 行き詰ってるので質問させてください。 オブジェクト自体が光っているような表現をしたいのですが イマイチやりかたが分かりません。 AfeterEffectとかでいうグローみたいな表現がしたいです。 環境はGM7でレジストしてあります。
176 名前:名前は開発中のものです。 mailto:sage [2008/07/12(土) 14:05:25 ID:03hji2U+] PCの再インストールしてGamemaker入れなおしたら 既に使われているライセンスってはじかれてしまった… どうすれば・・・orz
177 名前:名前は開発中のものです。 mailto:sage [2008/07/12(土) 16:10:08 ID:u3M0JlwI] 私も以前、そのような状態になりましたが、 ライセンスを管理してるところ(softwrap)に問い合わせたら、無事に認証できるようになりました。 support@softwrap.com宛てに、 つたない英語でしたがこんな文面でも大丈夫でしたw ---- Dear, softwrap staff I am Japanese Game Maker7.0 Pro user. I upgraded GM7 Pro version by upgrade license key form resisted GM6 lisence key , and after a time the software reverted to Lite mode, because ,a few days ago, WindowsXP was re-installed in my PC. My license key of GM7 Pro is invalid in online activation. Please reissue it... Information: First name : xxxx Family name : xxxx E-Mail address: xxxx@xxxx.xxx.jp My license key: License Holder xxxxxxxxxxx Purchase Ref xxxxxxxxxxxxxxxxxxxxxxxxx ----- windows 再インストールもですが、GameMaker 7.0 のアンインストール後、 再インストールしてもその状態になるから注意です。
178 名前:名前は開発中のものです。 mailto:sage [2008/07/12(土) 16:20:43 ID:u3M0JlwI] あ、私はGM6からのアップグレード組みで、 上の文中にもそういうことが書いてありますので、 GM7を購入されたのなら適当にアレンジしてくださいです・・・
179 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 00:02:23 ID:Oo/SM1Ep] 2Dの狙撃ゲームを作っているのですがスコープをのぞいた時の画面処理に困っております。 背景を縮小した画像にし、スコープのアイコンが重なった場所だけ元のサイズに戻す、というのはどうすれば良いでしょう? そもそも画像を縮小表示出来るのでしょうか?質問ばかりで申し訳ありませんがよろしくお願いします。
180 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 21:29:15 ID:/JbdlJ3v] ビューを二つ重ねる、画面からスプライト作って縮小表示する、サーフェイス使うなど 四角い領域でよければ色々と手はあるが、丸くしたいとかだったらサーフェイス一択だな。 > そもそも画像を縮小表示出来るのでしょうか? とりあえずはバージョンによる。
181 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 19:31:51 ID:WqsSplQ2] >>180 申し訳ありません、バージョンは6です。 出来れば丸くしたいのですが、難しそうですし四角でも構いません。 背景と同時にその背景にいる敵オブジェクトも縮小、拡大したいのです。
182 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 21:13:39 ID:Qaaz25IZ] ではお手軽なところでビューを使う方法。 ・View 0 ビューの大きさ(View in roomのWとH)を画面の表示領域より大きくする。 ビューポート(Port on screen)は画面と同じ大きさ。 これで全体が縮小表示される。 ・View 1 ビューポートの大きさを画面より小さくする。 ビューはビューポートと同じ大きさ。 これで画面の一部が元のサイズで表示された状態になる。 あとはビューの位置(view_xview[1], view_yview[1])と ビューポートの位置(view_xport[1], view_yport[1])を スコープに合わせて動かしてやればいい。
183 名前:名前は開発中のものです。 mailto:sage [2008/07/23(水) 14:55:27 ID:JbMdXvhr] Unexpected error occured when running the game. 以前からこのエラーに悩んでます。 使用しているのはGamemaker6.1Aです。 毎回製作を進めるとこのエラーが起きる人がちらほら出てきます。 自分の環境では起こったことが無く、また自分よりもスペックの高い人でも このエラーが起こることもあるようで、原因が特定できずに困っています。
184 名前:名前は開発中のものです。 mailto:sage [2008/07/23(水) 18:57:15 ID:7Xl6aY+A] >>183 原因不明だからこそUnexpected errorなわけだけれども 経験的に言うと、でかいグラフィックスがあるとかでメモリ不足になっているか Createイベントなどゲーム開始前のところにエラーがあるかのどっちか。 環境によって出たり出なかったりということだと前者の可能性が高い。 もしそうだったら極力Preload外すとか、外部リソース使うようにしてみたらどうかな。
185 名前:名前は開発中のものです。 mailto:sage [2008/07/23(水) 19:03:17 ID:JbMdXvhr] 外部にデータを置いてreplaceさせた方がいいかなぁ。 うーん、でもpreloadは全部外してあるし、 自分のPCのメモリは1.5Gなんですが、 2G超のPCでもエラーが起きているケースもある模様・・・悩。
186 名前:名前は開発中のものです。 mailto:sage [2008/07/23(水) 23:25:06 ID:6M8uaVJP] ・インスタンスの生成が無限ループになってる ・変数の値の計算が異様に大きい数値になったりしている ・インスタンスを生成時、同時に破棄の命令もしている ・生成時に衝突イベントでごにょごにょ とかの時でも原因不明のエラーがよく出るね。 シューティングでホーミングのショットを撃っている時にもなった。
187 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 18:51:42 ID:3aZInE48] 質問なんですが、衝突した相手を今の速度のまま移動させるっていうのはそうすればいいんでしょうか? ドキュメント見る分にはselfにチェック入れればいいみたいなんですが、より良い速度で自分がかっ飛んでいってしまうのです・・・。 ttp://www1.axfc.net/uploader/He/so/123585.zipにアップしてみましたが、画像が選り抜きの流用なので、なので、違反なら削除します。 どうしたものでしょうか・・・
188 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 19:48:55 ID:3aZInE48] ごめんなさい、とんでもない日本語ですね。 要はパンチした相手を吹き飛ばしたいのです。 ttp://www1.axfc.net/uploader/He/so/123606.zip エラーがあったので修正しました。一応説明するとボタン3で腕生成、ボタン1押しっぱなしでチャージした速度で腕が斜めに飛んでいきます。 パスはyoyoです。
189 名前:名前は開発中のものです。 mailto:sage [2008/07/27(日) 12:30:50 ID:jZNgq52V] Collisionイベントの中では衝突した相手はotherで表される。 相手を吹き飛ばすには、自分のスピードを相手に与えてやればいい。 自分側のCollisionイベントでやるなら other.hspeed = hspeed; other.vspeed = vspeed; 相手側のCollisionイベントでやる場合は立場が入れ替わる(自分がotherになる)から hspeed = other.hspeed; vspeed = other.vspeed; のようになる。
190 名前:名前は開発中のものです。 [2008/07/28(月) 00:21:09 ID:qT4QHlYG] LINUX版ねえの??
191 名前:名前は開発中のものです。 mailto:sage [2008/07/28(月) 20:06:10 ID:Q9pdWDQ9] >>189 おおーっ!!ありがとうございます!! オブジェクト別に設定しなければならないのですね。 stepイベントでcheck コリジョンを使ってやってみたら反応なしでした・・・。
192 名前:名前は開発中のものです。 mailto:sage [2008/07/28(月) 20:21:36 ID:OrZq3/Gb] >>189 じゃないけど、これはオブジェクト別というかどちらか片方だな。 要は、「殴った相手を吹っ飛ばす」とするか「殴られたら自分が吹っ飛ぶ」とするか。 どちらも同じ結果が出る。つまり片方で十分。別に両方やってもいいけど、片方が無駄になるよね。
193 名前:名前は開発中のものです。 mailto:sage [2008/07/28(月) 20:23:53 ID:OrZq3/Gb] 何という絶望ID
194 名前:名前は開発中のものです。 [2008/07/28(月) 21:54:47 ID:uk2OCtlG] 質問があります。 GamaMakerで外部のファイルを読み込むにはどうしたらいいのでしょうか? GameMakerのver7です。日本語版のver6のヘルプを見て、<file_text_open_read(fname)> を色々いじってみたのですが、できませんでした。 またBulletML4GM.DLLというプラグインを使ったことのある方がいましたら、 BML_LoadBMLFileで行うBulletMLファイルを読み込むという方法を教えてください。
195 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 00:13:59 ID:eckrADRs] >>182 遅くなりましたがありがとうございます。 View0とView1の設定は出来ました。 ですが(view_xview[1], view_yview[1])と(view_xport[1], view_yport[1])というのをどうすれば良いのか分からないのです。 スコープのオブジェクトに関する何かの座標に入れるのでしょうか? 申し訳ありませんが何方か教えては頂けませんでしょうか
196 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 00:58:45 ID:t+mxlfep] >>195 とりあえずスコープの座標と同じにして動かしてみて そうすれば何となく仕組みがわかるから適当に+αして調整する。 基本的にxviewとxport、yviewとyportはそれぞれ同じ値にしとけばいい。 >>194 file_text_open_readが返すIDをちゃんと使ってる? 一般的にはこんな感じのコードになる。 file_id = file_text_open_read(...) while (!file_text_eof(file_id)) { text = file_text_read_string(file_id); file_text_readln(file_id); } file_text_close(file_id);
197 名前:195 mailto:sage [2008/07/31(木) 01:25:05 ID:eckrADRs] >>196 レスありがとうございます。 もしかして(view_xview[1], view_yview[1])という入力欄があるのでしょうか?;
198 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 01:48:43 ID:t+mxlfep] いや、コードで。 view_xview[1] = x; view_yview[1] = y;
199 名前:195 mailto:sage [2008/07/31(木) 02:14:47 ID:eckrADRs] 何度も何度もすみません・・・ 此方低脳な物で・・・いまいちどういう事だか理解出来てません; www.uploda.org/uporg1577619.zip この様になっているのですが座標指定が解らず適当な事をしております とりあえずオブジェクトのコードで view_xview[1] = x; view_yview[1] = y; を入れてみましたが間違ってるようです
200 名前:名前は開発中のものです。 [2008/07/31(木) 22:01:23 ID:YwgqYDQL] >>196 有難うございます。 読み込むファイルは作っているゲームと 同じところに保存しておけばいいんですか?
201 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 22:13:33 ID:t+mxlfep] >>199 流れてて見えん。 サンプル作ってみたけど座標変換が案外めんどくさい件について ttp://www1.axfc.net/uploader/File/so/9117
202 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 23:15:28 ID:eckrADRs] >>201 おお、ありがとうございます。 まさに私が求めていた物です。何度も何度も本当にありがとうございました。
203 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 21:26:50 ID:PyhBkTjg] 横スクロールアクションを作っています。 悪魔城ドラキュラのように、しなる鞭を表現するにはどうすれば良いでしょうか。
204 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 02:57:32 ID:vO+Y6NBD] 始めてみようと思うのですが、6と7の違いってどれほどのものでしょう? 特に考えずに7にしちゃっていいでしょうか。 過去の遺産を活用するため、6にしといたほうがいいでしょうか。
205 名前:204 mailto:sage [2008/08/04(月) 03:21:04 ID:vO+Y6NBD] とりあえず7をインストール。 ttp://gamemaker.main.jp/modules/articles/article.php?id=19 を作ってみた。 昔のとは言い回しがちょこちょこ違うけど、どれも問題なく発見できるな。
206 名前:194 [2008/08/04(月) 17:13:18 ID:MNtmNm76] やっぱりファイル読み込み方がわからないです。 (fname)にファイル名を入れたんじゃだめなんですか? それと読み込むファイルはどこに保存しておけばいいのでしょうか?
207 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 21:33:43 ID:hTqrWaBF] >>206 文字列は引用符でくくる × file_text_open_read(test.txt) ○ file_text_open_read("test.txt") そういう問題でなかったら、何をしてどううまくいかないのか きちんと説明してくれないと困るよ。 実際に使ったコード貼るなりエラーメッセージ貼るなり。 ファイルの場所は、原理的にはパスちゃんと指定すればどこでも可。 パスって何?というレベルだったら素直にゲームと同じ場所に置いとけばいい。 >>204 5→6でけっこう大きく変わってるけど、6→7はほぼ完全互換。 大きなところでは、6であった精度バグが7では直ってる。 (かわりに再現性低い正体不明のバグがいくつか出てるみたいだけど) 細かいところで色々強化されてるし、総合的には7でいいと思う。
208 名前:206 [2008/08/05(火) 14:08:09 ID:7PHkksrL] 有難うございます。 引用符でくくってませんでした。 それと説明が下手ですいません。 以後気をつけていきたいと思います。
209 名前:名前は開発中のものです。 mailto:sage [2008/08/06(水) 06:59:52 ID:e0Lc+IfT] ドロゥで描いた図形やオブジェクトのスプライトを「最も前面」に表示するにはどうすれば良いでしょうか? ほかのオブジェクトやドロゥ、ビューよりも前に表示したいのです。
210 名前:209 mailto:sage [2008/08/06(水) 07:00:36 ID:e0Lc+IfT] ちなみにGM6です
211 名前:206 [2008/08/06(水) 17:33:23 ID:q0Kkjdvg] ゲームを起動しようとすると「Unexpected error occured when running the game」 というエラーが出てしまいます。 エラーの原因と解決法がわかる方教えていただけませんか? www1.axfc.net/uploader/File/so/9353
212 名前:名前は開発中のものです。 mailto:sage [2008/08/06(水) 21:12:23 ID:8PxMb9eX] >>209 オブジェクトのdepthをうんと小さくする。 depthは負の値にもできるので-999999とかにするとよい。 「ビューよりも前」ってのは意味がわからんけど 複数のビューを使ってるなら、番号の大きいビューが上に重なって描画される。 >>211 よくある要因については>184参照。 ゲーム開始前にエラーが出てるケースなら、 最初のルームの前にダミーのルームを一つ入れてやることで 本当のエラーメッセージを確認できる。 なんかtekiオブジェクトが呼んでるBML_localUPDATEでエラーが出てるから、 初期化の順番の問題ではないかな。 たぶんtekiの初期化(BML_SetBMLCtrl)が kanriの初期化(BML_Init)より前に呼ばれてるので失敗してる。
213 名前:212 mailto:sage [2008/08/06(水) 21:21:49 ID:8PxMb9eX] 追記しとくと、初期化処理については ・複数のオブジェクトがCreateイベントを持っている場合、 どれが先に実行されるかは不定 ・Game StartやRoom StartはCreateより*後*に実行される ということに注意する必要がある。 今回のケースだと、tekiを最初からルームに配置せず 他のオブジェクトから時間を置いて生成させればいいと思われる。 一般的には、タイトル画面を作っておいて BML_Initみたいな「他の何よりも先に必要な初期化」は タイトル画面で済ませてしまうというのが確実。
214 名前:209 mailto:sage [2008/08/07(木) 00:10:10 ID:JeoCPzcW] >>212 ビューよりも前というのは現在作ってるゲームではビュー0の中にビュー1とビュー2を表示させてます。 ビュー2の方はズームで表示させてるので普通のオブジェクトはそこを通過するとズームされてしまいます。 ですのでそのビュー2よりも前面に、つまりズームの影響を受けないオブジェクトを作りたいのです。 説明が下手で申し訳ありません。
215 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 02:02:35 ID:ED5p3ZS0] 上にもあるように、ビューは番号の大きいものほど上に重なって描画される。 その状況だと、もう一つビューを作って重ねるしかないんじゃないかな。 ルームを広げて、余った領域をビュー3用の内容として使うとか。
216 名前:209 mailto:sage [2008/08/07(木) 09:28:36 ID:JeoCPzcW] >>215 私は>>195 さんじゃ無いのですが、勝手に>>201 さんのサンプルを弄らせて貰ってるのでいまいちビューの使い方に慣れていません。 ルームの一部分を表示してる様なのでルームの大きさを弄ってみたりしたのですがどうも上手くいかず・・・。 こんな感じなのですがob_2が中央付近の四角内でも拡大されない様にしたいのです。 www1.axfc.net/uploader/File/so/9374
217 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 12:57:56 ID:ED5p3ZS0] >>216 ob_2が見当たりませんぜ旦那 特定のオブジェクトだけ拡大されたくないなら、逆にそいつを縮小描画する手もある。 drawイベントの中で if (view_current == 2) { //draw_sprite_extで縮小描画 } else { //draw_spriteで普通に描画 }
218 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 17:21:05 ID:JeoCPzcW] >>217 申し訳ありません、ファイルを間違えてしまいました。 www1.axfc.net/uploader/File/so/9388 です。 それですとifの時は全体が縮小されてしまうのでは無いでしょうか・・・。 触れてる部分のみを縮小させる事も出来るのでしょうか?
219 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 21:50:47 ID:ED5p3ZS0] >>218 Drawイベントは各ビューごとに1回ずつ呼び出される (どのビューに対して呼び出されたかはview_currentでわかる)。 そして、どこに描こうがビューの領域の内部だけが実際に画面に転送される。 自分のスプライトしか描画してないんだから、全体が縮小されるなんてことにはならない。 まあ論より証拠ってことで、ob_2のDrawイベントで if (view_current == 1) { draw_sprite_ext(sprite_index, image_index, x, y, (view_wview[1] / view_wport[1]) / (view_wview[0] / view_wport[0]), (view_hview[1] / view_hport[1]) / (view_hview[0] / view_hport[0]), 0, c_white, 1); } else { draw_sprite(sprite_index, image_index, x, y); } ってやってみ。
220 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 21:57:29 ID:ED5p3ZS0] 補足、実際にやりたいことは「カーソルがビューの境界にある時に 両方にまたがって描画されるようにしたい」ってことだろうけど、 ビューごとに座標系が違うからxとyも別々に管理する必要がある。 Drawイベントの頭で x = window_view_mouse_get_x(view_current); y = window_view_mouse_get_y(view_current); と置き換えてやればいけるかな。丸め誤差の関係で微妙にふにゃふにゃするけど。
221 名前:名前は開発中のものです。 mailto:sage [2008/08/08(金) 03:41:55 ID:t78+5+2+] >>219 ,220 ありがとうございます。 色々と試してみましたが「draw_sprite_ext(sprite_index, image_index, x, y,」で毎回エラーが出て起動出来ないのです。 コードの意味も良く分かってないので直しようが無く・・・
222 名前:名前は開発中のものです。 mailto:sage [2008/08/08(金) 12:16:04 ID:9r+m0jPt] エラーが出てるならエラーメッセージを(ry ヘルプ見ればわかるけどそれってレジストしてないと使えない関数だから。 エラーメッセージもそう言ってない? もしレジストしてないんだったら、やっぱりビュー重ねるしかないと思う。 ルーム広げるとおかしくなるって言ってたけど、コードの中で使ってる room_widthとroom_heightはそのままルームの大きさだから 実際に使いたい領域の大きさに合わせて置き換えてやる必要がある。 あと、背景を指定してると当然下にきたビューが塗り潰されちゃうから 背景はなしにしておいて、別のオブジェクトに必要なビューだけ draw_background_tiledで背景を描画させるといい。
223 名前:206 [2008/08/08(金) 22:55:06 ID:Dp8hyxp4] 遅れてすいませんが 有難うございます。
224 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 16:38:52 ID:9U93GJPn] >>192 ありがとうございます。 それにしてもアクション作るのは大変ですね……埋まらず歩くのがいまだに無理です gamemakerのスプライトエディターが実に便利ですね。痒いところだけ手が届くみたいな。 ものが伸びる動きを考えてみました。 ttp://www1.axfc.net/uploader/He/so/128688.zip のpliiiです。(キーワード・yoyo) vmissでは下キーや上キーでロリータがミサイルを打ちますがそれだけです(笑) 生暖かく見守っていただきたくて。ちなみにvmissはproじゃないと動かないと思います。 ところで質問なんですが自分に重なっているオブジェクトの、重なっている範囲だけ透明にする、色を変えるっていうことはできますかね? ヘンな日本語で申し訳ありません。あ、自分は7のproを使っています。
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しました。