*   >> Lese Utdanning Artikler >> science >> programming

AS3IsoLib Tutorial Series - Camera

spille demoen

laste ned kildekoden

TILBAKE TIL TUTORIAL INDEX

Et vanlig begrep i 3d applikasjoner er at av et kamera. Et kamera er vanligvis et bevegelig objekt som kan plasseres i en scene, slik at scenen som betraktes fra forskjellige vinkler, uten å måtte endre plasseringen av objekter i scenen. I as3isolib den IsoView klassen implementerer funksjonaliteten til et kamera, slik at du kan se en scene fra forskjellige posisjoner.

Main.mxml

Scenen er skapt akkurat som det var før.

Anmeldelser

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

I stedet for å legge scenen til Flex programmet direkte, vil vi i stedet lage et IsoView objekt, og legge scenen til den ved hjelp av addScene funksjonen

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

Vi deaktivere IsoView klipping (der gjenstander utenfor visningen av scenen ikke er tegnet) og grensen, og deretter vise det ved å legge det som et barn av SpriteUIComponent

<. pre> view.

showBorder = false; view.clipContent = false; spriteContainer.addChild (vis);

Den hoppende boks fra den siste opplæringen er opprettet igjen så vi har noe å vise

 box1 = new IsoBox (.); box1.setSize (75, 75, 75); box1.moveTo (0, 0, 50); scene.addChild (box1); TweenMax.to (box1, 2, {z: 0, yoyo: true, gjentar: -1}); this.addEventListener (Event.ENTER_FRAME, enterframe); 

For å bevege "kamera" over isometrisk scene vi trenger å lytte etter tre mus hendelser. Den første er når musen klikkes.

Her har vi satt pannen variabelen til true, som vi vil bruke senere for å indikere at brukeren ønsker å panorere kameraet over scenen

 this.addEventListener (MouseEvent.MOUSE_DOWN, funksjon (event. MouseEvent): void {pan = true;. 

Vi trenger også å notere posisjonen til musepekeren når knappen ble klikket Dette er fordi bevegelse av kameraet er basert av bevegelsen av relativ bevegelse av musen mellom rammer . Men MouseEvent klasse ikke holder rede på denne relative bevegelse, istedenfor bare å forsyne den absolutte posisjonen til musen.

Ved å lagre posisjonen til musen i lastX og lasty variabler, kan vi bestemme den relative bevegelse av musa mellom rammene.

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

Når musen slippes vi ønsker å stoppe kameraet panorering, så pan er satt til false

 this.addEventListener

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.