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

AS3IsoLib Tutorial Series - Camera

afspille DEMO

hente kildekoden

TILBAGE TIL tutorial INDEX

Et fælles koncept i 3D-programmer er, at et kamera. Et kamera er normalt en bevægelig genstand, der kan placeres i en scene, giver den sekvens, der ses fra forskellige vinkler uden at ændre placeringen af ​​objekterne i scenen. I as3isolib den IsoView klasse implementerer funktionaliteten af ​​et kamera, så du kan se en scene fra forskellige positioner.

Main.mxml

Scenen er skabt lige som det var før.


 beskyttet funktion appComplete (): void {var spriteContainer: SpriteUIComponent = ny SpriteUIComponent (); this.addChild (spriteContainer); scene = ny IsoScene (); 

I stedet for at tilføje den scene til Flex ansøgning direkte, vil vi i stedet skabe et IsoView objekt, og føje den scene til det ved hjælp af addScene funktionen

 view = ny IsoView. (); view.addScene (scene); 

Vi deaktiverer IsoView klipning (hvor genstande uden for visningen af ​​scenen ikke er tegnet) og grænsekontrol, og derefter vise det ved at tilføje det som et barn af SpriteUIComponent

<.

pre> view.showBorder = false; view.clipContent = false; spriteContainer.addChild (view);

hoppende feltet sidste tutorial er skabt igen, så vi har noget at se

 box1 = ny IsoBox (.); box1.setSize (75, 75, 75); box1.moveTo (0, 0, 50); scene.addChild (box1); TweenMax.to (box1, 2, {z: 0, Yoyo: sandt, gentager: -1}); this.addEventListener (Event.ENTER_FRAME, enterFrame) 

For at bevæge "kamera" over isometriske scene vi nødt til at lytte efter tre musebegivenheder. Den første er, når musen klikkes.

Her satte vi gryden variabel til sand, som vi vil bruge senere at angive, at brugeren ønsker at panorere kameraet hen over scenen

 this.addEventListener (MouseEvent.MOUSE_DOWN, funktion (begivenhed:. MouseEvent): void {pan = true;. 

Vi skal også gøre et notat af positionen af ​​musemarkøren når knappen blev klikket Dette fordi bevægelsen af ​​kameraet er baseret ud bevægelsen fra den relative bevægelse af musen mellem rammer . Men MouseEvent klasse ikke holde styr på denne relative bevægelse, i stedet kun at levere den absolutte position af musen.

Ved at lagre positionen af ​​musen i lastX og Lasty variabler, kan vi bestemme den relative bevægelse af musen mellem rammer.

 lastX = event.stageX; Lasty = event.stageY;});. 

Når musen slippes vi ønsker at stoppe kameraet panorering, så gryden er sat til false

 this.addEventListener (M

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