|
|
Entity auf der x-Achse verschieben MIT BILD ;)
#293859
10/14/09 12:59
10/14/09 12:59
|
Joined: Oct 2009
Posts: 14
uniquy
OP
Newbie
|
OP
Newbie
Joined: Oct 2009
Posts: 14
|
 German at bottom. Hello! Sorry for my bad english, but realy need to get that work  Just want to make an Entity changes its x-position, if i move the mouse. no problem just assign the mouse.x to the entity .x! but at verry best it will be, if the entity is moving ONLY, if i move the mouse to the x-axis (3D, not 2D!). i thought about comparing both by vec_to_screen but, dont realy know how  Hallo! Ich bin schon die ganze Zeit am grübeln, komme aber einfach nicht von selbst drauf -.- Habe sogar noch eine kleine Veranschaulichung angehängt, damit euch das stupide lesen nicht unterfordert ^^ Und zwar soll ein Objekt mit der Maus NUR auf den x Koordinaten verschoben werden. Hört sich einfach an, ist es auch. Das geht z.b. so:
void SyncObjectMoving(){
box.x -= mickey.x;
}
Tja, funktioniert gut, ganz einfach. Wenn die Maus jetzt nach rechts oder links bewegen, verschiebe ich mein Objekt auf der x-Achse. Je nach BLICKWINKEL, aus dem man die Verschiebung verfolgt, ist dies aber sehr verwirrend, da sich das Objekt nicht immer die Richtung bewegt, in welche man die maus bewegt, sondern halt nur die x-Koordinaten verändert werden. Wie es sein sollte: Die Maus-Force sollte nur zum verschieben des Objektes verwendet werden, wenn die Maus auch in die x-Achse (3D) bewegt wird. Mein Lösungsansatz: 3D Objektposition mit 2D Mauswerten koordinieren und abfragen, ob die Richtung in einem beliebigen Rahmen bleibt. Dazu habe ich mir vec_to_screen herausgesucht, denn ohne wird es wohl nicht gehen. Wenn ich nun den 3D Vector zu den Bildschimkoordinaten umrechnen kann. Müsste ich doch abfragen können, ob diese noch im Rahmen, der zugelassenen Bewegung der Maus auf der (3D) x-Achse liegen. Wäre toll, wenn mir da einer helfen könnte! Achja, genau, gibt einen Ingame Editor für mein Spiel!
Last edited by uniquy; 10/14/09 14:14.
|
|
|
Re: Entity auf der x-Achse verschieben MIT BILD ;)
[Re: M4sterm1nd]
#293894
10/14/09 16:18
10/14/09 16:18
|
Joined: Mar 2008
Posts: 2,247 Baden Württemberg, Germany
Espér
Expert
|
Expert
Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
|
c_move(box, vector(mickey.x,0,0), nullvector, GLIDE);
Bewegt die Box entlang SEINER EIGENEN X-Achse
c_move(box, nullvector, vector(mickey.x,0,0), GLIDE);
Bewegt die box entlang der Welt-Ax-Achse ( unabhängig der Rotation des models ).
Ich glaub damit kommste weiter ^^
Last edited by Espér; 10/14/09 16:18.
|
|
|
Re: Entity auf der x-Achse verschieben MIT BILD ;)
[Re: Espér]
#293897
10/14/09 16:35
10/14/09 16:35
|
Joined: Oct 2009
Posts: 14
uniquy
OP
Newbie
|
OP
Newbie
Joined: Oct 2009
Posts: 14
|
Danke für die Antworten, aber ich glaube ich habe mich doch zu umständlich ausgedrückt  Das Problem ist NICHT, dass die Box sich falsch bewegt, sondern, dass sie auf die x-Koordinaten der Maus reagiert, jedoch nur VERTIKAL  d.h. wenn ich die Box aus dem x-Winkel betrachte, und schiebe die maus nach oben od. unten, dann tut sich nichts. Schiebe ich die Maus nach rechts oder links, dann schon. Aus dem y-Winkel schiebt sich dann die box dem mauszeiger entlang. logisch, so soll es aber auch aus jeder erdenklichen Betrachtung mit der Camera funktionieren. Aber nur, wenn sich die Maus eben entlang der x-Achse der Welt-Koordinaten bewegt ^^ Logisch, da er ja die Mauskoordinaten nimmt. Aber dabei nicht beachtet, in welchem Verhältniss die Kamera zum Objekt steht, den Faktor müsste man einrechnen. Und da habe ich an vec_to_screen gedacht. Working on a Rpg-maker XP => Lite-C Converter hört sich ja mal interessant an!
Last edited by uniquy; 10/14/09 16:40.
|
|
|
Re: Entity auf der x-Achse verschieben MIT BILD ;)
[Re: uniquy]
#293899
10/14/09 16:42
10/14/09 16:42
|
Joined: Mar 2008
Posts: 2,247 Baden Württemberg, Germany
Espér
Expert
|
Expert
Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
|
gibts nicht sowas wie mouse_force???
Edit_______
mouse_force.x mouse_force.y
sollte besser sein als mickey.x/y
Jedenfalls arbeiten viele Mauscodes der Anleitung damit.
Last edited by Espér; 10/14/09 16:43.
|
|
|
Re: Entity auf der x-Achse verschieben MIT BILD ;)
[Re: M4sterm1nd]
#293904
10/14/09 17:00
10/14/09 17:00
|
Joined: Oct 2009
Posts: 14
uniquy
OP
Newbie
|
OP
Newbie
Joined: Oct 2009
Posts: 14
|
Jetzt weiß ich was du meinst.
Du willst quasi den Block mit der Maus verschieben und zwar immer nur nach rechts bzw. links wenn du die Maus nach rechts oder links verschiebst und das auch wenn die cam von der seite drauf kuckt.
Na dann nimm doch einfach die Kamera als ausgangspunkt um die neue position des Würfels zu berechnen. Endlich hats einer Verstanden *g Genau, nur, wenn die Maus entlang der x-Achse schiebt, soll das Objekt mit der Maus abgeglichen werden. Tja, da es ja Blinkwinkelunabhängig sein soll, muss der Kamera Vector mit rein. Aber wie verrechne ich den Kamera Vektor mit den Maus Koordinaten?
|
|
|
Re: Entity auf der x-Achse verschieben MIT BILD ;)
[Re: M4sterm1nd]
#293906
10/14/09 17:23
10/14/09 17:23
|
Joined: Oct 2009
Posts: 14
uniquy
OP
Newbie
|
OP
Newbie
Joined: Oct 2009
Posts: 14
|
Die Kamera dreht sich frei in jeder erdenklichen Konstellation. Jedoch nicht, wärend dem Verschieben des Objekts.
Last edited by uniquy; 10/14/09 17:25.
|
|
|
Re: Entity auf der x-Achse verschieben MIT BILD ;)
[Re: uniquy]
#293910
10/14/09 17:42
10/14/09 17:42
|
Joined: Jul 2002
Posts: 4,436 Germany, Luebeck
Xarthor
Expert
|
Expert
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
|
Hier ein beispiel projekt mit untem stehendem code: http://home.arcor.de/xarthor/files/MovingRelativeToCamera.zipHier ein funktionierender code:
#include <acknex.h>
#include <default.c>
void camera_control()
{
VECTOR* temp = { x=0; y=0; z=0; }
var cam_angle = 0;
while(1)
{
cam_angle += 15 * mouse_force.x * time_step * mouse_right;
camera.pan = 0;
camera.tilt = 0;
camera.roll = 0;
vec_set(camera.x,vector(200,0,0));
vec_rotate(camera.x,vector(cam_angle,0,0));
camera.z = 200;
vec_set(temp,nullvector);
vec_sub(temp,camera.x);
vec_to_angle(camera.pan,temp);
wait(1);
}
}
action object_act()
{
VECTOR* dist = { x=0; y=0; z=0; }
while(me)
{
vec_set(dist.x,vector(8*time_step*-mickey.y*mouse_left,0,0));
vec_rotate(dist.x,vector(camera.pan,0,0));
c_move(my,nullvector,dist,IGNORE_MODELS);
wait(1);
}
}
void main()
{
level_load("level.hmp");
wait(3);
camera_control();
ent_create("cube.mdl",vector(0,0,8),object_act);
}
Last edited by Xarthor; 10/14/09 17:44.
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|