2 registered members (AndrewAMD, bigsmack),
1,112
guests, and 7
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Kollisions problem mit Münzen
[Re: Otter]
#339270
08/25/10 17:51
08/25/10 17:51
|
Joined: Dec 2003
Posts: 988 Germany, Magdeburg
JoGa
User
|
User
Joined: Dec 2003
Posts: 988
Germany, Magdeburg
|
jop, wenn du singleplayer hast, ist das die einfachste Lösung.
Und noch ein Tipp: Irgendwo im manual hieß es, dass man keine krassen entity-veränderungen in der event-funktion vornehmen sollte zwecks fehlerhaften pointern oder so (glaub ich ^^) Ich machs dann so, dass ich in der eventfunktion nur nen skill/flag der Entity veränder und in der Aktion statt while(1) dann while(flag1) z.B. Dh. du setzt flag1 vorher auf on und in der eventfunktion auf off. Dann wird die Entity einmal in der Aktion der Entity gelöscht und nicht, wenns dann später komplizierter wird, womöglich "zweimal", weil zweimal der event aufgerufen wird (zB. durch Gegner und Spieler), das gibt dann ne Fehlermeldung.
|
|
|
Re: Kollisions problem mit Münzen
[Re: janerwac13]
#339274
08/25/10 17:56
08/25/10 17:56
|
Joined: Jul 2009
Posts: 1,198 Berlin, Germany
Liamissimo
Serious User
|
Serious User
Joined: Jul 2009
Posts: 1,198
Berlin, Germany
|
Leute das ist echt ne simple Sache? Nimm doch einfach meinen code den ich gepostet habe, wenns dann nicht geht kram ich mein Projekt raus.
"Ich weiss nicht genau, was Sie vorhaben, aber Sie können keine Triggerzonen durch Ihr Level kullern lassen." -JCL, 2011
|
|
|
Re: Kollisions problem mit Münzen
[Re: janerwac13]
#339278
08/25/10 18:11
08/25/10 18:11
|
Joined: Jul 2009
Posts: 1,198 Berlin, Germany
Liamissimo
Serious User
|
Serious User
Joined: Jul 2009
Posts: 1,198
Berlin, Germany
|
nein, du verstehst es nicht. Deine Murmel muss einen c_scan machen! oder du lässt sie selbst c_scan machen und wenn if(you == murmel) dein coin verschwinden. 1) Du lässt sie Murmel in einer while-Loop c_scan machen oder 2) Du löscht die Funktion coin1 und die emask und die coin action sieht so aus
action coin()
{
set(my,PASSABLE);
while(me)
{
c_scan(my.x,my.pan,vector(360,360,75));
my.pan += 1*time_step;
if(you == murmel)
{
ent_remove(me)
}
wait(1);
}
Last edited by TheLiam; 08/25/10 18:11.
"Ich weiss nicht genau, was Sie vorhaben, aber Sie können keine Triggerzonen durch Ihr Level kullern lassen." -JCL, 2011
|
|
|
Re: Kollisions problem mit Münzen
[Re: janerwac13]
#339280
08/25/10 18:12
08/25/10 18:12
|
Joined: Feb 2010
Posts: 482 in deinem Kopf
Otter
Senior Member
|
Senior Member
Joined: Feb 2010
Posts: 482
in deinem Kopf
|
Bei einem scan ist es doch egal ob das objekt passable ist. [EDIT]: schade zu spät ![smirk smirk](/ubb7/images/graemlins/default_dark/smirk.gif)
Last edited by Otter; 08/25/10 18:12.
Be my UBB-Buddy, without any reason!
|
|
|
Re: Kollisions problem mit Münzen
[Re: janerwac13]
#339284
08/25/10 18:26
08/25/10 18:26
|
Joined: Jul 2009
Posts: 1,198 Berlin, Germany
Liamissimo
Serious User
|
Serious User
Joined: Jul 2009
Posts: 1,198
Berlin, Germany
|
ARGH! Okay, also deine Murmel muss eine while(me) oder while(1) loop haben. Da rein kommt c_scan(my.x,my.pan,vector(360,360,100),IGNORE_ME); rein.
Dadurch scannt deine Murmel immer was um sie rum ist und wenn sie einen Coin "findet" dann löst sich das event des coins aus. Aber du darfst nicht beide Sachen mixen. Wenn deine murmel scannt dann muss auch die emask auf ENABLE_SCAN gesetzt sein vom coin. Am besten wenn du noch probleme hast poste mal deinen gnazen code hier, ich schreib ihn dir um!
"Ich weiss nicht genau, was Sie vorhaben, aber Sie können keine Triggerzonen durch Ihr Level kullern lassen." -JCL, 2011
|
|
|
Re: Kollisions problem mit Münzen
[Re: Liamissimo]
#339289
08/25/10 18:44
08/25/10 18:44
|
Joined: Dec 2008
Posts: 222
janerwac13
OP
Member
|
OP
Member
Joined: Dec 2008
Posts: 222
|
action coin() {
set(my,PASSABLE); while(me) { my.emask |= ENABLE_SCAN; my.pan += 1*time_step; if(you == player) { ent_remove(me); } wait(1); } }
action ball() { VECTOR ball_speed; ENTITY* ball; VECTOR offset; var jumptimer = -1.5; my.skill1=0; player = me; my.push = 15; my.ambient = 100; my.alpha = 100; Kamera(); ph_setgravity (vector(0, 0, -1500)); // set the gravity phent_settype (my, PH_RIGID, PH_SPHERE); // set the physics entity type phent_setmass (my, 2, PH_SPHERE); // and its mass phent_setfriction (my, 90); // set the friction phent_setdamping (my, 20, 20); // set the damping phent_setelasticity (my, 50, 20); // set the elasticity while (1) { c_scan(my.x,my.pan,vector(360,360,100),IGNORE_ME); ball_speed.x = 40 * (key_d - key_a); // move the ball using the cursor keys ball_speed.y = 40 * (key_w - key_s); // 25 sets the x / y movement speeds ball_speed.z = 0; // no need to move on the vertical axis vec_rotate(ball_speed,vector(camera.pan,0,0)); //Die Zeile rotiert deinen Bewegungsvektor mit der Kamera if (key_p) { freeze_mode = 1; set(pause_pan,VISIBLE); mouse_mode = 2; } if(key_space) { phent_addvelcentral(me,vector(0,0,1500*time_step)); wait(-1); } phent_addtorqueglobal (my, ball_speed); // add a torque (an angular force) to the ball if(my.z<-850) { ent_remove(my); game_load("level",1); return; } wait (1); } }
|
|
|
Re: Kollisions problem mit Münzen
[Re: janerwac13]
#339290
08/25/10 18:46
08/25/10 18:46
|
Joined: Jul 2009
Posts: 1,198 Berlin, Germany
Liamissimo
Serious User
|
Serious User
Joined: Jul 2009
Posts: 1,198
Berlin, Germany
|
Du musst nur das c_scan aus der Murmel bei Coin reintun in der Loop. Und nimm das emask aus der Loop, brauchst du nicht mehr ![laugh laugh](/ubb7/images/graemlins/default_dark/laugh.gif)
Last edited by TheLiam; 08/25/10 18:47.
"Ich weiss nicht genau, was Sie vorhaben, aber Sie können keine Triggerzonen durch Ihr Level kullern lassen." -JCL, 2011
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|