*   >> Lecture Éducation Articles >> science >> la programmation

PushButton Tutorial Series - Enemies

jouer à la démo

télécharger le code SOURCE

Retour à la index du tutoriel

Pour les fins de cette démo, un ennemi est juste un réduire version de l'entité de joueur. Il contiendra le même rendu, l'animation et des composantes spatiales qu'elle permettent un sprite animé être dessiné à l'écran et de participer à la détection de collision.

L'ennemi ne se déplacera pas encore, mais en vérité, la plupart des ennemis dans un jeu de plate-forme ne sont pas va être beaucoup plus compliqué ce que nous avons ici de toute façon: en général, ils vont se déplacer avec un peu de comportements très limitées comme marcher le long d'une plate-forme ou voler à travers l'air. Ce que nous voulons faire est d'obtenir un ennemi statique dans le jeu et avoir le lecteur réagir.

Création de l'entité ennemie se fait dans la classe EntityFactory tout comme la scène, joueur et plates-formes.

Tout le code pour créer la composante spatiale, composants de moteur de rendu et d'animation composants Box2D sont prises presque trait pour trait à la création de l'entité de joueur

 statique fonction publique createEnemy (nom:. String, scene: String, la position: Point): IEntity {var entité: IEntity = allocateEntity (); entity.initialize (nom); var spatiale: Box2DSpatialComponent = new Box2DSpatialComponent (); var collisionShape: CircleCollisionShape = new CircleCollisionShape (); collisionShape.radius = 0,5; spatial.collisionShapes = new Array (); spatial.collisionShapes.

push (collisionShape); spatial.collisionType = new ObjectType ("Enemy", "Renderable"); spatial.collidesWithTypes = new ObjectType ("Player"); spatial.position = poste; spatial.canSleep = false; spatial.canRotate = false; spatial.canMove = false; spatial.size = new Point (26, 20); spatial.manager = NameManager.instance.lookupComponentByName (scène, SCENE_BOX2DMANAGER_COMPONENT) que Box2DManagerComponent; entity.addComponent (spatiale, "spatiale"); var Render: SpriteRenderComponent = new SpriteRenderComponent (); Render.positionReference = new PropertyReference ("@ Spatial.position"); entity.

addComponent (Render, "Render"); var Animation: AnimationController = new AnimationController (); Animation.spriteSheetReference = new PropertyReference ("@ Render.spriteSheet"); Animation.currentFrameReference = new PropertyReference ("@ Render.spriteIndex"); Animation.defaultAnimation = "Idle"; var IdleSpriteSheet: SpriteSheetComponent = new SpriteSheetComponent (); IdleSpriteSheet.imageF

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.