- 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/
- 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]
- >>631Vipへカエレ
- 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 をそれぞれ追加してください。
- 694 名前:名前は開発中のものです。 [2007/12/17(月) 01:14:21 ID:d4jiuAy+]
- >>693
違いました。 忘れてください
- 695 名前:名前は開発中のものです。 [2007/12/17(月) 01:46:13 ID:d4jiuAy+]
- >>692
・・・恥ずかしい間違いしたので問題の箇所の例として加修正してます。 www.uploadjar.com/158405
- 696 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 04:52:03 ID:1bZl34aq]
- >695
とても早いレス、ありがとうございます! 自在に攻撃が出来るようになり、左右移動まで作って頂いてとても嬉しいです。 本当にありがとうございました!
- 697 名前:名前は開発中のものです。 [2007/12/18(火) 14:25:36 ID:KuzWpsao]
- 下および横からはすり抜け可能で、
上からは着地可能、 かつ着地後下キーを押すと下へすり抜けられるブロックを、 Solidを外さず、かつブロック側の処理で実現したいのですが、 どうすれば良いでしょうか? Solidを外すと、その他の判定処理で不具合が生じるので、 なるべくSolidのままで作りたいのです。 また、同時に4人のキャラクターを操作するため、 下キーを押している間と上昇中は非Solidにするという方法は使えません。
- 698 名前:名前は開発中のものです。 [2007/12/18(火) 16:44:34 ID:N2pESpOe]
- ttp://gamdev.org/up/img/10723.zip
GM6でマリオの様なアクションゲームを作っており、乗ると落下するブロックを作ってみました。 が、普通のブロックから落下するブロックに空中移動無しで触れても落下せず、ブロックの上でジャンプしなくては落下しないのです。 原因もあまり解らずどうすれば良いのか解りません。ご教授お願いします。
- 699 名前:名前は開発中のものです。 mailto:sage [2007/12/18(火) 19:47:28 ID:u37r1wue]
- >>698
歩いて落ちる床の上に来た場合は接触状態になっているんだが、これはコリジョンとは違うんだ。 だから、コリジョンイベントとは別に、プレイヤーと落ちる床との接触状態を調べて、条件を満たしたら床を落とす、様なことをしなきゃならん。 で、調べる方法だけど、アクションアイコンだとこれは無理。だと思う。 プレイヤのステップイベントに execute code を追加して、以下のように記述。 ※空白は全角なので、コピペするなら半角に直すこと。 var id_floor; /*id_floor を、execute code 内だけ有効な変数とする */ id_floor = instance_place(x,y+1, object228); /* instance_place()でプレイヤの直下に、object228 (落ちる床)が存在するかどうかしらべている */ /* もしプレイヤの下にobject228が存在したら、 id_floor にそのインスタンスID が代入される。 そうでなければ、 noone という値が入る */ if (id_floor != noone) { if (id_floor.isDrop == false) { /* このif文を付けないと、接触中常にalam[0]が10になってしまうので、必ずこの条件を入れること。 */ id_floor.alarm[0] = 10; /* floor_id に対して、10ステップ後にアラーム0(落ちる動作)が発動するようにする */ id_floor.isDrop = true; } } 変数isDropで落ちるフラグを判定している。 これがないと、alarm[0]が接触中は常に10になってしまうんで、乗っている間落ちないことになってしまう。 変数isDropを使うことになったんで、初期化が必要。落ちる床の create イベントにvarアクションを追加、variable: isDrop、value: falseとする。 さらに、落ちる床のobj_redとのコリジョンイベント中に、varアクションを追加し、variable: isDrop、 value: true とする。 あと、コリジョンイベント中にある set vert.speed アクションは削除、でいいとおもう。
- 700 名前:名前は開発中のものです。 mailto:sage [2007/12/18(火) 21:18:56 ID:u37r1wue]
- >>697
考えてみたんだが、結構無茶な要求・・・。 なぜなら、solidの仕様は、コリジョンイベントの前後で、2つのインスタンス間で絶対に「めり込み状態」を認めないような仕様になっているから。 solid なインスタンスとのコリジョンイベントは、以下のような流れになる。()内は solid の時だけ処理される。 [コリジョンイベント] ↓ (お互いのインスタンスが直前ステップの位置に戻される) ↓ [コリジョンイベントのアクション] ↓ (speed,gravity等でインスタンスの位置を調整後、お互いがコリジョンを起こしていたら、やはり直前ステップの位置に戻される) ↓ [end step イベント] なもんで、その床とキャラとのコリジョンイベントでアクションを起こさないほうがよい。 てことになると、solidの意義が薄れることになるが・・・。 どうしてもコリジョンイベントも定義したいなら、コリジョンイベント中で xprevious yprevious を自前で変更してしまうか、 end step で通過可能にする処理を書くとかするしかない。いずれも、かなり面倒になりそう・・・。 それよりも、着地の処理をコリジョンイベントに頼らない方法で着地させ、 その床との接触中に下を押すと gravity を発生させ、 通過中はgravityを0にしないような処理を キャラ側のステップイベントとかで記述するようにするようにしてみてはどうかな・・・?わかりにくかったらごめん。
- 701 名前:名前は開発中のものです。 mailto:sage [2007/12/18(火) 22:58:45 ID:RkfysYSU]
- solidは融通が利かないから
すり抜け床には使えないな。
- 702 名前:697 mailto:sage [2007/12/19(水) 00:13:09 ID:SlaPK2id]
- うーん、どうやら無理のようですかね。
なんとか工夫してみようと思います。
- 703 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 16:31:31 ID:8LUQdUPx]
- >>702
サンプルデキタ。 solid だとやはり面倒だったんで、solid じゃないやつだけど、参考になれば。 ttp://www.uploadjar.com/133957
- 704 名前:697 mailto:sage [2007/12/19(水) 18:35:50 ID:SlaPK2id]
- ありがとうございます。
うーむ。やはりキャラ側で処理した方が良いのか・・・。 頑張ってみます。
- 705 名前:名前は開発中のものです。 [2007/12/19(水) 21:55:33 ID:+fFhIeoE]
- >>704
キャラ側で指定する時に都合が悪くなければ、 壁用判定オブジェクトを作り、 全キャラにそれを親指定するというのはどうだろう?
- 706 名前:名前は開発中のものです。 [2007/12/20(木) 04:58:53 ID:Tb+MgVar]
- >>699
ありがとうございます。 アクションアイコンのみでしか作った事無かったので難しいですね・・・。 頑張ってみようと思います。
- 707 名前:名前は開発中のものです。 [2007/12/23(日) 00:32:42 ID:U9AhK/mz]
- HPの他にMPのようなものをつくりたいんですがどうやったら二つゲージを表示できますか?
- 708 名前:名前は開発中のものです。 mailto:sage [2007/12/23(日) 00:42:15 ID:QJlA1OEF]
- 自前でスクリプトを書けばできるよ。
- 709 名前:名前は開発中のものです。 [2007/12/23(日) 05:15:16 ID:ZiPFLJZ/]
- >>707
つ「global」
- 710 名前:名前は開発中のものです。 [2007/12/23(日) 12:40:14 ID:U9AhK/mz]
- スクリプト作るのはよくわかりません…
- 711 名前:名前は開発中のものです。 mailto:sage [2007/12/27(木) 15:49:32 ID:8DGio7LY]
- 「動きのあるスプライトA」を「動きのあるスプライトB」に、もしくは「動きのあるオブジェクトA」を「動きのあるオブジェクトB」に変えると
1フレーム目から正確に表示されず困っているのですが仕様ですか? 主人公が待機状態で攻撃キーを押すと「10フレーム目に攻撃判定を発生させる」主人公オブジェクト@に変化して アニメーション終了時に元の主人公待機状態に戻るように設定したのですが@が5フレームあたりから始まって攻撃が異常に早く発生してすぐアニメーションが終わってしまったり 11フレームで攻撃判定がなくなってからアニメーションが開始されたりして毎回正確なフレームからスタートされません。
- 712 名前:名前は開発中のものです。 [2007/12/27(木) 18:16:42 ID:1ajxqRXW]
- もう少し伝わりやすく書いてくれると回答者は助かります。
待機状態というのは、何もボタンを押していない状態でしょうか。 その前に何か条件が発生しているのでしょうか。 そしてバージョンは何を使っているのでしょうか。 そしてヘルプは読んでいるのでしょうか。 >>1のリンク先は見ていますか。 容易に仕様と言わないでください。
- 713 名前:名前は開発中のものです。 [2007/12/27(木) 18:22:56 ID:1ajxqRXW]
- バージョン7及びGMLを使用している場合は、
sprite_index = spr_A image_index = 0 image_speed = 10 2番目の image_index を変化させてください。 これは subimage の始まりを変えます。 最後の image_speed を変化させてください。 これはスピードが変わります。 再度伝えます。 リンク先のヘルプや exsample を参考してください。
- 714 名前:名前は開発中のものです。 [2007/12/27(木) 18:28:43 ID:1ajxqRXW]
- アニメーションの再生がおかしいと感じる時は、
step の実行順番を再認識してください。 step には順番があります。 それは Begin Step から始まり、最後は Drawing です。 また、イベントの Animation End Event をうまく活用してください。 よりよい Game Maker Life を。
- 715 名前:HAL [2007/12/28(金) 14:58:17 ID:iAadBrLO]
- 自分のキャラにHPを設定ってどうやるんですか
あとオブジェクトを使ってHPを減らすようにするにはどうしたらいいんですか
- 716 名前:名前は開発中のものです。 mailto:sage [2007/12/29(土) 00:25:14 ID:yxji7H+p]
- ヘルスのほかにもう一つゲージを作りたいのですがスクリプトを使わずアクションだけでも可能でしょうか。
- 717 名前:名前は開発中のものです。 mailto:sage [2007/12/29(土) 11:53:52 ID:YtFwzcBI]
- ゲージくらい変を数使えばできるだろう?
- 718 名前:名前は開発中のものです。 mailto:sage [2007/12/29(土) 11:54:46 ID:YtFwzcBI]
- 変数をですw
変を数ってなんだ…orz
- 719 名前:名前は開発中のものです。 mailto:sage [2007/12/29(土) 17:02:58 ID:4nUjeBtr]
- 描写のやり方がよくわからないんです
変数で二つ目のヘルスを作っても描写で画面に表示する方法がわかりません バージョンは5.3です
- 720 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 03:17:36 ID:NSmEj/DS]
- いわゆるHPとかゲージを2本表示する簡単なサンプル作ってみた
www.uploadjar.com/134394 ZでPLAYER1(赤)弾発射 XでPLAYER2(青)弾発射
- 721 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 11:55:41 ID:Zqqq8hXp]
- 参考にさせてもらい無事完成させることができました。
ありがとうございます
|

|