Actionscript3 Простая путаница при столкновении платформ
Я делаю 2D платформерную игру и пытаюсь добавить столкновения к платформам, чтобы при попадании персонажа он не проходил. Я изо всех сил пытаюсь найти синтаксис, чтобы использовать, чтобы создать это столкновение. Пока это то, что у меня есть.
Также я все еще хотел бы иметь возможность использовать hitTestObject в операторе if.
Спасибо
public function platform1Collision():void
{
if (fireboy1.hitTestObject(Platform1))
{
//fireboy1 cannot pass through
}
}
1 ответ
Вы, вероятно, захотите предотвратить fireboy1
"s y
собственность от расширения прошлого Platform1
"s y
имущество:
function platform1Collision():void
{
if(fireboy1.hitTestObject(Platform1))
{
if(fireboy1.y > Platform1.y)
{
fireboy1.y = Platform1.y + Platform1.height;
}
else
{
fireboy1.y = Platform1.y - fireboy1.height;
}
}
}
ПРИМЕЧАНИЕ. Приведенный выше пример кода предполагает ориентацию сверху слева для обоих fireboy1
а также Platform1
,
Отредактированный: вышеупомянутый отредактированный код позволит fireboy1
идти под Platform1
, но не пройти через это.
Это очень простой пример, чтобы дать вам представление о типе логики, которую вы можете использовать. Если вы хотите разрешить fireboy1
пройти через Platform1
снизу вам придется обновить логику, чтобы учесть это. Например, если вы вытащите if/else
и просто автоматически размещать fireboy1
выше Platform1
каждый раз, когда они сталкиваются, это будет выглядеть так, как будто player1
прыгает на Platform1
когда к нему приближаются снизу.