1. ActionScript / Говнокод #10208

    −184

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    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;
    					}
    				}
    				
    			}
    		}
    	}
    }

    динамически убираем из массива объекты, с кот. не сталкивается объект пуля

    Запостил: lammar, 06 Мая 2012

    Комментарии (4) RSS

    • *** убираем из массива объекты, с кот. не сталкивается объект пуля
      Ответить
    • Ну как бы плохо написано, но не так, чтобы прямо что-то смешное было. В чем суть? Типичный игрострой какой-то + кулхацкерство с setPropertyIsEnumerable.
      Ответить
    • гейдева
      Ответить

    Добавить комментарий