2014-04-06 3 views
0

Я сделал игру в AS3 для Android, и когда я тестирую ее на своем ПК, она отлично работает, но когда я пытаюсь использовать Android, hitTests медленно замедляет мою игру, например, у меня есть один уровень, на котором вы должны собирать 9 монет, и всякий раз, когда ваши персонажи обо собрать его, игра зависает на некоторое время, и код, который я используюЕсть ли способ сделать hitTest в AS3 быстрее?

if (coin1.hitTestObject(hero)){ 
coin1.visible=false; 
gate.y-=10; 
} 

это все, так что в основном только две задачи для программы для выполнения на Трассировка, но это замедляет игру ... Также моя игра всего лишь 600kb большая, я не думаю, что это другие части кода, у нее нет звуков или чего-то еще, все это всего лишь hitTests в игре в основном ...

ответ

1

Вы можете обменять hitTestObject с другим подходом. Рассчитайте расстояние до монет от героя и удалите их, если они достаточно близко. Такая математика должна работать быстрее:

var someDistance: Number = 4; 
var dx: Number = hero.x - coin.x; 
var dy: Number = hero.y - coin.y; 

if(Math.sqrt(dx*dx + dy*dy) <= someDistance){ 
    //Gotcha! Hero "collided" with coin 
} 
+0

hmm, мне нужно попробовать, мой код длится 500 строк, так что потребуется некоторое время, чтобы заменить его ха-ха, спасибо в любом случае – Luka

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