【2D】ゲーム作成ツールGameMaker part5【マンセー】at GAMEDEV【2D】ゲーム作成ツールGameMaker part5【マンセー】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト560:名前は開発中のものです。 11/09/07 20:58:35.93 No/jMI5Y ブロック崩しは正確さうpオプション入れた反射アクションで問題なかったけどな 561:名前は開発中のものです。 11/09/07 21:35:51.26 yBuuheHH ゲームの中の物体というのは連続的じゃなくて、数ピクセルずつとびとびに動く 衝突した時、ボールはすでにブロックの中にめりこんでいるわけだから それが縦の辺に当たったのか、横の辺なのかという判断は実はけっこう難しい ブロックを対角線で4つに区切って、上下左右どの領域にボールがあるか見るとか より厳密に、移動前後の位置を線でつないでどの辺と交わるか計算する方法とかあるけど 必ずしもゲーム的に自然になるとは限らないしね。 不具合出ないようにするなら、まず縦横どちらかに反射させるか決めて その方向にブロックがあったら、別の方に反射させるようにすればいいんじゃないかな。 縦横両方ともふさがっていたら、もと来た方向にはね返させるとか 562:名前は開発中のものです。 11/09/07 23:07:09.66 3sgJEou8 GML に慣れていれば簡単だけど、そうでなかったらかなり面倒かも 動かないブロックで上下左右判別有だと下のようになる (ボールからBlock(Solid属性)に対してコリジョンイベント) x = xprevious; y = yprevious; move_contact_solid(direction, 32); if(place_meeting(x+sign(hspeed), y, Block)){ hspeed *= -1; //左右 } else if(place_meeting(x, y+sign(vspeed), Block)){ vspeed *= -1; //上下 } else{ vspeed *= -1; //例外として角 hspeed *= -1; } 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch