switch ステートメントを使用して簡単な衝突検出を行おうとしています。このステートメントは、特定のオブジェクトの y 位置を取得し、オブジェクトの x が別のオブジェクトと同じかどうかを検出します。問題は、条件が満たされていない場合でも、if ステートメント全体を通過するケース内に if ステートメントがあることです。オブジェクトは、敵に攻撃された後 (敵が画面内を移動している)、開始点に送り返され、ケースが満たされるように 19 ずつ移動することになっています。問題は、ケース (y = 221) を満たすたびに開始位置に送り返され続けるため、上に移動できないように見えることです。switch ステートメントから deadObject() を削除すると、問題なく動作し、敵に遭遇したときにのみ「dead」と出力されます。どうすればこれを修正できますか?
これについてインターネットで調べてみましたが、switch ステートメントの if ステートメントに関連する AS3 は見つかりません。助けてくれてありがとう
public function enterFrame(me:Event)
{
position = objectA.y
switch(position)
{
case 221:
if (objectA.x == enemy1.x || objectA.x == enemy1.x + 10)
trace("dead1");
deadObject()
if (objectA.x == enemy2.x || objectA.x == enemy2.x + 10)
trace("dead1");
deadObject()
if (objectA.x == enemy3.x || objectA.x == enemy3.x + 10)
trace("dead1");
deadObject()
break;
}
}
public function deadObject()
{
objectA.x = 133;
objectA = 240;
}