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

Het maken van een Space Invaders kloon met PushButton - Bullets

ert de entiteit waartoe zij behoort uit het spel

 openbare klasse DamageOnContactConponent breidt EntityComponent {public var schade:. Int = 0; publieke functie DamageOnContactConponent () {super (); } Beschermde override functie onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Beschermde override functie onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Prive-functie OnCollision (event: CollisionEvent): void {owner.

destroy (); }

De DestroyIfOffScreenComponent component controleert de positie van de entiteit elk frame en verwijdert de entiteit waartoe zij behoort uit het spel als het op het scherm is verhuisd uit.

 openbare klasse DestroyIfOffScreenComponent breidt TickedComponent {[TypeHint (type = "flash.geom.Point")] public var positionReference: PropertyReference; public var screenWidth: int = 480; public var screenHeight: int = 384; public var sideBuffer: int = 32; publieke functie DestroyIfOffScreenComponent () {super (); } Public override functie onTick (tickrate: Number): void {super.

onTick (tickrate); var positie: Point = owner.getProperty (positionReference); if (positie == null) return; if (position.x> screenWidth + sideBuffer || position.x screenHeight + sideBuffer || position.y

De PlayerControllerComponent onTick functie is gewijzigd om het aan de kogels te vuren. Eerst tellen we naar een timer genaamd timeToNextShot dat is opgehoogd elke keer een kogel wordt afgevuurd

 openbare override functie onTick (tickrate: Number):. leegte {//...

timeToNextShot - = tickrate; timeToNextShot = timeToNextShot

Als de spatiebalk is ingedrukt en de timeToNextShot gelijk is aan nul we reset de timeToNextShot teller en een nieuw exemplaar van de PlayerBullet template. De kogels positie en snelheid zijn zo ingesteld dat het op het scherm naar de spelers positie verschijnt.

 if (InputManager.isKeyDown ( InputKey.SPACE) && timeToNextShot == 0) {timeToNextShot = timeBetweenShots; var kogel: IEntity = TemplateManager.instance.instantiateEntity (bulletEntityName); if (kogel = null) {var ruimtelijke: Box2DSpatialComponent = bullet.

lookupComponentByType (Box2DSpatialComponent) als Box2DSpatialComponent ; spatial.position = new Point (position.x, position.y); spatial.linearVelocity = new Point (0, speed); }} //...}

Als u de vorige les serie kunt u zich herinneren dat

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