Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
override protected function checkCollision():void
{
var allCollisionObjects:Object = (root as MovieClip).allCollisionObjects;
allCollisionObjects.setPropertyIsEnumerable("monsterHead", true);
allCollisionObjects.setPropertyIsEnumerable("item", false);
allCollisionObjects.setPropertyIsEnumerable("trashBin", true);
allCollisionObjects.setPropertyIsEnumerable("container", true);
allCollisionObjects.setPropertyIsEnumerable("platform", true);
allCollisionObjects.setPropertyIsEnumerable("elevatorToggleSwitch", true);
allCollisionObjects.setPropertyIsEnumerable("hero", false);
collision: for (var collisionObject in allCollisionObjects)//создаем метку главного цикла
{
for each (var targetObject:* in allCollisionObjects[collisionObject].array)
{
if (this.hitTestObject(targetObject))
{
switch (allCollisionObjects[collisionObject].name)
{
case CollisionWith.MONSTER_HEAD:
targetObject.reduceHealth(this.bullet.getDamage());
if (this.bullet is Morgenstern)
{
if (! targetObject.killed) targetObject.monsterheads::pushBack(direction);
else targetObject.monsterheads::alternativeDeath(direction);
}
break;
case CollisionWith.TRASH_BIN:
targetObject.collector.trashbin::remove(targetObject);
break;
case CollisionWith.CONTAINER:
if (this.bullet is Morgenstern) targetObject.sound.play(600);
break;
case CollisionWith.PLATFORM:
trace("hitted!!!");
break;
case CollisionWith.ELEVATOR_TOGGLE_SWITCH:
targetObject.parent.collector.elevator::toggleSwitch(targetObject);
break;
}
this.dispatchEvent(new Event(HITTED));
break collision;
}
}
}
}
}
}
динамически убираем из массива объекты, с кот. не сталкивается объект пуля
Ну как бы плохо написано, но не так, чтобы прямо что-то смешное было. В чем суть? Типичный игрострой какой-то + кулхацкерство с setPropertyIsEnumerable.
штык - вот пиздец