Так что сейчас я пытаюсь сделать игру, которая почти похожа на лабиринт. Проблема заключается в столкновении со стеной: как только персонаж ударяется о стену, я больше не могу его вытащить, он «застревает», независимо от того, в каком направлении я пытаюсь направить его после столкновения. Одно из решений, о котором я думал, будет заключаться в том, чтобы всякий раз, когда персонаж ударяется о стену, «поддерживать его», чтобы больше не обнаруживалось столкновение. Однако, когда я это делаю, он странным образом проходит сквозь стену. Вот мой код, чтобы вы, ребята, могли понять, что я делаю:
function keyPressed(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT)
{
leftArrow = true;
if(char.hitTestObject(test))
{
leftHit= true;
} else {
leftHit = false;
}
}
if (event.keyCode == Keyboard.RIGHT)
{
rightArrow = true;
if(char.hitTestObject(test))
{
rightHit= true;
} else {
rightHit = false;
}
}
}
function keyReleased(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT)
{
leftArrow = false;
}
if (event.keyCode == Keyboard.RIGHT)
{
rightArrow = false;
}
}
function walking(event:Event):void {
if (rightArrow) {
if(rightHit)
char.x -= speed;
else
char.x += speed;
}
if (leftArrow) {
if(leftHit)
char.x += speed;
else
char.x -= speed;
}
}
Большую часть этого кода я на самом деле получил от другого человека, задавшего тот же вопрос. Даже делая то, что было предложено в другой теме, проблема все равно остается. Большое спасибо за любую помощь!