2 registered members (NnamueN, 1 invisible),
1,489
guests, and 6
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: springen, aber wie
[Re: ]
#230297
10/04/08 16:39
10/04/08 16:39
|
Joined: Feb 2006
Posts: 385 Oldenburg,Germany
Ralph
Senior Member
|
Senior Member
Joined: Feb 2006
Posts: 385
Oldenburg,Germany
|
Ich glaube du verwechselst hier c_move mit den normalen Position-Eigenschaften einer Entity.(Wenn es doch richtig sein sollte, bitte hin hauen, kenn mich mit c_move auch nicht sooo gut aus ) Wenn du jetzt "Z" in dem c_move Vector immer niedriger setzt wird er immer schneller nach unten gehen (eigentlich zumindest, es sei denn pan/tilt/roll sind nicht auf 0). Probier mal das aus:
if(key_space){
var strecke=0;
sprung=0;
vec_set(temp.x,dragon.x);
temp.z-=1000;
result=c_trace(dragon.x,temp.x,IGNORE_ME);
if(result<100){
if(strecke>20){
sprung=0;
tastenabfrage=0;
}else{
sprung=3*time_step;
strecke=c_move(dragon,vector(0,0,sprung),nullvector,GLIDE|IGNORE_PASSABLE);
}
}
}
Jetzt sollte er 20 Quants nach oben fliegen, wenn er weniger als 100 Quants vom Boden entfernd ist. MFG Ralph
|
|
|
Re: springen, aber wie
[Re: Ralph]
#230310
10/04/08 17:38
10/04/08 17:38
|
RobinBIer
Unregistered
|
RobinBIer
Unregistered
|
Leider passiert immernoch dasslebe )= ich verstehe auch nicht warum. ich habe schon vieles probiert )= Aber trotzdem war der beitrag sehr hilffreich
|
|
|
Re: springen, aber wie
[Re: Ralph]
#230315
10/04/08 17:53
10/04/08 17:53
|
RobinBIer
Unregistered
|
RobinBIer
Unregistered
|
ok hier ist er function physik () {dragon = ent_create ("dragon.mdl", vector(0, 0, 200), NULL); set(dragon,SHADOW); while (1) {camera.x = dragon.x - 200 * cos(dragon.pan); camera.y = dragon.y - 200 * sin(dragon.pan); camera.z = dragon.z + 200; camera.pan = dragon.pan; camera.tilt = -30; c_move (dragon, vector(0,0,-1), nullvector, GLIDE | IGNORE_PASSABLE); if (key_cud) {c_move (dragon, vector(-0.2*faktor,0,0), nullvector, GLIDE | IGNORE_PASSABLE); ent_animate(dragon, "go", anim, ANM_CYCLE); anim+=3.5*faktor*time_step; }
if(key_cuu) { c_move (dragon, vector(0.8*faktor ,0,0), nullvector, GLIDE | IGNORE_PASSABLE); ent_animate(dragon, "go", anim, ANM_CYCLE); anim+=3.5*faktor*time_step; }
if (key_cul) {dragon.pan+=0.5; }
if (key_cur) {dragon.pan-=0.5; }
if(key_space){ var strecke=0; sprung=0; vec_set(temp.x,dragon.x); temp.z-=1000; result=c_trace(dragon.x,temp.x,IGNORE_ME); if(result<50){ if(strecke>20){ sprung=0; }else{ sprung=3*time_step; strecke=c_move(dragon,vector(0,0,sprung),nullvector,GLIDE|IGNORE_PASSABLE); } } }
wait (1);
} }
|
|
|
Re: springen, aber wie
[Re: ]
#230320
10/04/08 18:30
10/04/08 18:30
|
Joined: Feb 2006
Posts: 385 Oldenburg,Germany
Ralph
Senior Member
|
Senior Member
Joined: Feb 2006
Posts: 385
Oldenburg,Germany
|
Ich habe dein Code mal komplett umgeschrieben ich hoffe das ist nicht schlimm...
var faktor=5;
VECTOR* temp=nullvector;
function dragon_physik(){
while(!me){wait(1);}
dragon=me;
while(me){
camera.x=my.x-200*cos(my.pan);
camera.y=my.y-200*sin(my.pan);
camera.z=my.z+200;
camera.pan=my.pan;
camera.tilt=-30;
my.skill1=faktor*(key_w-key_s)*time_step;
my.pan+=5*(key_a-key_d)*time_step;
result=c_trace(my.x,vector(my.x,my.y,my.z-10000),IGNORE_ME|USE_BOX);
if(result>5&&my.skill4==0){
my.z-=(result/5)*time_step;
}else{
if(result<2&&my.skill4==0){
my.z+=2*time_step;
}
}
if(key_space&&my.skill4==0&&(result>2&&result<5)){
while(key_space){wait(0.1);}
my.skill4=50;
}
if(my.skill4>0){
my.z+=(my.skill4/10)*time_step;
my.skill4-=5*time_step;
}else{
my.skill4=0;
}
c_move(my,vector(my.skill1,0,my.skill3),nullvector,GLIDE|IGNORE_PASSABLE);
wait(1);
}
}
function main(){
//.... irgendwas anderes
ent_create("dragon.mdl",vector(0,0,200),dragon_physik);
Hoffe das alles so ist wie du es wolltest. MFG Ralph
Last edited by Ralph; 10/04/08 18:30.
|
|
|
Re: springen, aber wie
[Re: Ralph]
#230324
10/04/08 18:44
10/04/08 18:44
|
RobinBIer
Unregistered
|
RobinBIer
Unregistered
|
um ehrlich zu sein finde ich es ein wenig schlimm, da ich den code selber verstehen muss. deinen code versteh ich um ehrlich zu sien gar nicht. mit den ganzen skills u.s.w. aber ich danke dir für deine mühe und ich werde deinen code langsam aber sicher auseinanderpflücken^^
|
|
|
Re: springen, aber wie
[Re: Ralph]
#230327
10/04/08 18:53
10/04/08 18:53
|
RobinBIer
Unregistered
|
RobinBIer
Unregistered
|
ja alles funktioniert super, nur an der geschwindigkeit und animation mus noch gearbeitet werden^^
|
|
|
Re: springen, aber wie
[Re: Ralph]
#230330
10/04/08 19:13
10/04/08 19:13
|
RobinBIer
Unregistered
|
RobinBIer
Unregistered
|
sehr interessant: ich ahbe jetzt einfach aus zwecksgründen den teil mit springen in mein projekt kopiert: if (key_space) {result=c_trace(dragon.x,vector(dragon.x,dragon.y,dragon.z-10000),IGNORE_ME|USE_BOX); if(result>5&&dragon.skill4==0){ dragon.z-=(result/5)*time_step; }else{ if(result<2&&dragon.skill4==0){ dragon.z+=2*time_step; } } if(key_space&&dragon.skill4==0&&(result>2&&result<5)){ while(key_space){wait(0.1);} dragon.skill4=50; } if(dragon.skill4>0){ dragon.z+=(dragon.skill4/10)*time_step; dragon.skill4-=5*time_step; }else{ dragon.skill4=0; } c_move(dragon,vector(dragon.skill1,0,(dragon.skill3)*(1)),nullvector,GLIDE|IGNORE_PASSABLE); wait(1);
}
Nun springt der Drache auch, allerdings in die Richtung gen Boden. Wie kann das sein ? xD
|
|
|
|