entity move ( ego shooter)

Posted By: darci

entity move ( ego shooter) - 11/13/07 16:35

halo ich hab mich umgeschaut und keine lösung finden können
ich bin ziemlich neu , deswegen auch nicht so erfahren damit

mein problem ist das meine kamera an meiner waffe ausgerichtet ist ,
die waffe wird durch die maus bewegt also wie in den meisten spielen auch,
jetzt bewegt sich der player jedoch in blickrichtung und ich kann das problem nicht umgehen.
jetzt hab ich gedacht man kann doch nicht die my.pos werte nehmen sondern die world pos , aber wie das geht hab ich auch noch keine ahnung

^^war supper wen einer helfe konnte
mfg darci
Posted By: Lukas

Re: entity move ( ego shooter) - 11/13/07 19:03

Wie bewegst du deinen Player? Wenn du ihn mit

c_move(me,vector(0,geschwindigkeit*time_step,0),nullvector,IGNORE_PASSABLE);

bewegst, sollte er eigentlich immer in die Richtung laufen in die er sieht.



Jedenfalls gehört das nicht in diese Forum Section, also hab ich es ins Lite-C Scripting verschoben.
Posted By: darci

Re: entity move ( ego shooter) - 11/13/07 21:09

sry und danke fuers verschieben


bei mir is so das sich der oberkorper nach der mausbewegung richtet und der unterkorper sich normal bewegt also vor, zuruck usw.

jetzt soll der oberkorper der durch die mausbewegung seine tilt werte verandert
ebenfals auf der map oberflache wie der unterkorper bewegt werden konnen, trotz seines blicks nach oben zb
also ich will mich nicht in die blick richtung bewegen da ich zB nach oben schaun und vorwarts laufen will (= nicht in blickrichtung)

weis nicht obs jetzt einigermassen verstandlich ist was ich erreichen will :/
Posted By: Lukas

Re: entity move ( ego shooter) - 11/13/07 21:24

Mit "Richtung in die er sieht" meinte ich vorwärts, da habe ich mich etwas ungeschickt ausgedrückt

Wenn du den tilt-wert des Oberkörpers mit der Maus verändern willst, schreibst du in deine Player action

while (1)
{
...
my.tilt += faktor*mickey.y*time_step;
...
}

Posted By: darci

Re: entity move ( ego shooter) - 11/14/07 13:07

while (1)
{ ^
dist.X = gehen; // vor und zuruck
dist.Y = drehen; // beim gehen und stehen
dist.Z = 0;
my.Pan+= seitenD; // seitlich gehen
// orientiert an der maus

my.Tilt+=mouse_force.y*2; // blich hoch , runter
//orientiert an der maus

move_mode = ignore_passable + glide;
ent_MOVE(dist, nullvector);
move_view();
wait(1);
}

also so hab ichs bei mir drin
wenn ich tilt andere andert sich die x achse (nicht mehr paralel zum hirizont)
sodas ich auch kopf stehen kann wenn die erdanziehungskrafft aus is

^^ bin bischen kompliziert ^^ da ich mich nicht auskenn
Posted By: Lukas

Re: entity move ( ego shooter) - 11/14/07 16:05

Welche 3DGS-Version hast du? Dein Code sieht so aus, als würdest du A4 und C-Skript benutzen, nicht Lite-C. Mit dieser alten Syntax kenne ich mich nicht aus; ent_move wurde durch c_move ersetzt und move_view () gibt es seit A5 nicht mehr und ich weiß nicht, was diese Funktion macht. Ich kann dir also bei deinem Problem leider nicht helfen
Ich werde diesen Thread ins Starting with Gamestudio verschieben.
Posted By: darci

Re: entity move ( ego shooter) - 11/14/07 16:22

:/ ja toll

trotzdem danke^^
Posted By: darci

Re: entity move ( ego shooter) - 11/22/07 07:32

so jetzt hab ich endlich was ich gebraucht hab aber ich kanns irgendwie nicht einsetzen, da ich mir nicht sicher bin wie es geht

absdist
Vektor der Bewegungsstrecke in Welt-Koordinaten (absoluter Bewegungsvektor)

??? weis einer wies geht
mfg darci
Posted By: jermy

Re: entity move ( ego shooter) - 11/22/07 13:46

absdist gibt den absoluten richtungsvektor an z.b. süden!
reldist ist relativ zum player also vorne hinten, rechts links, oben unten!
Posted By: ARAS

Re: entity move ( ego shooter) - 11/23/07 23:11

Hallo darci,

ich habe Dir einmal etwas aufgeschrieben. Soll als Beispiel dienen.

Code:
 
define move_x,skill1;
define move_y,skill2;
define move_z,skill3;

var player_speed[3];

entity* waffe;

function player_waffe
{
waffe = my;
my.passable = on;
proc_late();
WHILE (you != null)
{
vec_for_vertex(temp.x,you,361); // Vertex der Hand
vec_set(my.x,temp.x); // Waffe auf Vertex der Hand setzen
my.pan -= (20 * mouse_force.x * time) * 0.5; // Drehgeschwindigkeit
my.pan = clamp(my.pan,you.pan-90,you.pan+90); // Winkel der Waffe begrenzen
wait(1);
}
}

function Camera_Pos()
{
camera.genius = player;
vec_set(camera.x,my.x); // Kamera Player folgen lassen
vec_set(camera.pan,waffe.pan); // Kamera in Waffensichtrichtung drehen
}

action player_test()
{
player = my;
ent_create("waffe.mdl",my.x,player_waffe); // Hier die Waffe angeben
while(1)
{
vec_set(my.move_x,nullvector); // Vektoren auf null setzen
vec_set(player_speed.x,nullvector); // Vektoren auf null setzen
player_speed.x = 10 * (key_w - key_s) * time_step; // Nach vorne und zurück bewegen
player.pan += 8 * (key_a - key_d) * time_step; // Drehung über pan-Winkel
temp.y = player_speed.x; // Playergeschwindigkeit zuweisen
temp.x = player.pan; // Playerwinkel zuweisen
my.move_x = fcos(temp.x,temp.y); // Entfernungsbewegung in Abhängigkeit des Winkels und der Geschwindigkeit
my.move_y = fsin(temp.x,temp.y); // Entfernungsbewegung in Abhängigkeit des Winkels und der Geschwindigkeit
c_move(my,player_speed.x, nullvector,use_box | ignore_me | glide | ignore_passable | ignore_passents); // Bewegung des Players
Camera_Pos(); // Kamera Bewegung
wait(1);
}
}



Vielleicht hilft Dir das etwas. Ansonsten kannst Du Dich ja noch einmal melden.
Posted By: darci

Re: entity move ( ego shooter) - 11/25/07 10:54

^^ das werde ich sofort ausprobieren^^
Posted By: darci

Re: entity move ( ego shooter) - 12/09/07 10:27

leute ich hab ein problem ich habe jetzt das lite-c , und da will er bei mir einfach keine temp amerkennen ,
er sagt immer undeclared identifiler
und ich kann nichts dagegen machen , konnte mir da einer bitte vieleicht ein tipp geben
Posted By: G_Tos

Re: entity move ( ego shooter) - 12/09/07 10:43

versuch einfach mal manuell zu deklarieren, vielleicht gilt in c-lite temp nicht als vordeklariert...
Posted By: darci

Re: entity move ( ego shooter) - 12/09/07 13:27

ich bin zu blod fuer diese welt

ich bekomm es einfach nicht gebacken das die camera sich hinter den spieler mit einem gewisen abstand bewegt
Posted By: ARAS

Re: entity move ( ego shooter) - 12/09/07 18:18

Hi,

versuch einmal das.
camera_dist ist die Entfernung zum Player.

Code:
 
camera.x = player.x - cos(player.pan) * my.camera_dist;
camera.y = player.y - sin(player.pan) * my.camera_dist;
camera.z = player.z + 45; // Höhe der Kamera
camera.pan = player.pan;
camera.tilt = -15; // Nur ein angenommener Wert muß geändert werden


Posted By: darci

Re: entity move ( ego shooter) - 12/10/07 13:41

ich weis nicht woran das genau liegt , an mir oder doch an der testversion von lite-c
aber der kennt bei mir kein temp , my.camera_dist kennt er auch nicht
Posted By: ARAS

Re: entity move ( ego shooter) - 12/10/07 18:32

Hi,

wie G_Tos schon gesagt hast musst Du in Lite-C erst einmal alles deklarieren.
Sämtliche Variablen, Vectoren und Pointer. Das bedeutet temp ist auch noch nicht
deklariert. Als nächstes musst Du unbedingt auf die Schreibweise achten. Nicht so wie
bei C-Skript wo man die gleiche Variable einmal gross und einmal klein schreiben
konnte. Da gibt es bei Lite-C sofort eine Fehlermeldung.
So als erstes musst Du temp deklarieren.

VECTOR temp[3] = {0,0,0};

Die Variable my.camera_dist sollte nur als Beispiel dienen. Hier kannst Du auch
einen bestimmten Wert einsetzen, z.b. 150, eben solch eine Entfernung die, die
Kamera zu Deinem Player haben soll.
Posted By: darci

Re: entity move ( ego shooter) - 12/11/07 08:56

aso ok,
bin nur nicht so gut in solchen sachen, da fallt es einem schwer sich auf neues einzustimmen
hab hier was interesantes gemacht


alpa = 90 - my.pan;
ak = cos(alpa) * Hyp;
gk = sin(alpa) * Hyp;

camera.x = my.x - gk; //der x wert des players- den notigen abstand der cam
camera.y = my.y - ak; // dasselbe nur mit den y werten
camera.pan = my.pan; //selbe blickrichtung

camera.z = hohe; //3. persohn sicht
camera.tilt = -35;

bis jetzt hats ohne brobleme funktioniert, ohwohl es nich fachgerecht aussiht^^
© 2024 lite-C Forums