【2D】ゲーム作成ツールGameMaker part2【マンセー】at GAMEDEV【2D】ゲーム作成ツールGameMaker part2【マンセー】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト698:名前は開発中のものです。 07/12/18 16:44:34 N2pESpOe ttp://gamdev.org/up/img/10723.zip GM6でマリオの様なアクションゲームを作っており、乗ると落下するブロックを作ってみました。 が、普通のブロックから落下するブロックに空中移動無しで触れても落下せず、ブロックの上でジャンプしなくては落下しないのです。 原因もあまり解らずどうすれば良いのか解りません。ご教授お願いします。 699:名前は開発中のものです。 07/12/18 19:47:28 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 アクションは削除、でいいとおもう。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch