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

Tryckknapp Tutorial Series - Spårning & amp; amp; Jumping

CollisionEvent.COLLISION_EVENT, OnCollision); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_STOPPED_EVENT, OnCollisionEnd);} skyddad override funktion onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_STOPPED_EVENT, OnCollisionEnd).

}

OnCollision Funktionen aktiveras när ägaren av KeyboardController komponent (spelaren enhet i vårt fall) har varit inblandat i en kollision Omdömen

 private function OnCollision (event: CollisionEvent): void {

Vi ser till att kollisionen är med en "Plattform". I framtiden kan spelaren också kolliderar med fiender, kulor, powerups osv, men ingen av dessa kollisioner är relevanta för KeyboardController. Omdömen

 if (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.

collisionType "Plattform") ) {

Sedan kollar vi att se om kollisionen normala, som du kan tänka på som en linje som pekar ut vinkelrätt mot plattformen, har ay del av minst 0,7. Detta tyder på att plattformen är inte alltför branta att stå på. Omdömen

 if (event.normal.y> 0,7) 

Om det inte är för brant, öka vi onGround variabeln för att indikera att spelaren är står på en plattform Omdömen

 onGround ++.

}}

OnCollisionEnd Funktionen gör det omvända, nedräkning av onGround variabeln när spelaren inte längre kolliderar med en plattform

 private function OnCollisionEnd (event: CollisionEvent):. void {if (ObjectTypeManager.instance. doesTypeOverlap (event.collidee.collisionType "Plattform")) {if (event.normal.y> 0,7) onGround--; }} 

onGround variabel anger nu om spelaren står på marken. I onTick funktionen kontrollerar vi att se om hoppet tangenten trycks och onGround är större än noll.

Om så spelarna vertikala hastigheten ändras för att göra det hoppa Omdömen

 public override function onTick (tickrate: Number):. Void {//... if (InputManager.isKeyDown (InputKey.UP) && onGround> 0) {velocity.y = -JumpSpeed; } //...}
Page   <<  [1] [2] 
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.