2 registered members (AndrewAMD, VoroneTZ),
1,258
guests, and 4
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
2d Billard
#436093
01/19/14 17:20
01/19/14 17:20
|
Joined: Dec 2010
Posts: 224 NRW, Germany
NeoJones
OP
Member
|
OP
Member
Joined: Dec 2010
Posts: 224
NRW, Germany
|
Hi! Ich würd gern mal ein ganz simples 2d Billardspiel erstellen.
Weiß jemand, wie man sowas mit Panels umsetzen kann (mit Abprallverhalten) ?
Gruß, DF
Errors are the engine of progress.
Version: A8 Commercial OS: Win 7 64bit Models: Cinema 4D
|
|
|
Re: 2d Billard
[Re: NeoJones]
#436172
01/20/14 23:09
01/20/14 23:09
|
Joined: Dec 2010
Posts: 224 NRW, Germany
NeoJones
OP
Member
|
OP
Member
Joined: Dec 2010
Posts: 224
NRW, Germany
|
also ich glaube, "simpel" ist es in beiden fällen nicht. egal ob nun physikengine oder eigene 2d physik. irgendwie macht die physX was sie will, nur nicht das, was ich will xD kugeln prallen nicht sauber ab, sondern gleiten mehr an der bande entlang. würde ja schon gern meine eigene 2d physik implementieren, wenn ich nur wüsste, wie ich das mit den löchern hinbekomme. denn panels können doch per c_intersect miteinander kollidieren. dies würde doch deutlich performance sparen, weil man a) keine physX mehr benötigt und b) die 2d positionen nicht ständig aktualisieren muss mit "simpel" meinte ich auch mehr einfaches 2d ohne grafische effekte ect und nicht wenig arbeit
Last edited by Dragonfly; 01/20/14 23:13.
Errors are the engine of progress.
Version: A8 Commercial OS: Win 7 64bit Models: Cinema 4D
|
|
|
Re: 2d Billard
[Re: NeoJones]
#436431
01/26/14 11:55
01/26/14 11:55
|
Joined: Dec 2010
Posts: 224 NRW, Germany
NeoJones
OP
Member
|
OP
Member
Joined: Dec 2010
Posts: 224
NRW, Germany
|
Also nur mit Panels komme ich aufgrund Kollisionsprobleme net weiter und denke, ich machs so wie HeelX es schon erwähnt hat, nur eben ohne die PhysX und gebe die 3d Positionen in 2d wieder. Ich frage mich aber trotzdem, wie man früher so um 1990 rum schon Minigolf, bzw Spiele mit einfachem Bouncing teilweise auf DOS ohne 3d Raum umgesetzt hat. ^^
Last edited by Dragonfly; 01/26/14 11:56.
Errors are the engine of progress.
Version: A8 Commercial OS: Win 7 64bit Models: Cinema 4D
|
|
|
Re: 2d Billard
[Re: NeoJones]
#436433
01/26/14 13:30
01/26/14 13:30
|
Joined: Apr 2005
Posts: 274 austria
Ascalon
Member
|
Member
Joined: Apr 2005
Posts: 274
austria
|
schau mal in das Aum-Magazin rein bei den Workshops, ab Nummer 81. Da geht es auch um 2d Spiele und glaub auch um Kollisionen usw. Denke das kann ganz nützlich sein für dich.
|
|
|
Re: 2d Billard
[Re: Ascalon]
#436442
01/27/14 08:27
01/27/14 08:27
|
Joined: Dec 2010
Posts: 224 NRW, Germany
NeoJones
OP
Member
|
OP
Member
Joined: Dec 2010
Posts: 224
NRW, Germany
|
Jep danke Ascalon habs mir angesehen, aber irgendwie scheint mir das nur in 2d komplizierter. hab bis jetzt schonmal eine gescheite kollision im 3d hinbekommen, allerdings verhält sich die kugel beim aufprall von anderen kugeln noch verkehrt.
Last edited by Dragonfly; 01/27/14 08:28.
Errors are the engine of progress.
Version: A8 Commercial OS: Win 7 64bit Models: Cinema 4D
|
|
|
Re: 2d Billard
[Re: NeoJones]
#436449
01/27/14 10:07
01/27/14 10:07
|
Joined: Dec 2010
Posts: 224 NRW, Germany
NeoJones
OP
Member
|
OP
Member
Joined: Dec 2010
Posts: 224
NRW, Germany
|
Ok, irgendwie komme ich hier einfach nicht weiter. Hauptproblem ist der neue Pan Winkel für die aufprallende Kugel (cueball!) Problem ist, das die Winkel net von 0-360° gehen, sondern 0-180/-180° -.- Hier mal der Code:
action cueb_act()
{
cueball = me;
c_setminmax(me);
var aufprallwinkel[3];
var aufprall[3];
my.pan = -80;
while(1)
{
c_move(me, vector(accelerate(speed_cueball,-10*key_space*time_step,0.02),0,0), nullvector, USE_POLYGON | IGNORE_PASSABLE | IGNORE_WORLD | IGNORE_SPRITES);
if(trace_hit && hit.entity == table)
{
//set the new direction
vec_to_angle(aufprallwinkel, normal);
my.pan = my.pan+(2*((aufprallwinkel[0]+90)+180-my.pan));
speed_cueball = speed_cueball*0.85;
}
if(trace_hit && hit.entity != table)
{
// get the direction from cueball to the collide ball
vec_set(aufprall,hit.x);
vec_sub(aufprall,your.x);
vec_to_angle(your.pan,aufprall);
your.skill1 = speed_cueball*1.5;//set the speed
// get the new direction
my.pan = your.pan-my.pan; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ???
speed_cueball = speed_cueball*0.3;
wait(1);
your.skill1 = 0;
}
wait(1);
}
}
Im Prinzip muss ich doch nur den aktuellen Winkel vom Winkel der zu treffenden Kugel abziehen. Die getroffene Kugel bekommt schon die richtige Richtung. Oder ich hab da einen Denkfehler!? Wäre echt super, wenn mir da jemand helfen könnte...
Last edited by Dragonfly; 01/27/14 10:11.
Errors are the engine of progress.
Version: A8 Commercial OS: Win 7 64bit Models: Cinema 4D
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|