Nachbau von Bricks aus AUM55

Posted By: blafasel

Nachbau von Bricks aus AUM55 - 01/18/08 06:32

Hallo miteinander

ich habe mir zum Ziel gesetzt einen Nachbau von einem Beitrag aus der AUM55 zu erstellen. Es ist ja auch sehr gut beschrieben und ein relativ kleines Spiel.
Nun leider habe ich das Problem, dass die Kugel nicht richtig reagiert.
Sie prallt zwar schön von den Wänden ab, jedoch nicht immer im richtigen Winkel. Plötzlich schert sie aus und prallt um mehrere Grad falsch ab. (auch nach oben)

habe mir schon Gedanken darüber gemacht, ob es wohl an der Kollisionshülle liegt. Diese ist ja ein Block. Im Manual habe ich gelesen, dass man die Kollisionshülle gegebenenfalls in eine Kugel ändern könnte. Leider aber habe ich nicht gefunden, wo ich die Art dieser Hülle ändern könnte.

c_setminmax war etwa das Einzige was ich fand, was die Hülle aber nicht veränderte und der Fehler immernoch da ist.

habe Heute in der ShowcaseI was gesehen, was ähnlich ist wie mein Nachbau:
http://www.coniserver.net/ubbthreads/showflat.php/Cat/0/Number/810904/an/0/page/0#Post810904

da funktioniert es... hmm...

hat jemand eine Idee?
Posted By: flits

Re: Nachbau von Bricks aus AUM55 - 01/18/08 07:44

my.polygon = on;

but if its stil keeps going al the ways plz show your code then
Posted By: blafasel

Re: Nachbau von Bricks aus AUM55 - 01/19/08 17:37

Hey, thanx for your help.
sorry for my english, it's to bad. :-)

ok, poly it's on. but the Ball goes not like a poolbillard-ball.
i've tested with my.narrow and my.fat. and i've testet with c_setminmax.
he springs off the wall normaly like billardball, but in a time he springs wrong...

here my code:

Code:
 action die_kugel()
{
vec_set (kugel_pos.x, my.x);
my.polygon = on;
my.invisible = on;
while (mouse_left == 0) {wait (1);} // warte bis der Spieler die linke Maustaste drückt
my.invisible = off;
randomize();
kugel = my; // ist besser wenn der Zeiger My für die entity gebraucht wird
my.pan = 70 - random(140);
my.enable_block = on;
my.enable_impact = on;
my.enable_entity = on;
my.event = kugel_event;
my.lightrange = 200;
my.red = 250;
my.green = 200;
my.blue = 150;
my.scale_y = 2;
my.scale_x = 2;
my.scale_z = 2;
// my.narrow=on;
// my.fat=on;
var jet_speed;
while(1)
{
my.skill1 = c_move (my, vector(kugel_speed * time_step, 0, 0), nullvector, ignore_passable);
if (my.skill1 < 3) // stockt die Kugel?
{
my.pan = random(360); // dann hilf ihr raus
}
if (my.x < 550) // Jetzt hat der Spieler ein Leben verloren
{
//snd_play (lost_wav, 70, 0);
anzahl_leben -= 1;
ent_create (kugel_mdl, kugel_pos.x, die_kugel); // kreire wieder eine Kugel an der Ursprünglichen Position
wait(1);
c_setminmax(me);
ent_remove (my); // entferne den alten Ball
return;
}
temp.pan = my.pan;
temp.tilt = my.tilt;
temp.roll = my.roll;
jet_speed.x = -3;
jet_speed.y = 0;
jet_speed.z = 0;
vec_rotate (jet_speed, temp);
//effect(particle_jet, 4, my.x, jet_speed);
wait(1);
}
}



Vielleicht ist mein Deutsch ein wenig besser als Englisch. :-)
Also die Kugel springt ganz normal von den Wänden wie eine Billardkugel. Und plötzlich aber springt sie völlig falsch. wie in die entgegengesetzte Richtung. völlig komisch.

ich dachte das könnte allenfalls daran liegen, dass die Kollisionshülle eine Box ist... jedoch kann ich die nicht ändern, oder wüsste leider nicht wie.

vielen Dank an alle, die sich Mühe geben mir zu helfen.

Grüsse
Blafasel

Edit: code besser dargestellt.
Posted By: flits

Re: Nachbau von Bricks aus AUM55 - 01/19/08 18:12

can you add the kugel_event

and maby the ball is right but the code not ore the lvl itszelf not right
Posted By: blafasel

Re: Nachbau von Bricks aus AUM55 - 01/19/08 18:14

ou sorry... i forgot it... *shame*

Code:
 function kugel_event()
{
if (event_type == event_block) // kollidiert sie mit der Levelgeometrie?
{
//snd_play (wall_wav, 50, 0);
}
vec_to_angle (my.pan, bounce);
my.tilt = 0; // lasse keine 3D-Abpraller zu. kann kommentiert werden.
if ((my.pan > -80) && (my.pan < -100)) // lass die Kugel nicht allzu stark abprallen
{
if (my.pan > -90)
{
my.pan = -80;
}
else
{
my.pan = -100;
}
}
if ((my.pan > 80) && (my.pan < 100))
{
if (my.pan < 90)
{
my.pan = 80;
}
else
{
my.pan = 100;
}
}
my.pan += 1 - random(2); // ich möchte ein wenig undefinierte Abpraller haben
wait (1);
if (my.skill1 < 3) && (vec_dist (player.x, my.x) < 200) // bleibt die Kugel beim Spieler hängen?
{
my.x += 5; // geh vom Spieler weg
}
my.event = null;
wait (3);
my.event = kugel_event;
}


Posted By: blafasel

Re: Nachbau von Bricks aus AUM55 - 01/23/08 16:43

Bitte entschuldigt meinen verzweifelten Versuch meine Anfrage zu pushen.
Aber weiss niemand Bescheid?
oder bin ich vielleicht im falschen Forum für eine solche Frage?

Grüsse
Blafasel
© 2024 lite-C Forums