public class DamageOnContactConponent étend EntityComponent {dommages public var: int = 0; fonction publique DamageOnContactConponent () {super (); } Fonction protégée override onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, onCollision); } Protected override fonction onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, onCollision); } Private function onCollision (event: CollisionEvent): void {var mySpatial: Box2DSpatialComponent = owner.lookupComponentByType (Box2DSpatialComponent) que Box2DSpatialComponent; var autre: Box2DSpatialComponent = event.collidee === mySpatial event.collider:? event.collidee; var otherHealth: HealthComponent = other.owner.
lookupComponentByType (HealthComponent) que HealthComponent; si (otherHealth! = null) otherHealth.damage (dommages); (owner.destroy); }}
Le nouveau composant de DeathHandlerComponent définit la fonction onDied d'être appelé dans le cas d'un événement HealthComponent.DIED. A l'intérieur du onDied une nouvelle instance du modèle d'explosion est créé et placé. Notez que nous essayons de sortir une référence à la fois une composante Box2DSpatialComponent et SimpleSpatialComponent afin de définir la position initiale de l'explosion.
Bien sûr, nous savons que l'entité d'explosion contient un SimpleSpatialComponent (parce que ce que nous jeu dans le fichier XML), mais je suis parti ce code pour mettre en évidence l'un des problèmes avec le système de conception de composant PushButton, qui est que les composants qui exécutent la même fonction sont très souvent sans rapport.
Dans cette affaire, tant la Box2DSpatialComponent et SimpleSpatialComponent fournissent un moyen pour positionner l'entité dans l'espace, la variable de position réelle est pas spécifié dans le cadre d'une interface commune ou de la classe de base, nous obligeant à vérifier l'existence de ces deux composantes en essayant de définir la position initiale
DeathHandlerComponent public class étend EntityComponent {PositionReference public var:. PropertyReference = null; DeathHandFaire un clone de Space Invaders avec PushButton - Tuer le Player
- Programmation Tutoriel Papervision 3D - Tweener
- C # - Construire un convertisseur Fahrenheit /Celsius
- Comment faire des jeux pour mobile Platforms
- Liste de Windows Box Styles
- Programmation Papervision 3D Tutorial - LOD
- Javascript Fonction Basics
- Chaîne de base en C ++
- Application console pour appeler l'événement en utilisant délégué en C # 1.…
- Mysql: conception relationnelle Tables
- Données MySQL Types