*   >> Læs Uddannelse artikler >> science >> programming

Trykknap Tutorial Series - Fjender

afspille DEMO

hente kildekoden

TILBAGE TIL tutorial INDEX

I forbindelse med denne demo, en fjende er bare en nedskæring ned version af Spilleren enhed. Den vil indeholde den samme rendering, animation og rumlige komponenter, lad det en animeret sprite drages til skærmen og deltage i sammenstød afsløring.

Fjenden vil ikke flytte endnu, men i virkeligheden de fleste fjender i en platform spil ikke vil være langt mere kompliceret, hvad vi har her alligevel: generelt de vil bevæge sig rundt med nogle få meget begrænsede adfærd som at gå langs en platform eller flyver gennem luften. Det, vi ønsker, er at få en statisk fjende ind i spillet, og har spilleren reagere på det.

Oprettelse fjenden enhed gøres i EntityFactory klassen ligesom den scene, spiller og platforme.

Al koden til at skabe de box2d rumlig komponent, renderer komponent- og animation komponenter er taget næsten linje for linje fra oprettelsen af ​​afspilleren enheds

 statisk offentlig funktion createEnemy (navn:. String, scene: String, stilling: point): IEntity {var enhed: IEntity = allocateEntity (); entity.initialize (navn); Var rumlig: Box2DSpatialComponent = ny Box2DSpatialComponent (); Var collisionShape: CircleCollisionShape = ny CircleCollisionShape (); collisionShape.radius = 0,5; spatial.collisionShapes = new Array (); spatial.collisionShapes.push (collisionShape); spatial.

collisionType = ny objekttype ("Enemy", "Renderable"); spatial.collidesWithTypes = ny objekttype ("Player"); spatial.position = position; spatial.canSleep = false; spatial.canRotate = false; spatial.canMove = false; spatial.size = nye punkt (26, 20); spatial.manager = NameManager.instance.lookupComponentByName (scene, SCENE_BOX2DMANAGER_COMPONENT) som Box2DManagerComponent; entity.addComponent (rumlig "Rumlig") Var Render: SpriteRenderComponent = ny SpriteRenderComponent (); Render.positionReference = ny PropertyReference ("@ Spatial.position") entity.

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

divider = divide

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.