{lang: 'de'}
Flashhilfe.de - Flash Community

3d-Raum Zentrierung des Raumes an der Perspektive der Kamera [Flash 11]

 


AntwortenRegistrieren Seite1  

bilblo#1
Benutzerbild von bilblo
Beiträge: 28
Registriert: Sep 2011

03.10.2011, 23:26

Hi,

ich erzeuge mehrere Instanzen diese verteile ich zufällig im Raum x y z und weise sie einem Sprite zu. Diesen zentriere ich anfangs so das sich die "Camera" im Zentrum des Raums befindet :
ActionScript:
1
2
3
mySprite.y = stage.stageHeight/2;
mySprite.x = stage.stageWidth/2;
mySprite.z =zbreite/2;





hier verteile ich die instanzen im definiertem Raum (randomNumber erzeugt eine zufällige zahl zwischen minimum und maximum):
ActionScript:
1
2
3
mc.x=randomNumber(-xbreite,xbreite);
mc.y=randomNumber(-ybreite,ybreite);   
mc.z=randomNumber(-zbreite,zbreite);   



Und hier die Zuweisung der Tasten (A, W , S ,D R, F für die Bewegung und die Pfeiltasten für die Rotation)
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
   if (aKeyDown)   {   mySprite.x += moveSpeed;    cam_point_x += moveSpeed;  }   
   if (dKeyDown)    {   mySprite.x -= moveSpeed;    cam_point_x -= moveSpeed;  }      
   if (sKeyDown)   {   mySprite.z += moveSpeed;    cam_point_z += moveSpeed;  }      
   if (wKeyDown)   {   mySprite.z -= moveSpeed;    cam_point_z -= moveSpeed;  }   
   if (rKeyDown)   {   mySprite.y += moveSpeed;    cam_point_y += moveSpeed;  }      
   if (fKeyDown)   {   mySprite.y -= moveSpeed;    cam_point_y -= moveSpeed;  }      
   

   if (pfeilLinks)   {   mySprite.rotationY +=rotationSpeed;  }   
   if (pfeilRechts)   {   mySprite.rotationY -= rotationSpeed; }   
   if (pfeilOben)   {   mySprite.rotationX -= rotationSpeed; }   
   if (pfeilUnten)    {   mySprite.rotationX += rotationSpeed; }




cam_point_x, y z verwende ich als Hilfsvariablen für die aktuelle cameraposition.

Mein problem: Wenn man sich nach hinten bewegt (S drücken) und danach die Pfeiltasten benutzt merkt man dass sich der Raum um sein Zentrum dreht ich möchte jedoch dass sich der Raum bei jeder Bewegung um das Zentrum der Camera dreht so hätte man das gefühl dass sich die Camera dreht und nicht der Raum.

Wäre für jeden Ratschlag dankbar. Irgendwie hänge ich gerade.
Hab den Raum verkleinert damit ihr sehen könnt was ich meine.


Hier könnte ihr aktuelle version sehen:
LINK
Schlagwörter: Engine, Raum, space
Geändert von bilblo am 04.10.11 um 09:15 Uhr
candiru#2
Benutzerbild von candiru
Beiträge: 190
Registriert: May 2007

07.10.2011, 13:04

hallo,

weiß nicht genau, ob dir das bei deinem problem hilft,
aber so
ActionScript:
1
2
3
4
5
var pp:PerspectiveProjection = new PerspectiveProjection();
//pp.fieldOfView = 100;
pp.projectionCenter = new Point(x_pos, y_pos);
               
mc.transform.perspectiveProjection = pp;

kannst du das "zentrum" eines mcs festlegen. wenn du ihn im 3d space drehst, richtet sich die rotation nicht mehr an der stage sondern am neuen projectionCenter aus.

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2024 Sebastian Wichmann - Flashhilfe.de