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

Att göra en Space Invaders klon med tryckknapp - Den player

en rör sig horisontellt Omdömen
 public var screenWidth. int = 480; public var Hastighet: Number = 200; public var sideBuffer: int = 32; 

Som en allmän regel konstruktören av en komponent får inte innehålla någon kod. När en ny komponent skapas, och konstruktören kallas, är det inte är knutna till en enhet. Även om de inte används här, onAdd och onRemove funktioner är i huvudsak motsvarar konstruktören och destructor (för de C ++ programmerare där ute) katalog

 public function PlayerControllerComponent () {super (). } 

onTick funktionen är där vi uppdaterar spelaren.

Först får vi en referens till enheter hastighet och position. Dessa värden innehas av den rumsliga komponenten och kopplade i definitionen av XML-mall, men det gör ingen skillnad för PlayerControllerComponent där dessa värden kommer ifrån. Denna typ av lös koppling är en av aspekterna av tryckknappen komponentdesignsystem. Den PlayerControllerComponent vet hur man ändrar läget och hastigheten hos en enhet, men det bryr sig inte hur läget och hastigheten används Omdömen

 public override function onTick (tickrate: Number):. Void {super.onTick (tickrate ); var hastighet: Point = owner.

getProperty (velocityReference); var läge: Point = owner.getProperty (positionReference),

Det finns alltid en risk att fastighets referenserna inte fastställdes, i vilket fall positions- och hastighetsvariabler kommer att vara noll. Även om frisläppandet Flash Player misslyckas tyst med dessa typer av fel, kan vi lika gärna ta itu med denna möjlighet graciöst här genom att inte går vidare. Omdömen

 if (hastighet == null || läge == null) avkastning , 

Först vill vi bundna positionen för spelaren så att den inte kommer att röra sig utanför kanten på skärmen Omdömen

 if (position.

x> screenWidth - sideBuffer) position.x = screenWidth - sideBuffer. else if (position.x

Sedan behöver vi uppdatera hastigheten beroende på vilken piltangent trycks eventuella Omdömen

 if (InputManager.isKeyDown (InputKey.LEFT)) {velocity.x =. - hastighet;} else if (InputManager.isKeyDown (InputKey.RIGHT)) {velocity.x = hastighet;} else {velocity.x = 0;.} 

Vi synkroniseras sedan dessa ändringar tillbaka till moderföretaget Omdömen < pre> owner.setProperty (positionReference, position), owner.setProperty (velocityReference, hastighet);}}

References.

as Omdömen

Även om tryckknapp kommer att hantera skapandet av komponenter från klassnamnet strängar i XML fil, Actionscript-kompilatorn själv

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