| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Flash Developer Registriert seit: Aug 2004 Ort: Wien
Beiträge: 248
|
ich hab ein kleines problem bei der steuerung eines objektes (ein kreuz) in papervision (code befindet sich im onEnterFrame): Code: kreuz_container.localRotationZ = ((mouseX / stage.width) * 360); kreuz_container.rotationX = ((mouseY / stage.height) * 360); wenn ich zweile 1 nach zeile 2 angebe, dann funktioniert die bewegung nach oben unten nach wie vor, aber links/rechts drehen um die eigene Z-achse geht nicht so wirklich, dann zuckt das kreuz ein wenige aber dreht sich nicht richtig. ich hoffe das war irgendwie vesrständlich... ![]() edit: gut, prinzipiell mach ich da wohl einiges falsch. ich darf natürlich NUR das lokale koordinatensystem verwenden, sonst kann ich das objekt ja nicht im globalen system verschieben, dann würds nur im ursprung funktionieren... das problem ist also jetzt: wenn ich das kreuz um die x-achse drehe, dann kann ichs danach nicht mehr so wirklich um die z-achse drehen. irgendwie..klappt das nicht so ganz mit diesem code: Code: //nach oben/unten: -45° bis +45° kreuz_container.localRotationX = ((mouseY / stage.height) * 90) - 45; //kreuz drehen: -45° bis +45° kreuz_container.localRotationZ = ((mouseX / stage.width) * 90) - 45; Geändert von luschn (24-07-2008 um 15:39 Uhr) |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Oct 2006
Beiträge: 64
|
sieht das bei dir in etwas so aus? bei mir verhält es sich zumindest so wie man es erwarten würde. aber evtl kannst du ja noch etwas mehr code posten. PHP-Code: |
| | |
| | #3 (permalink) |
| Flash Developer Registriert seit: Aug 2004 Ort: Wien
Beiträge: 248
|
das ist so ziemlich der selbe code, und er führt exakt zum selben ergebnis. fahr mal mit der maus ein paar mal um das objekt herum, dann siehst du was ich meine. wie ich das sehe müsste ich um eine FIXE x-achse drehen, aber um eine variable z-achse. wenn ich nämlich zb um die z-achse drehe, dann dreht sich ja auch die x-achse mit. |
| | |
| | #4 (permalink) |
| Flash Developer Registriert seit: Aug 2004 Ort: Wien
Beiträge: 248
|
hurra, ich habs! die lösung war denkbar einfach, ich hab einen container angelegt der wiederum das eigentliche objekt beinhaltet. der container rotiert um die x-achse, das objekt selbst um seine eigene z-achse. Code: kreuz_container_main.addChild(kreuz_container_sub); //eigentliches objekt in den haupt-container default_scene.addChild(kreuz_container_main); Code: override protected function processFrame():void
{
//nach oben/unten: -45° bis +45°
kreuz_container_main.localRotationX = ((mouseY / stage.height) * 90) - 45;
//kreuz drehen: -45° bis +45°
kreuz_container_sub.localRotationZ = ((mouseX / stage.width) * 90) - 45;
} |
| | |
| | #5 (permalink) |
| Flash Developer Registriert seit: Aug 2004 Ort: Wien
Beiträge: 248
|
so, nächstes problem: ich hab im sub-container ein 3d-objekt. von diesem weiss ich zu beginn die koordinaten (zb: kreuz_container_main.x+kreuz_container_sub.x+testo bjekt.x)...vielleicht gibts dafür ne schönere möglichkeit, aber es funkt zumindest mal. ich brauche auf jeden fall die koordinaten relativ zum globalen koordinatensystem. jetzt muss ich aber die koordinaten bei jedem screen-refresh wissen, allerdings bleiben die IMMER konstant. vermutlich weil...das lokale koordinatensystem gedreht wird? keine ahnung... |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |