2014-01-10 5 views
0

Мне нужно, чтобы мой персонаж приземлился на выступе и остался там, но он продолжает двигаться прямо через него. Смогу ли я создать массив для всех моих разных уступов и проверить, когда мой персонаж нападет на них? Любая помощь будет оценена по достоинству.hitTestPoint или hitTestObject?

Спасибо.

ответ

0

Обнаружение столкновений для полов и вещей на самом деле отличается от хитов в идее, которая должна постоянно видеть, что объекты касаются друг друга. Попробуй что-нибудь подобное!

//loop through all the platform objects to generate the level 
var level:Array = new Array(); 

for (var i=0; i<numChildren; i++) 
{ 
if (getChildAt(i) is platform) 
{ 
    level.push(getChildAt(i).getRect(this)); 
} 
} 



for (i=0; i<level.length; i++) 
{ 
if (player.getRect(this).intersects(level[i])) 
{ 
    if (speedX > 0) ////moving right collision and stuffs 
     { 
      player.x = level[i].left-player.width/2; 
     } 
    if (speedX < 0) ////moving left collision and stuffs 
     { 
      player.x = level[i].right+player.width/2; 
     } 
    speedX = 0 //kills the speed 
} 
} 

SpeedX является скорость, при которой персонажи перемещаются по горизонтали, и «платформа» это имя переменной, которую вы используете, как скалы. Кроме того, «игрок» может быть заменен тем, что вы вызываете на своем объекте, который идет на выступ. Так я сделал это на одном из моих компьютерных классов :) Надеюсь, что это поможет!

Смежные вопросы