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
Trykknap Tutorial Series - Parallax Background
- Cassini Opdagede Dione Tilstedeværelse af Oxygen
- Associativ Container i C ++ Simplified
- ActivePerl Subrutiner
- Grundlæggende om Css Fonts
- Sådan adgang til og bruge en Windows-kommando line
- DirectX vs OpenGL
- Objektorienterede Programming
- Nogle C foruddefinerede funktioner
- Farm Management Software
- Identifikation dataelementer og Entities