*   >> Leitura Educação Artigos >> science >> programação

AS3IsoLib Tutorial Series - Camera

jogar o demo

BAIXAR O CÓDIGO FONTE

Voltar ao Índice TUTORIAL

Um conceito comum em aplicações 3D é a de uma câmera. Uma câmara é geralmente um objecto móvel que pode ser posicionado em uma cena, permitindo que a cena a ser visualizada a partir de ângulos diferentes, sem ter de alterar a posição dos objectos dentro da cena. Em as3isolib a classe IsoView implementa a funcionalidade de uma câmera, permitindo que você visualize uma cena de diferentes posições.

main.mxml

A cena é criado exatamente como era antes.


 appComplete função protegida (): void {var spriteContainer: SpriteUIComponent = new SpriteUIComponent (); this.addChild (spriteContainer); cena = new IsoScene (); 

Em vez de adicionar a cena para a aplicação Flex diretamente, nós em vez disso, criar um objeto IsoView, e adicionar a cena a ele usando a função addScene

 view = new IsoView. (); view.addScene (cena); 

Nós desativar o recorte IsoView (onde os objetos fora da vista da cena não são desenhados) e da beira, e, em seguida, exibi-lo adicionando-o como um filho do SpriteUIComponent

<. pre> view.

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

A caixa de salto a partir do último tutorial é criado de novo por isso temos algo a ver

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

A fim de avançar a "câmera" acima da cena isométrica precisamos ouvir por três eventos de mouse. A primeira é quando o mouse é clicado.

Aqui vamos definir a variável de pan a verdade, o que nós vamos usar mais tarde para indicar que o usuário deseja mover a câmera sobre a cena

 this.addEventListener (MouseEvent.MOUSE_DOWN, função (event:. MouseEvent): void {pan = true;. 

Nós também precisamos fazer uma nota da posição do cursor do mouse quando o botão foi clicado Isso é porque o movimento da câmera é baseado fora o movimento fora do movimento relativo do mouse entre os quadros . No entanto classe MouseEvent não manter uma faixa de este movimento relativo, em vez só supre a posição absoluta do mouse.

Ao armazenar a posição do mouse na lastX e variáveis ​​Lasty, podemos determinar o movimento relativo do mouse entre os quadros.

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

Quando o mouse é liberado queremos p

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.