*   >> Lezen Onderwijs artikelen >> science >> programming

PushButton Tutorial Series - Enemies

SPEEL DE DEMO

Download de broncode

Terug naar de tutorial INDEX

Voor de toepassing van deze demo, een vijand is slechts een gekapt versie van de speler entiteit. Het zal dezelfde rendering, animatie en ruimtelijke componenten die hij laat een geanimeerde sprite worden gevestigd op het scherm en deel te nemen aan collision detection bevatten.

De vijand zal nog niet bewegen, maar in werkelijkheid de meeste vijanden in een platform spel zijn niet van plan om veel ingewikkelder wat we hier hebben hoe dan ook: het algemeen zullen ze bewegen met een paar zeer beperkte gedrag zoals een wandeling langs een platform of vliegen door de lucht. Wat we willen doen is een statisch vijand in het spel en de speler reageren.

Het creëren van de vijandelijke entiteit wordt gedaan in de EntityFactory klas, net als de scène, speler en platforms.

Alle code aan de Box2D ruimtelijke component, renderer component en animatie componenten maakt, worden genomen bijna lijn voor lijn van de schepping van de speler entiteit

 statische publieke functie createEnemy (naam:. String, scène: String, positie: punt): IEntity {var entiteit: IEntity = allocateEntity (); entity.initialize (naam); var ruimtelijke: 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 = positie; spatial.canSleep = false; spatial.canRotate = false; spatial.canMove = false; spatial.size = new Point (26, 20); spatial.manager = NameManager.instance.lookupComponentByName (scene, SCENE_BOX2DMANAGER_COMPONENT) als Box2DManagerComponent; entity.addComponent (ruimtelijke, "Spatial"); var Render: SpriteRenderComponent = new SpriteRenderComponent (); Render.positionReference = new PropertyReference ("@ Spatial.position"); entity.

addComponent (Render, "Render"); var Animatie: AnimationController = new AnimationController (); Animation.spriteSheetReference = new PropertyReference ("@ Render.spriteSheet"); Animation.currentFrameReference = new PropertyReference ("@ Render.spriteIndex"); Animation.defaultAnimation = "Idle"; var IdleSpriteSheet: SpriteSheetComponent = new SpriteSheetComponent (); IdleSpriteSheet.imageFilename = "../media/enemy.png"; var divider1: CellCountDivider =

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.