4 registered members (ozgur, Ayumi, VHX, monarch),
1,161
guests, and 4
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Ich bin zu dumm ;-)
#439018
03/25/14 15:30
03/25/14 15:30
|
Joined: Mar 2014
Posts: 25
Tirti
OP
Newbie
|
OP
Newbie
Joined: Mar 2014
Posts: 25
|
Hallo,
wie der Titel schon sagt: "Ich bin zu dumm" Ich könnte es jetzt auf meine mangelnde Schulbildung schieben, aber ich glaube das zählt nicht.
Da ich nen mega Newbie bin, zieht da glaube ich schon eher (8 Tage Lite-C und nie davor Programmiert).
Habe derweil unzählige Tutorials gelesen und auch selber rumprobiert, aber es will nicht.
Nu das eigentliche Problem:
Jeder macht eine Ego oder Third Person View/Camera. Das ist ja auch recht easy. Es gibt 2 Mrd Tutorials dafür, aber keiner mit ner Iso Perspektive.
Ich Setzte also meine Camera, alles easy. Schreibe eine function damit ich die Camera wenn ich die rechte Mousetaste gedrückt halt verschieben und drehen kann. Zoomen mit Mouse Rad auch kein Ding. Jetzt kommt es, wie schaffe ich es (vielleicht doch weil nur Hauptschule) das wenn ich den camera.pan sagen wir mal um 37° ändere das der Zom noch korrekt funktioniert. Da mien Zoom auf Y X Z Achse aufsetzt und die ja Global sind passt das nach einer kleinen Drehung nicht mehr. Ergo Zoomt meine Camera nach einer Drehung schräg :-(
Alles klappt, MouseCursor, Entitys Clickbar mit Events nur das @*+! <---selbst Zensiert Zoomen nach einem Kamera schwenk nicht mehr.
Brauche echt Hilfe, weil "Ich bin zu dumm"
Grüße Tirti
P.S: Habe ich vergessen, habe meinen camera.pan mit Modulo 360 genommen, somit weis ich ja welcher Winkel die camera gerade hat. Wobei mir auch das nicht wirklich hilft :-(
Last edited by Tirti; 03/25/14 15:41.
|
|
|
Re: Ich bin zu dumm ;-)
[Re: Tirti]
#439020
03/25/14 15:45
03/25/14 15:45
|
Joined: Oct 2011
Posts: 1,082 Germany
Ch40zzC0d3r
Serious User
|
Serious User
Joined: Oct 2011
Posts: 1,082
Germany
|
Den zoom macht man (je nach dem was du meinst) mit camera.arc Falls es das nicht ist was du willst solltest du den "zoom" vector natürlich drehen bevor du ihn wirklich zoomst:
VECTOR vZoom;
vec_set(vZoom, vector(myzoom, 0, 0));
vec_rotate(vZoom, camera.pan);
vec_add(vZoom, camera.x);
Und das ist es Vektorrechnung lerne ich auch grade erst und bin q2(1 Jahr vor abi)
Last edited by Ch40zzC0d3r; 03/25/14 17:55.
|
|
|
Re: Ich bin zu dumm ;-)
[Re: Tirti]
#439021
03/25/14 15:47
03/25/14 15:47
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
Stell dich nicht bekloppter dar als du bist, hat mit Hauptschule ers recht nix zu tun.
Poste vielleicht mal deinen code, kann so nicht viel rauslesen (schau ich mir dann an wenn ich zuheuse bin)
POTATO-MAN saves the day! - Random
|
|
|
Re: Ich bin zu dumm ;-)
[Re: Kartoffel]
#439031
03/25/14 18:15
03/25/14 18:15
|
Joined: Mar 2014
Posts: 25
Tirti
OP
Newbie
|
OP
Newbie
Joined: Mar 2014
Posts: 25
|
HI Kartoffel, also bitte nicht Hauen. Das war der letzte nicht brauchbare Versuch
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function set_camera()
{
camera.tilt = -30;
camera.y = 0;
camera.x = -220;
camera.z = 200;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function move_cam()
{
while(1)
{
if(mouse_right == 1)
{
if(mickey.z < 0)
{
camera.pan += mickey.z*time_step;
}
if (mickey.z > 0)
{
camera.pan -=mickey.z*time_step;
}
}
else
{
if (mickey.z < 0)
{
if (camera.z == 200)
{
camera.z +=0;
camera.x -=0;
}
else
{
camera.z +=15;
camera.x -=15;
}
}
if (mickey.z > 0)
{
if (camera.z == 50)
{
camera.z -=0;
camera.x +=0;
}
else
{
camera.z -=10;
camera.x +=10;
}
}
}
wait(1);
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Grüße Tirti
|
|
|
Re: Ich bin zu dumm ;-)
[Re: Tirti]
#439036
03/25/14 19:15
03/25/14 19:15
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
jetzt gibts eins auf die zwölf! also, was du im prinzip machst ist die kamera näher zu dem (woran auch immer du hinzoomen willst) bewegen, was nicht schlecht ist, aber im fall von anderen winkeln kleines bisschen komplizierter wird. vorschlag 1: du verkleinerst einfach camera.arc (= field of view, in grad), damit ist der zoom so wie bei einer echten kamera -> brauchst dir um kamera winkel keine sorgen machen vorschlag 2: du machst das gleiche wie jetzt, nur mit vektoren (in dem fall würde sich die kamera wirklich auf das 'ziel' zubewegen) sollte beides ganz gut klappen, kommt halt drauf an, welchen effekt du haben willst. das ganze vektor zeug ist nur relativ haarig beim verstehn, wenn mans aber mal gerafft hat geht das ohne probleme.
POTATO-MAN saves the day! - Random
|
|
|
Re: Ich bin zu dumm ;-)
[Re: Kartoffel]
#439038
03/25/14 19:31
03/25/14 19:31
|
Joined: Mar 2014
Posts: 25
Tirti
OP
Newbie
|
OP
Newbie
Joined: Mar 2014
Posts: 25
|
Also das ist jetzt die neue Version ;-)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function set_camera()
{
camera.tilt = -30;
camera.y = 0;
camera.x = -220;
camera.z = 200;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function move_cam()
{
while(1)
{
if (mouse_right == 1)
{
camera.pan -= mickey.z*time_step;
camera.x += mouse_force.y;
camera.y += mouse_force.x;
}
else
{
camera.arc -= mickey.z*time_step;
}
wait(1);
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
neuse Problem ist das wenn ich auf die rechte Maustatse drücke, dann per Rad die PAN ändere funktioniert das links rechts bewegen natürlich nicht mehr so wie es soll :-( Grüße Tirti
|
|
|
|