Привет всем, поэтому у меня возникают проблемы с отображением игрока. Вектор живет в массиве, добавленном на сцену. Когда я впервые запускаю свою игру, жизнь добавляется правильно, и когда враг попадает в игрока, они удаляются правильно, но когда я добавляю магазин, где вы можете приобрести дополнительную жизнь, я получаю ошибку, где вектор жизни добавляется на сцену но они не удаляют, когда противник ударяет игрока, и они просто там.Проблема с отображением игрока Вектор живет на сцене
в конструкторе У меня есть nLives = 2; addPlayerLivesToStage();
Вот addPlayerLivesToStage();
функция, а также removePlayerLives();
private function addPlayerLivesToStage():void
{
var startPoint:Point = new Point((stage.stageWidth/2) + 240, (stage.stageHeight/2) - 180);
var xSpacing:Number = 30;
lives = new Vector.<Sprite>();
for (var i:int = 0; i < nLives; i++)
{
var playerLives:mcPlayerLives = new mcPlayerLives();
playerLives.x = startPoint.x + (xSpacing * i);
playerLives.y = startPoint.y;
addChild(playerLives);
lives.push(playerLives);
//aPlayerLivesArray.push(playerLives);
}
}
private function removePlayerLive():void
{
//Remove live from screen
removeChild(lives[lives.length - 1]);
lives[lives.length - 1] = null;
lives.splice(lives.length - 1, 1);
}
Сейчас в моих играх ENTER.FRAME Loop У меня есть функция purchaseExtraLifeFunc();
, которая управляет Закуп и является должен добавить 1 жизнь на сцену.
Как Итак:
private function purchaseExtraLifeFunc():void
{
if (nCoins >= 5 && purchaseItem)
{
trace("purchase life");
//remove coins from cost of purchase
nCoins -= 5;
updatecoinsTextScore();
//add extra life
nLives += 1;
addPlayerLivesToStage();
}
else
{
purchaseItem = false;
}
}
, как вы можете сказать, что я добавить 1 Живи и вызовите функцию addPlayerLivesToStage.
THis не работает правильно, и я все из идей, если кто-то может помочь мне с этим я бы действительно aprreciate это
Да, вы правы, это именно то, что происходит и когда я живу.length == 0 на моем endGameFunction он игнорирует лишние живые спрайты на сцене, и они не удалены. Итак, что именно вы имеете в виду, чтобы удалить спрайты жизни в начале функции? Все еще смущаюсь по поводу этой части. Но большое спасибо за помощь, насколько я ее ценю. – Nathan
Я добавил life = new Vector.(); к моей функции конструктора и удалил ее из addPlayerLivesToStage(); Функция, но это все еще, похоже, не устраняет проблему. Не уверен, что делать дальше. –
Nathan
Интересно, что с этим новым изменением мне также нужно будет обновить мой removePlayerLive(); функция правильная? когда враг ударяет игрока, чтобы удалить живое со сцены? – Nathan