Мне было интересно узнать, удалось ли проверить столкновение по имени экземпляра, а не отдельные имена mc. У меня около 150-200 объектов (точек для игры pacman), которые мне нужно проверить на столкновение и хотите сделать это эффективно. Благодаря!Как проверить столкновение для нескольких символов
ответ
Если у вас есть экземпляр с именем точка, и игрок, вы могли бы сделать что-то вроде этого:
//a var to hold each loop iteration's dot for convenience
var tmpDot:DisplayObject;
//loop 200 times from 1 - 200
for(var i:int=1;i<= 200;i++){
//getChildByName gets an instance from a string, in this case dot plus i (i is the current iteration number)
tmpDot = getChildByName("dot" + i);
//check if the dot exists and is hitting the player
if(tmpDot && tmpDot.hitTestObject(player)){
//hit a dot, do something here like remove the dot
removeChild(tmpDot);
//increment points etc.
//if there's no possibility of the player hitting more than one dot at a time, then for efficiency you should break out of this loop
break;
}
}
Теперь, как уже упоминались в комментариях к вашему вопросу, что дает 200 точек имя экземпляра является утомительным. Более простым способом было бы взять вашу точку MovieClip в вашей библиотеке, перейти к ее свойствам и экспортировать ее для ActionScript (скажем, вы дали ей имя класса Dot
). Тогда то, что вы могли бы сделать, это в самом начале уровня найти все объекты, точечные, что вы имеете на временной шкале (без имен экземпляров не требуются) и добавить их в массив:
//DO THIS ONLY WHEN THE LEVEL STARTS
//create a vector/array to store all your dots for better speed
var allDots:Vector.<Dot> = new Vector.<Dot>();
//iterate over all the children of this timeline frame
for(var i:int=0;i<numChildren;i++){
//if the item is a Dot, add it to the array
if(getChildAt(i) is Dot){
allDots.push(getChildAt(i) as Dot);
}
}
Теперь вы можете сделать такие как:
//YOU PROBABLY WANT TO DO THIS EITHER EVERY FRAME, OR WHENEVER THE PLAYER MOVES
//flag to see if all dots are eaten
var allEaten:Boolean = true;
var tmpDot:Dot;
for(var i:int=0;i<allDots.length;i++){
tmpDot = allDots[i];
//.... same as the top code example at this point
if(tmpDot && tmpDot.hitTestObject(player)){
removeChild(tmpDot);
//do anything else you need to do when a dot is eaten
//if we've already determined that we haven't eaten all the dots, then break the loop
if(!allEaten) break;
}
//if a dot has a parent, then they haven't been all eaten
if(tmpDot.parent){
allEaten = false;
}
}
Это действительно помогло, спасибо вам большое, +1, но у меня возникают проблемы, обертывающие мою голову вокруг того, как добавить их в массив, в любом случае спасибо! – user2580555
- 1. Как проверить строку для нескольких определенных символов?
- 2. Как проверить ввод .indexOf для нескольких символов?
- 3. Как проверить хеш-столкновение
- 4. Android, Как проверить столкновение двух поворотных просмотров
- 5. Столкновение нескольких файлов FileSystemWatchers?
- 6. Как проверить строку для нескольких конкретных символов в java
- 7. Unity3D Столкновение с контроллером символов
- 8. Проверить столкновение между двумя формами
- 9. проверить столкновение между определенными divs?
- 10. проверить массив для символов
- 11. Проверить столкновение между прямоугольники AS3
- 12. Как проверить, когда столкновение двух объектов
- 13. Three.js как проверить столкновение с шейдерной
- 14. JS: Как проверить столкновение большого количества элементов?
- 15. Как проверить столкновение прямоугольника на линии
- 16. Как проверить столкновение между мячом и линией
- 17. Как проверить столкновение с игроком и мячом?
- 18. Как проверить столкновение для повернутого объекта в openGl
- 19. Столкновение через контроллер символов не работает
- 20. Как проверить последовательность символов
- 21. проверить строку для недопустимых символов
- 22. Проверить строку для алфавитных символов
- 23. Как проверить textarea для недопустимых символов
- 24. Как проверить строку для определенных символов? (C#)
- 25. Как проверить изображения для пользовательских символов?
- 26. Функциональное столкновение при реализации нескольких интерфейсов
- 27. Проверить столкновение объектов C#: 3D (XYZ)
- 28. AS3 - Упреждающее столкновение для MMO
- 29. Как проверить идентификатор электронной почты для символов UTF -8
- 30. Лучший способ проверить столкновение игровых объектов
Да, конечно, возможно. Надеюсь, вы не назовете каждую точку 'dot1' ... и т. Д. Вплоть до' dot200'. Как вы добавляете их на сцену? –
У меня есть mc с экземпляром экземпляра в моей библиотеке. @TaylorSwift – user2580555