|
Re: Model passable Problem
[Re: Bloodangel]
#310799
02/17/10 01:20
02/17/10 01:20
|
Joined: Sep 2003
Posts: 6,861 Kiel (Germany)
Superku
Senior Expert
|
Senior Expert
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
|
Ich schätze mal, game_gravity() wird einmal pro frame ausgeführt? c_setminmax(player); ist dort leider total fehl am Platze, schreibe das an den Anfang deiner player-action außerhalb der while-Schleife.
result = c_trace(vector(my.x,my.y,my.z - my.z_offset),vector(my.x,my.y,my.z - 4000),ignore_me|ignore_passable); Du schreibst gar nicht, wie result verarbeitet wird. Wie berechnet sich my.force_z ?
Und deine movement-Passage sieht nun wie aus?
"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual Check out my new game: Pogostuck: Rage With Your Friends
|
|
|
Re: Model passable Problem
[Re: Superku]
#310894
02/17/10 15:28
02/17/10 15:28
|
Joined: Sep 2008
Posts: 34
Bloodangel
OP
Newbie
|
OP
Newbie
Joined: Sep 2008
Posts: 34
|
Ich habe c_setminmax(player); an den Anfang der Player Action gesetzt ist auch außerhalb der Schleife aber es hat sich nichts geändert. wegen my.force_z:
IF (result < 50) {
IF (my.jumping_mode == 0) {
my.force_z = -1 * result;
IF (key_space == 0 && space_press == 1) { space_press = 0; }
IF (key_space == 1 && space_press == 0 && my.movement_mode == 0 && my.animblend >= stand && my.animblend != jump && my.animblend != fall) {
space_press = 1;
my.jumping_mode = 1;
my.force_z = 30;
my.blendframe = jump;
my.animate2 = 0;
my.animblend = blend;
}
}
Hier ist die Movment Passage die relevant ist:
c_move(my,nullvector,my.move_x,ignore_passable | glide);
result = trace(vector(my.x,my.y,my.z - my.z_offset),vector(my.x,my.y,my.z - 4000));
IF (result < 0) { my.z -= result; my.velocity_z = 0; }
IF (target_enemy == null ) {
IF (temp.y > 0) { rotate_entity(temp.x,30); }
} ELSE {
vec_diff(temp2.x,target_enemy.x,my.x);
vec_to_angle(temp2.pan,temp2.x);
rotate_entity(temp2.pan,30);
}
IF (my.movement_mode == 0) {
my.gravity = 6;
IF (my.move_x != 0 || my.move_y != 0) {
IF (my.animblend == stand) {
IF (key_shift == 1) { my.blendframe = walk; } ELSE { my.blendframe = run; }
}
IF (my.animblend == run && key_shift == 1) { my.blendframe = walk; }
IF (my.animblend == walk && key_shift == 0) { my.blendframe = run; }
} ELSE {
IF (my.animblend > stand && my.animblend != jump && my.animblend != fall) {
my.blendframe = stand;
}
}
Last edited by Bloodangel; 02/17/10 15:32.
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|