1 名前:名前は開発中のものです。 [2005/07/12(火) 09:03:47 ID:DK0oUKwt] 無料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/
593 名前:名前は開発中のものです。 mailto:sage [2007/11/21(水) 14:46:30 ID:GJ98eRgx] 今までスレにでてきた質問とかまとめてみました。曖昧だけどジャンル別にわけてあります。 一部読みにくい部分もあるかと思いますが、参考にしてください。 質問する方は、質問する前に既出のものがないか調べてみてくださいね。 ttp://www.wikihouse.com/GameMaker/index.php?2ch%A5%B9%A5%EC%A4%DE%A4%C8%A4%E1
594 名前:名前は開発中のものです。 mailto:sage [2007/11/21(水) 21:15:55 ID:o5zLLD5X] 上記でもでてきた ・GM7でmbText 1.4.0とjFont Maker 2.2.0を使って日本語表示しようとするとエラーでる という問題に関して自分の環境でもでました。 WinXP PRO sp2 VRAM32mb MEM1G GM7 スプライトサイズを削っていく方法でどのサイズでロードできるか試してみました。 結果、w:320 h:2054 サイズでRunできました。 漢字の京供あたりまで表示できているようですが、 描画するテキスト → 〜∵・・’々” と表示されました。
595 名前:名前は開発中のものです。 mailto:sage [2007/11/21(水) 23:05:33 ID:o5zLLD5X] あるオブジェクトが、上昇中はスプライトA下降中はスプライトBで表示したいんですが、 落下する時の表示ができません。 移動する前の地点と移動した後の地点の変数を取得する方法はありますか? それよりスマートな方法はありますか?
596 名前:名前は開発中のものです。 mailto:sage [2007/11/21(水) 23:16:25 ID:kronrROz] >>593 乙です。 俺は初代スレを見る事ができないので、 そこでなされたQ&Aが見られる事は有難いことです。 >>595 移動する直前にいた位置を示すxprevious,yprevious、 移動した後の位置(現在の位置)を示すx,yという変数が デフォルトで存在するので、それらを活用するといい。
597 名前:名前は開発中のものです。 mailto:sage [2007/11/22(木) 00:12:30 ID:g8wLykso] >>588 横移動する床のうえに乗ったら、一緒に動かしたいってことかな。 自キャラの直下にあるインスタンスを調べて、動く足場だったら一緒に移動させるってことをさせればいいんだけど… 自キャラのステップイベントでこんな感じにしてみては? 必要に応じて、適宜変えてください。 [codeここから] /* serch_x, serch_y : 調べたい足元の座標 */ /* 実際は自分の都合に合わせて数値を変えること */ serch_x = x; serch_y = y+16; ground_id = instance_position(serch_x,serch_y,[横移動する床のオブジェクト名]); /* ground_id には、足元のインスタンスIDが入る */ if (ground_id <> noone) { x += ground_id.hspeed; /* もし床が速度で管理されているなら、自キャラに床の水平速度を足し込む事で、一緒に移動しているようになる */ } [codeここまで] 上記の例だと、 (serch_x,serch_y) 一点だけでしか判定しないから、精度は悪いかもね。 線とか矩形領域で判定したければ、collision_line() とか collision_rectangle() あたりを使用してください。
598 名前:名前は開発中のものです。 mailto:sage [2007/11/22(木) 00:35:47 ID:UQGy8J0/] >>592 説明書plz!
599 名前:名前は開発中のものです。 mailto:sage [2007/11/22(木) 00:48:22 ID:xbPHpoIO] >>596 ありがとうございます。
600 名前:名前は開発中のものです。 mailto:sage [2007/11/22(木) 01:25:56 ID:Z2DrGOi5] >>597 おおでけた\(^o^)/ ありがとうございます >>598 移動キーで移動 スペースで発射 選択画面ではクリックで武器選んで ス 見たいなところ押すと始まる なんてつまらないゲーム\(^o^)/
601 名前:名前は開発中のものです。 mailto:sage [2007/11/22(木) 16:23:18 ID:xbPHpoIO] >>552 AutoHotkey というソフトで解決できた。 lukewarm.s101.xrea.com/index.html 以下のコードを打ち込むとOK ;######### ココカラ ######### #IfWinActive Execute Code F5:: CoordMode, Mouse, Screen MouseGetPos,x,y CoordMode, Mouse, Relative MouseClick, left, 20, 45 CoordMode, Mouse, Screen MouseMove, x, y ;######### ココマデ ######### F5キーでOKボタンをクリックする仕様です
602 名前:名前は開発中のものです。 mailto:sage [2007/11/24(土) 10:47:25 ID:yxZvhkIv] 非公式情報ページのアンケートでGM6利用者が圧倒的に多かったから 6をDLしようとしたら公式に前のバージョン落ちてない\(^o^)/
603 名前:名前は開発中のものです。 mailto:sage [2007/11/24(土) 11:08:07 ID:Ni6Xllr/] yoyogamesは7.0以降しか版権がないからね。 旧公式から前のバージョンを落とせるよ。 ttp://www.gamemaker.nl/old.html 下のほうに旧バージョンの一覧がある。 でも正直、6.xはお勧めしない…。整数でも24bit、およそ1678万弱までしか扱えないのはちょっと。 5.3Aと7.0ではこの問題がおきていない。
604 名前:名前は開発中のものです。 mailto:sage [2007/11/24(土) 17:08:16 ID:4xZfNBY3] 7.0 は、今年の3月リリースからバージョンアップとかの情報ないっすか? それと、EmEditorの構文ファイルを作ってみたけど需要ある?
605 名前:名前は開発中のものです。 mailto:sage [2007/11/25(日) 01:48:28 ID:Eof1yOl+] 格闘ゲームつくーるのような攻撃モーションの四角い可視当たり判定を作りたくて四苦八苦しています。 1ドットの小妖精を作って、image_xscaleで引き延ばしたオブジェクトを不可視指定。 Drawイベントで同じ大きさのdraw_rectangleを作って表示しています。 もっとシンプルにできますか? width = 10; height = 10; // 当たり判定の大きさ atariid = instance_create(x+10,y,obj_atarihantei); atariid.image_xscale = width; atariid.image_yscale = height; if (mode_visible) { //スプライト指定にすることで可視化 atariid.sprite_index = spr_attack; } Draw Event: draw_rectangle(x,y,x+width,y+height,true) ;
606 名前:名前は開発中のものです。 mailto:sage [2007/11/25(日) 02:06:45 ID:vBlAV7Zz] Draw Event: 内は削除して、if文のコードを以下のように変更、じゃだめかな if (mode_visible) { //スプライト指定にすることで可視化 atariid.sprite_index = spr_attack; atariid.visible = true; }
607 名前:名前は開発中のものです。 mailto:sage [2007/11/25(日) 03:24:21 ID:Eof1yOl+] >>606 それですと、元スプライトが――小妖精から直すの忘れてました―― 1ドット絵ですので、□でなくて■で表示されてしまうんです。 元スプライトを□で書いてみたんですが、オブジェクト拡大時 やたらと輪郭のボケた表示になってしまいました。 はっきりとした線(□)で表示したいのです。
608 名前:名前は開発中のものです。 mailto:sage [2007/11/25(日) 10:01:18 ID:r1aVIhHY] ミックマンすげーな
609 名前:名前は開発中のものです。 mailto:sage [2007/11/25(日) 11:28:56 ID:qQuswX/z] >>608 俺は昨日遊んでショックを受けたよ…。 gamemakerってもっさりしたゲームしか作れないものだと思ってたから。
610 名前:名前は開発中のものです。 mailto:sage [2007/11/25(日) 11:47:25 ID:vBlAV7Zz] >>607 枠で表示したかったら、obj_atarihantei の Drawイベントで draw_rectangle() を使って表示するのが一番スマートかな。 塗りつぶされて見えないのが嫌だったんなら、半透明にする手もあるけど。 ローカル変数 image_alpha を0.5ぐらいに設定すれば、半透明になる。
611 名前:名前は開発中のものです。 mailto:sage [2007/11/25(日) 22:25:10 ID:nQKNJKcw] 起動が遅い・・・ GM5.3Aで7.75Mの容量くらい作ったけど起動のローディングが15秒くらいになった やっぱマシンがへこいとローディング長くなるんでしょうか? ルームは幅1000高さ700でスプライトは高さ300幅400とか多く、113個くらい作った まだ音入れてないのに動作確認だけで日が暮れる状態です・・・ ビデオメモリの使用をやめて遅延ロードとか考えた方がいいんで・・・しょうか・・・
612 名前:名前は開発中のものです。 mailto:sage [2007/11/27(火) 17:29:34 ID:Kfsg319Y] いくつか遅延ロード入れればおk
613 名前:名前は開発中のものです。 mailto:sage [2007/11/27(火) 22:05:08 ID:o7JCBwEc] ありがd とりあえず遅延を適当に入れて調整してみる
614 名前:名前は開発中のものです。 mailto:sage [2007/11/27(火) 22:37:33 ID:03pWBi0H] >>613 ゲームの途中でロードする背景とかスプライトとかを中心にね。 最初から使う奴は入れて
615 名前:名前は開発中のものです。 mailto:sage [2007/11/28(水) 02:34:13 ID:IKhE5IEH] >>609 あれはスプライトのアニメーションでうまく見せてるんだろうね。 ドット絵を描けない俺としては尊敬するほどに羨ましい。 あれくらいの領域のゲームを作りたいと思って始めたんだがなかなか・・・
616 名前:名前は開発中のものです。 mailto:sage [2007/11/28(水) 23:22:11 ID:UcC33M+r] 教えてください ver7のグローバルセッティングの翻訳で困ってまして Let <Esc> en&d the game &Treat the close button as <Esc> key ここの翻訳がわかりません。 一行目は、ESC で終了でいいのでしょうが2行目が・・・ どうか教えてください。
617 名前:名前は開発中のものです。 mailto:sage [2007/11/29(木) 00:46:50 ID:OT5fuA8b] >>616 ヘルプを見ると、 When checked the close button of the window will generate an escape key event. When not checked the close button events are called instead. →意訳:チェックが入っていると、閉じるボタンで<ESC>キーイベントを発生させます。 チェックをはずすと、代わりに Close Button イベントを発生させます。 とあるから、 『閉じるボタンで <ESC>キーイベントを発生させる』 でいいんじゃないかな。 で、翻訳とは違うんだけど、このClose Button イベントは、Win32API?の WM_CLOSE とは違うことに注意。 不用意に Treat the close button as <ESC> key のチェックをはずすと、×ボタンで終了しなくなる。(Alt-F4も効かないっぽい) ゲーム内で Close Button イベントを拾って、End the game アクションを定義しておけばいいんだけど・・・。 ESCキーで終了させずに×ボタンで終了させたい場合は、次のようにするべし。(7.0 only) ・Global Settings の、[Let <Esc> end the game] のチェックをはずし、[Treat the close button as <Esc> key] のチェックもはずす。 ・ゲーム中ずっと存在するオブジェクトとかで、Close Button イベントを定義し、そこで End the Game アクションを起こす。
618 名前:名前は開発中のものです。 mailto:sage [2007/11/29(木) 01:07:06 ID:2O8VJSxX] >>617 おぉ、ありがとうございます。 E-WordChanger2000で変換がきかないところが多々ありますね。
619 名前:名前は開発中のものです。 mailto:sage [2007/11/30(金) 16:26:11 ID:JpK40a/w] E-WORD2000 での辞書ファイルです。 当分時間作れなくなりました。 翻訳引き継いでくれる方希望。 gamdev.org/up/img/10638.zip
620 名前:名前は開発中のものです。 mailto:sage [2007/11/30(金) 16:27:29 ID:JpK40a/w] E-WordChanger2000でした
621 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 00:20:12 ID:do+f7uIl] >>619 全然翻訳できてねーじゃねーかwwww 俺も今同じく翻訳中だけど、あれなんだよな、有料版の部分の翻訳が出来ないorz それと、ボタンが文字化ける 冒頭のアクティベート部分も化ける 文字化けさえ克服できれば後一歩なんだが
622 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 01:05:45 ID:NJujLxPi] >>621 未レジストって事? 俺レジストしてるよ。 物ちょうだい。
623 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 02:19:17 ID:do+f7uIl] 時間がなくなったと、途中で放棄して、他人に丸投げするかと思えば すぐさま、他人の手柄を丸々よこせと言ってみたりする
624 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 02:38:10 ID:NJujLxPi] 寄越せといってみたりしたが別人だ
625 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 02:47:00 ID:2L8kwVBd] >>623 共有してくれる意志があるならしてもらえると助かるな。
626 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 03:02:43 ID:2L8kwVBd] と思ったけど自由意志だな。 すまない、今のは忘れてくれ。
627 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 03:09:01 ID:NJujLxPi] 620でてこいよ疑われてるぞ
628 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 03:15:52 ID:NJujLxPi] 氏ね!111!!11 うpる気ないなら初めから書くなバーカ!!!! どーせろくなもん作ってないんだろwwwww
629 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 03:18:38 ID:NJujLxPi] >>626 何が自由意志だ! 格好良いとおもってんのかよ(プ 早くクソして寝ろwwwwwwwwwww
630 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 03:44:02 ID:do+f7uIl] 初めから、誰もうpするなんて言ってない件 つーか、>>625 になら渡してもいいけど でも本当は完成してからうpしたいな
631 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 03:44:02 ID:NJujLxPi] ごめんなさい日本語ください 間違えられたのが悔しかったんだ 抜いたら落ち着いた
632 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 03:44:37 ID:do+f7uIl] >>631 Vipへカエレ
633 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 03:45:45 ID:NJujLxPi] オマエモナー く、悔しくないからな
634 名前:名前は開発中のものです。 mailto:sage [2007/12/01(土) 03:47:07 ID:p7Hahl+U] 今度はGameMakerスレで沸いてるのか。 前はツクールスレだったな。
635 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 03:21:15 ID:RfbAwBK6] 質問です。 ボタン押下時に instance_createで作成したオブジェクトをキャラクターに追従させるにはどうしたらいいのでしょうか? my_copy_id = instance_create(x-20, y-20, obj_my_copy); でやっているのですが、その場所で留まっています。
636 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 03:26:46 ID:RfbAwBK6] 忘れていました。 その作成したオブジェクトは、シューティングのオプションでしてキャラの周り(1つめは上、2つ目は下)という風に出現場所を変えたいのです。
637 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 03:42:50 ID:4Kr9+zdR] >>635 obj_my_copy が追従したいオブジェクト(obj_mychara とする) のインスタンスがルーム内に一つしかないなら、 obj_my_copy の step イベントで Var アクション を追加し、 variable : x value : obj_mychara.x もう一つ、 variable : y value : obj_mychara.y-20 上記はキャラの上に配置されるようになる例。数値適当にかえてくれ。
638 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 04:42:57 ID:4Kr9+zdR] あっと、よく読んでなかった。 オプションは複数置きたいけど、すべて同じオブジェクトにしたいってこと?そういう場合は、インスタンスによって配置を変えないとね。 上記の obj_my_copy の step イベントで追加した Var アクションのところを、 variable : x value : obj_mychara.x+optx variable : y value : obj_mychara.y+opty とかに変えて、ボタン押下時に instance_create()したときに、 my_copy_id = instance_create(x, y, obj_my_copy); my_copy_id.optx = 20; my_copy_id.opty = 0; とかすると、右側に出る、とかできる。if文で適当に条件分岐させて、optx と opty の値を決めればいい。
639 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 05:25:36 ID:4Kr9+zdR] それはそうと、>>601 のアイディアを元に、 >>552 の要望にこたえられそうなAutoHotKey のショートカットマクロが出来た。 Execute Code ウィンドウでも、 Script Properties ウィンドウでも、即確定して閉じる。 gamdev.org/up/img/10645.zip デフォルトでは Ctrl+W でウィンドウを閉じるようになってます。。 ファイル内の ^w:: を適当に変えることでキーカスタマイズ出来ます。 autohotkey.ini に追加するなりして利用してください。 ・・・もう5時半かorz おやすみなさい
640 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 05:59:41 ID:RfbAwBK6] >>638 その記述でうまく予定通りの動作にすることができました。 ありがとうございました。 遅くまでお疲れ様でした。 お休みなさい。
641 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 16:21:12 ID:lZt/Vorp] ボタン連打による連続攻撃の判定をうまく組めないや。 if文でattack+=1によるatack何回目かで表示かえてるけど モーションの途中で次のモーションに変わるんだよね。(当然だけど 1回目のモーション中に押した判定があった時に、 2回目のモーションに移行したい。 ヒント教えてください
642 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 18:30:38 ID:QsBWBjou] ダメージを食らった時無敵時間を作りたいんですが 「ヘルスが1以上減ったとき」というのはどう設定すればいいのでしょうか
643 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 21:57:57 ID:lZt/Vorp] >>642 俺も初心者だけど浮かんだので書いてみる。 ・ステップ開始イベントで、現在のヘルスを変数(たとえば、henka_health)に格納 ・ステップ終了イベントで、現在のヘルスとhenka_healthを比較 1以上変化があれば、無敵時間突入 という風にやるとかどう?
644 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 22:08:42 ID:lZt/Vorp] >>641 アニメーションが終わった時のイベントが End of animation というのは解ってるんだけど、 アニメーション中にatack(があったかの)変数を使って、 もしあれば次のモーションに移る。 って感じの「モーション中に何かあったか」を調べるGMLって何かある?
645 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 22:31:07 ID:OLWlECNF] >>642 プレイヤーのヘルスを減らすスクリプトっていうのを作っておいて、 ダメージを与える時には必ずそのスクリプトを呼ぶようにする。 で、何か処理を追加したい時にはそのスクリプトに追加する。 ってやり方もあるよ。 >>644 アニメーション開始時に適当な変数を0に設定して 何かアクションがあったら変数を1に変える アニメーション終了イベントで変数が1かどうかチェック でどうかな。
646 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 22:41:58 ID:lZt/Vorp] >>645 連続攻撃にしたいんだ。それだと1・・・ ん? 1回目に atack=1 二回目に atack=2 ... として、終了イベントで ってあれー? うん、ありがと、何か閃きそうだ。頑張ってみる。
647 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 22:43:28 ID:NwDfsPPB] 遅かったかも試練が、書いたので置いとく。 >>644 キープレスイベントかなんかで、イベントを拾えばいいんでないの? >>641 zキーで攻撃するとして、 key press <z> ... switch (attack) { case 0: // 1発目 // ここにモーションを発動させる何かを書く。 attack += 1 break; case 1: // 2発目 // ここにモーションを発動させる何かを書く。 attack += 1; break; // ... } ... モーションは、タイムラインで設定すればいいとおも。 もしくは、ステップイベントでモーションを設定してる自作スクリプトを呼び出す、のもアリかなぁ 例えば引数を、attackとモーションが始まってから経過したステップ数にして、 attackでモーションの種類を場合わけをして、 経過ステップ数でそれに応じた移動をさせたり、アニメーションさせたり、キー入力の可否を設定したり、等々... ま、それだとタイムラインとあまり変わらんのだが。
648 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 23:05:42 ID:lZt/Vorp] >>647 thx caseもやってみたけど、イメージ通りとはいかなかった。 (俺のやりかたが悪いのか イメージとしては、モーションが終わらないと次のモーションが始まらないって事なんだけど、 どうしても、モーション途中でボタン押すと、モーション途中で放棄して新しいモーションが 始まるんだ。
649 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 23:10:18 ID:lZt/Vorp] 一定時間内(連続二回とか)に同じキーが押されるって判断は、 タイムライン?とかアラームで判断させたほうが良い?(これもイマイチうまくいってない これができるとダッシュ判定とかできそうなんだよな。 うーん。
650 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 23:16:11 ID:NwDfsPPB] >>648 あ、動作キャンセルじゃないのか。上の例は、動作キャンセルっす・・・。 となると、俺だったらモーション中は攻撃キーの入力を無視するような仕組みを作るなぁ。 キー入力可否を表す変数(ableAttack)を一つ用意して、 if (ableAttack) { switch (attack) { // ここは>>647 と同じ感じで... } } こんなかんじで。モーションが終わったら、連続攻撃入力受け待ち期間になって、 次の攻撃キーの入力があったら、連続攻撃発動(attack が +1されてく)。 この期間はアラームで管理するといいかもね。 で、連続攻撃受け待ち期間も終了したら attack を 0 にもどす。 そんなイメージが沸いた。
651 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 23:33:22 ID:lZt/Vorp] >>650 thx うーん、それだと小パンチ連続みたいな感じができないんだよね。 何カウントか待たないといけなくならない? というか成った。 モーション中にもっかい押されると連続攻撃発生みたいにしたい。 少し落ち着いてくる。
652 名前:名前は開発中のものです。 mailto:sage [2007/12/05(水) 02:09:27 ID:DyBIMWNQ] 格闘ゲームの必殺技みたいにカーソルキーの入力待ちはどうすればできますか? 「↓・斜め→・右+A」のようなコマンドです。
653 名前:名前は開発中のものです。 mailto:sage [2007/12/06(木) 00:37:05 ID:ipO1poTD] 連続攻撃判定うまくいかなーいorz
654 名前:名前は開発中のものです。 [2007/12/06(木) 22:57:30 ID:g7KZCqa1] はじめましてこんばんわ。 最近gamemakerにはまりだした、新人です。 2D横スクロールゲームを作ろうと思って>>305 さんのサンプルを参考にさせてもらい、 ちょくちょく進めてるんですが、途中で詰まってしまって、原因を探ろうにも 全くわかりません。どなたかご教授お願いします。 ttp://tonosiki.mbnsk.net/uploader/src/up6820.rar ←→キー;左右移動 Zキー;ジャンプ Xキー;パンチ エラー: パンチを数回使うと、keyXで変数panchが見つからないとエラー表示される また、移動しながらパンチをしてもkeyleftまたはkeyrightで変数panchが見つからないと 表示される。 途中、命令をコメント文で囲っていますが、気にしないでください。
655 名前:名前は開発中のものです。 mailto:sage [2007/12/06(木) 23:41:29 ID:x5GKX6Js] 動きのあるオブジェクトを動きのあるオブジェクトにチェンジすると スプライトが1から表示されない時があるのですが解消方法はありますか?
656 名前:名前は開発中のものです。 mailto:sage [2007/12/07(金) 00:45:55 ID:4eA37li8] 上のほうで言っていた翻訳の奴あげてホスィ paypalで1000円までなら支払ってもイイ
657 名前:名前は開発中のものです。 mailto:sage [2007/12/07(金) 00:58:23 ID:+n/vdyUz] >>654 見たところ、unkown variable というエラーがでるような記述ではないと思います。 そこで、unknown variable gamemaker bug というキーワードでググったところ、 海外のフォーラムに、ごく稀にそのようなことが起こる、との書き込みがありました。 ttp://gmc.yoyogames.com/lofiversion/index.php/t300055.html 下から2番目に Alert Games という人が答えています。 どうやら、プロジェクトをセーブする際にバグがあるのかもしれない、といっていました。 その人はバックアップファイルで元に戻すことを勧めていますが、 私のほうで obj_main オブジェクトを丸ごと duplicate して(右クリックでできます) 再度ためしたところ、unknown variable のエラー表示はなくなりました。 こんなことが起こるんですねぇ・・・。
658 名前:名前は開発中のものです。 mailto:sage [2007/12/07(金) 02:06:08 ID:4eA37li8] 態度が悪いといって怒られるかも知れませんが助けてください キャラをスト3の豪鬼の必殺技みたいに、横にすべりながら攻撃する時に、思い通りに動かない。 Xポジションを変えると瞬間移動みたいになったり、 move_towards_point使うと、ずっと移動しつづけたり・・・ 3キャラ分横に移動させて止めるって方法教えてください
659 名前:名前は開発中のものです。 mailto:sage [2007/12/07(金) 02:26:02 ID:+n/vdyUz] 態度というか、結果だけを求める質問をされても、 前提となる部分が何もないと回答が無数にあるため、答えようがないというのが正直なところでして。 前提となる部分を回答する人が想像して答えようとしても、えらい長くなるから面倒だしスルーってなりやすいですし。 (というか、1から作るやり方をいうようなもんですし) こうやってるんだけどうまくいかない等、詳しい情報がないと手助けしてくれる人の可能性が低くなりやすいですよ。どうしようもないのが本音です。
660 名前:名前は開発中のものです。 mailto:sage [2007/12/07(金) 02:40:14 ID:4eA37li8] ふぎゃΣ ええっと、前提となる部分・・・ 2D格闘ゲームを作ってまして、立ち状態から ボタンc(必殺技ボタン)を押したら、パワー消費して(これはOK) 立ち絵から、sprite(spr_special_wazaA ; サブイメージ数20) に変化させて、キャラを右方向ゆるやかに移動させたいんですが、 if keyboard_check_pressed(ord('C')) { sprite_index = spr_special_wazaA ; image_index = 0 ; image_speed = 1 ; x += 10 ; //←ここで移動を書こうとしている } こうすると、右に10ほど瞬間移動したみたいにコマ飛びして表示されます。 for でやってみても一緒でしたし、move_towards_pointすると地面となる オブジェクトと接触してる間はちょっしか移動しないし、ジャンプとかすると そのまま画面の端まで移動しちゃうんですよね。 ゆっくり移動して目的の場所でピタっと止める方法はありますか?
661 名前:654 [2007/12/07(金) 07:17:58 ID:MOpCkhcY] >>657 わざわざ、調べていただいて、さらに海外フォーラムまで言っていただいて ありがとうございます。 エラー表示が消えました。ありがとうございましたm(_ _)m
662 名前:名前は開発中のものです。 mailto:sage [2007/12/07(金) 22:00:35 ID:3R22D1pU] >>660 1stepごとに少しずつ移動させたければ、ステップごとに細かく移動させないといかんのよ。 何ステップでどれくらい移動するかあらかじめ決めて、 移動するステップ数(変数名 move_cnt)と1stepで移動する移動量(変数名 dx)を計算しておく。 で、ステップイベントで、 if (move_cnt>0) { x += dx; //x 方向にdxだけ移動する move_cnt -= 1; // 移動カウントを一つ減らす } こんな感じにすると少しずつ移動する。面倒だけど、仕方ない。 横移動制御には hspeed を利用する方法もあるけどね。 技発動したときに、move_cnt と dx (とスプライト(sprite_index)とアニメーションスピード(image_speed))を決めてあげればいいんじゃないかなぁ。 なお、for文は1step内で繰り返し終了まで処理することになるので、上のような意味にはならない。 技発動中に操作させたくなければ、キー入力を拾う部分でそういうフラグも設けること。
663 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 02:21:58 ID:HAW715W6] >>662 ものすごく死角から攻撃されたような衝撃です。 明日試して見ます。 そして新たに質問なんですけど、draw_sprite_stretchedでスプライトを下記の方法で表示すると一瞬で消えてしまうんですが、何が問題なのでしょう? //X(攻撃)ボタン if keyboard_check_pressed(ord('X')) { attack = 1; ren += 1 ; if ren == 1 { if !muki_chk{ sprite_index = x1_r; }else{ sprite_index = x1_l; } image_index = 0 ; image_speed = 1 ; draw_sprite_stretched(spr_attack,0,x+10,y-20,50,20); }else if ren == 2 { if !muki_chk{ sprite_index = x2_r; }else{ sprite_index = x2_l; } image_index = 0 ; image_speed = 1 ; draw_sprite_stretched(spr_attack,0,x+10,y-20,30,40); } }
664 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 07:47:24 ID:qBb/GgCE] >>663 draw系の関数はdrawイベント中にしか効果がないよ。 画面に描画する機能なんだけど、drawイベントに入った最初に背景色や背景画像で全体を描画してしまうので、描いても消されてしまう。 スプライトを拡大表示させたければ、image_xscale image_yscale という変数で指定できる。 どうしても、キャラスプライトとは他に描画したいものがあるなら draw イベントで描画関数で描こう。 ただし、draw イベントに処理を施すと、自身のキャラ(sprite_index のスプライト)が自動で描画されなくなるので、忘れずに描画させよう。
665 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 18:34:14 ID:HAW715W6] >>664 ありがとうございます。 あ、すいません、これはdrawイベントに書いてます。 なのに一瞬で消えてしまうからナンダロウなーと。 深度を指定して試してみるっす。
666 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 20:46:46 ID:Cn07bZV4] draw_sprite_stretchedが if keyboard_check_pressed(ord('X')) { } の内側にあるから、キーを押した瞬間しか 描画されないんじゃないかな
667 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 21:00:01 ID:HAW715W6] 深度変えてもダメだった。 が、今の問題とは関係ないけどobject_set_depth(ind,depth)って、どこで宣言してもいいのかな? (最後の方にでてくるオブジェクトで、最初のほうにでてくるオブジェクトの深度変えるとか) 心配だから、ルームに必ずおくオブジェクトに設定してるけど。 >>666 なるほど! では、タイマーイベントで試してみます。
668 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 21:06:20 ID:HAW715W6] ってダメだ。 drawイベントじゃなくなるorz 表示時間のばすか、消えないままにする方法ってないですか。
669 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 21:38:56 ID:Cn07bZV4] if文の外に出すんだ
670 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 21:47:16 ID:HAW715W6] 攻撃回数でサイズを変えたいんでそれは・・・ って、そのための変数だ! if文の中で数字を変数に入れて下のほうで宣言すればいいんだ。 やってみます。
671 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 22:00:33 ID:HAW715W6] ・・・そもそも攻撃した時だけ表示したいんだからダメか。 画面外に表示しておいて、攻撃時(x-key press)時だけ 目的の場所に移動させるという方法にしてみる。 他に良い手がありましたら教えてください。
672 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 15:28:56 ID:ey1ac3Xs] >>671 何を表示したいのかいまいちイメージできないけど・・・・・別に1つのオブジェクトで処理してしまおうとしなくてもいいんでないかい? 表示用のオブジェクトを作成しておいて、アラームイベント2つ作成し1つ目にDestroy the instanceアクション(インスタンス破棄)を登録 2つ目に1つ目のアラームを起動させる記述をする。生成イベントでアラームイベントの待機時間用変数を宣言しておく if keyboard_check_pressed(ord('X'))のブロック内のどこかでこの表示用オブジェクトを生成してやるとともにさっきのアラームイベントのタイマーセットを書き込んでやれば このタイマーセットの間だけ表示されると思う。以下こんな感じのGML書いたらっていう案(表示オブジェ:obj_Disp 待機時間用変数:IntervalSet アラームイベントを1と2で設定したとする) if keyboard_check_pressed(ord('X')){ //攻撃とか動作とかをずらずら記述してあるかと・・・ //----------------- //ここより表示用オブジェ生成 var DispObjID; DispObjID = instance_create(self.x, self.y, obj_Disp);//例として自分の原点に表示用オブジェのインスタンスを生成 DispObjID.IntervalSet = room_speed * 3;//例として3秒間表示 }
673 名前:672 mailto:sage [2007/12/10(月) 15:45:44 ID:ey1ac3Xs] 上の続き ○obj_Dispの生成イベント var IntervalSet; //待機時間用変数の宣言 alarm[2] = 1; //破棄用アラームイベントを1ステップ後起動させるアラーム2を起動 ○obj_Dispのアラーム2イベント alarm[1] = IntervalSet;//破棄用アラームイベント起動 ○obj_Dispのアラーム1イベント >>672 の記述どおりDestroy the instanceアクションをセットし、自分自身(obj_Disp)を破棄する 後はobj_Dispの描画イベントにあなたが思ってる表示をさせる記述をもりもり書き込もう 実際試してないけど>>672 は似たような事してるので多分大丈夫だとおもうよ?
674 名前:672 mailto:sage [2007/12/10(月) 16:18:53 ID:ey1ac3Xs] すまない、書き込んだ矢先に的外れなような気がしてきた。でもなんで描画イベントなの?
675 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 21:07:39 ID:hgs58Ul1] >>672-674 どんぴしゃで目的の動作にできた!! マジありがとー!! 格闘ゲー+α(ファイナルファイトみたいな)の作成中、 どうしても汎用的な当たり判定枠を作りたくてやってたんだけど すぐに消えるわ表示されないわで困ってた。 必殺技で自分の分身をつくってソイツに殴らせるのをやりたかった。 (コイツにのみ当たり判定有り) で、ぶわーっと前にまっすぐ飛ばしたりもしたかった。 一応アラームも使ってデストロイ指定してたんだけど、 連続攻撃すると分身が画面に残ったりしてた。 (animation end でデストロイ指定+表示から秒単位でデストロイ) 言われた方法でやったら、連続攻撃してもキレイに消えてくれて なんかもう、やっとムチ振りアクションに取りかかれるッス。ありがとー!
676 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 21:08:47 ID:hgs58Ul1] あ、描画イベントなのは draw_うんちゃらでしか表示する方法を知らないからでした。
677 名前:名前は開発中のものです。 mailto:sage [2007/12/11(火) 00:16:53 ID:QXoJ6Zco] すいません、GML初心者です。 if relative position (4,0) is collision free for Only solid objects move relative to position (4,0) else if relative position (4,-8) is collision free for Only solid objects move relative to position (4,-8) move in direction 270 at most 8 till a contact with solid objects と、ある場合GMLで記述するにはどうすれば良いのでしょうか。教えてください。
678 名前:名前は開発中のものです。 mailto:sage [2007/12/11(火) 11:20:53 ID:LOC5oPUm] >>677 たぶん、こう。 if (place_free(x+4, y)) { x += 4; } else if (place_free(x+4, y-8)) { x += 4; y += -8; // y -= 8; でもいい move_contact_solid(270, 8); }
679 名前:672 mailto:sage [2007/12/11(火) 18:12:40 ID:1veI1+hN] >>675 ぉ!できましたか。成功してよかったです。 ところで>>667 のobject_set_depth(ind,depth)ですが、その使い方だとNGかと思われます。 平たくいえばオブジェクト=設計図、インスタンス=オブジェクトのコピーであり、F5,F6でデバックした時や実行ファイルで実際に表示されているものはインスタンスです。 object_set_なんちゃら()の関数はオブジェクトリソースを直接変更しにいく関数なので、ヘルプの冒頭に説明されているとおり、すでにオブジェクトのインスタンスが 生成されている場合インスタンスにオブジェクトのプロパティが格納されていて予期せぬ効果を引き起こす可能性があります。 深度を変えたい場合はインスタンスidを直接さして個々に変更するのが常套手段かと思います。>>672 のobj_dispを使って説明すると var DispObjID;//インスタンスidを保存する変数 DispObjID = instance_create(self.x, self.y, obj_Disp);//インスタンス生成instance_create()は返り値にインスタンスidを出力する DispObjID.depth += 2;//例として設定されている深度より2奥に設定変更 こういった感じでしょうか。ヘルプによく書かれている引数のindはよく読まないと、インスタンスなのか、オブジェクトなのか、スプライトなのか混同してしまうことが あるのでそこらへんを意識してないと「インスタンスが表示されない」+構文も間違えてないので「エラー表示がない」とかいうことになります。 自分も実際しょっちゅうやらかしてます・・・orz
680 名前:名前は開発中のものです。 mailto:sage [2007/12/11(火) 18:31:50 ID:QXoJ6Zco] >>678 ありがとうございます。 このようなアクションをGMLに対応する一覧みたいなものは無いのでしょうか。
681 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 19:32:20 ID:I7CK0gCA] >>680 >584にV6用のがリンクしてあるけど 他のバージョンのが欲しかったら本家フォーラムから ttp://gmc.yoyogames.com/index.php?showtopic=334704
682 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 19:50:15 ID:Bw7drWJW] >>681 ありがとうございます。 v7はあるようですが、v6はないようですね。
683 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 19:51:08 ID:Bw7drWJW] すいませんありました。 数字のないほうがv6でした。
684 名前:名前は開発中のものです。 mailto:sage [2007/12/13(木) 19:56:55 ID:mOWLOq6S] ボタンを押すと動きのあるスプライトにチェンジするようにしたのですが チェンジの時たまに1から順にスプライトが再生されません。 何が原因でしょうか。
685 名前:名前は開発中のものです。 mailto:sage [2007/12/13(木) 21:33:32 ID:9VWX8wY5] スプライトの表示番号を 0 にしてないんじゃない? change sprite アクションなら、subimage ていう箇所があるからそこで設定する。 GMLなら sprite_index = 変更したいスプライト名; image_index = 0; てな感じで。
686 名前:名前は開発中のものです。 mailto:sage [2007/12/13(木) 22:50:14 ID:mOWLOq6S] 全て0にしているんですがたまに動きがおかしいと思ったら5あたりから再生されてるみたいなので・・・
687 名前:名前は開発中のものです。 mailto:sage [2007/12/15(土) 12:14:12 ID:CVKb7N91] FAQにあるヘルスを二つ表示する方法がいまいち分からないのですが詳しく教えていただけないでしょうか。
688 名前:名前は開発中のものです。 [2007/12/16(日) 13:32:59 ID:MjHgc/J/] 「現在のビューに映っている敵をすべて破壊する」 というような技を作りたいのですがどのように設定すればいいのでしょうか?
689 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 21:34:56 ID:khbOK2Jz] >>688 テンプレのリンクからヘルプを拾ってきて with の項目を参照すると目的の動作ができると思う。
690 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 00:13:47 ID:SSdNo8vA] ボタンを押したとき400後ろ(x:-400)に何もない時そこにワープ、そこにsolidオブジェクトがあるときは何もおきないという風に できるようにしたいのですがif a position is collision freeを使ってもうまくいきません どう設定したらいいでしょう
691 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 00:34:29 ID:d4jiuAy+] >>690 relativeにチェック入ってる? if a position is collision free (x:-400 relative:check) Jump to a given position (x:-400 relative:check)
692 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 00:58:48 ID:1bZl34aq] OCNから書き込めないので、携帯から失礼します。 GM7でアクションゲームを作っているのですが、 攻撃に設定したキーを一回押すと、離しても延々と攻撃が出続けてしまいます。 GMのフォーラムやここの質問で key_pressedイベントを使うと良いと書いてあったのですが それを使っても攻撃が止まず上手くいきません。 単発で出したいのですがどうしたらいいのでしょうか。 どなたか解る方がいらっしゃいましたらご教授下さい。 文章だけではわかりにくいかもしれないのでソースをあげておきます。 www.uploadjar.com/818021
693 名前:名前は開発中のものです。 [2007/12/17(月) 01:11:36 ID:d4jiuAy+] >>692 ・その状態だと、Left(Right)を押したら rol に変数が入る。 ・zを押したら、向きがLeftの場合、攻撃スプライト(左)を表示する。 で終わってる状態です。 Key Release <Left> に Set variable rol to 0 Key Release <Right> に Set variable rol to 0 をそれぞれ追加してください。