*   >> läser Utbildning artiklar >> science >> programming

Tryckknapp Tutorial Series - Enemies

spela demo Omdömen

ladda ner källkoden Omdömen

TILLBAKA TILL Handledningen INDEX Omdömen

I den här demon, är en fiende bara en skära ner version av spelarobjektet. Det kommer att innehålla samma rendering, animering och rumsliga komponenter som gör det en animerad sprite dras till skärmen och delta i kollisionsdetektering.

Fienden kommer inte att flytta ännu, men i själva verket de flesta fiender i ett plattformsspel inte kommer att vara mycket mer komplicerat vad vi har här ändå: i allmänhet de kommer att flytta runt med ett fåtal mycket begränsade beteenden som att gå längs en plattform eller flyga genom luften. Vad vi vill göra är att få en statisk fiende in i spelet och har spelaren reagerar på det. Omdömen

Att skapa fienden enheten sker i EntityFactory klassen precis som scenen, spelare och plattformar.

All kod för att skapa rumsliga komponent renderer komponenter och animation komponenter Box2D tas nästan rad för rad från skapandet av spelarobjektet Omdömen

 statisk public function createEnemy (namn. String, scenen: String, läge: Point): IEntity {var enhet: IEntity = allocateEntity (); entity.initialize (namn); var spatial: Box2DSpatialComponent = new Box2DSpatialComponent (); var collisionShape: CircleCollisionShape = new CircleCollisionShape (); collisionShape.radius = 0,5; spatial.collisionShapes = new Array (); spatial.collisionShapes.push (collisionShape); spatial.

collisionType = ny objekttyp ("fiende", "Renderable"); spatial.collidesWithTypes = new objekttyp ("Spelare"); spatial.position = position; spatial.canSleep = false; spatial.canRotate = false; spatial.canMove = false; spatial.size = new Point (26, 20); spatial.manager = NameManager.instance.lookupComponentByName (scen, SCENE_BOX2DMANAGER_COMPONENT) som Box2DManagerComponent; entity.addComponent (rumslig, "Spatial"); 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.imageFilename = "../media/enemy.png"; var divider1: CellCountDivider = new CellCountDivider (); divider1.

xCount = 2; IdleSp

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.