Kollision...

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

pirahni

Betreff: Kollision...

BeitragSa, Okt 11, 2008 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiß, dass es dieses Thema schon ein paar mal gibt, aber ich bin nicht fündig geworden.

Ich habe Dominosteine, die stoppen sollen wenn sie einen anderen Stein berühen. Gleichzeitig soll aber auch eine weitere aktion durchgeführt werden, nämlich das der Stein der berühet wurde auch umfällt. Dazu brauche ich die identität des Steines der auf den anderen Stein fällt. hoffe dass ich es gut beschrieben habe, bei fragen bitte melden.

SYSThern

BeitragSa, Okt 11, 2008 22:40
Antworten mit Zitat
Benutzer-Profile anzeigen
EntityCollided?
Tools and Programms
--------------------
www.systhern.de

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Okt 12, 2008 3:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmmm, mal sehen...

Dominosteine die sich bewegen und auf andere Dominosteine stossen die sich womöglich auch bewegen und eine physikalische Reaktion auslösen = Physikengine.

Leider unterstützt Blitz3D keine vernünftige Kollisionskontrolle auf bewegte Mesh-Zielobjekte. Dadurch sind solche Kollisionen nur mit viel Mehraufwand verbunden. Um sich den Mehraufwand zu sparen (da offensichtlich ich noch niemanden gesehen habe, der sowas einsetzt und ich nur bedingt zufrieden mit meiner Lösung bin), würde ich das einsetzen einer Physikengine vorschlagen.

Nachfolgend findest du eine Übersicht einiger Engines, die sich mit Blitz3D ansprechen lassen: https://www.blitzforum.de/foru...hp?t=27373
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

sheldon

BeitragDi, Okt 14, 2008 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.

Ich hätte da auch noch eine Frage, was die Kollisionen betrifft. Ich programmiere gerade das Spiel 'Breakout', in dem man den Schläger steuert, mit dem man dann den Ball treffen muss usw... in '3D'

Bei dem Befehl Collisions (Letzter Parameter) habe ich im 3D Tutorial gelesen:

3D Tutorial von B3D hat Folgendes geschrieben:

1 = Stop
2 = Slide1 - Full sliding collision
3 = Slide2 - Takes into consideration the angle of slopes


Ich möchte aber, dass der Ball abprallt, habe aber keinen Plan, wie ich das anstellen soll. Ich schau es mir noch mal genauer an, vielleicht kriege ich es auch noch von selbst raus.

MfG,
sheldon

ozzi789

BeitragDi, Okt 14, 2008 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
*spekulation*
du bewegst den ball mit ner Variable speed, und änderst einfach die richtung davon, ich denk mit dem negativen wert Pointentity vom Block würds gehn.
*/spekulation*
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

sheldon

BeitragDi, Okt 14, 2008 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
PointEntity vom Block?!

ozzi789

BeitragDi, Okt 14, 2008 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Sry, ich hab da was total durcheinander gebracht Sad
Des geht gar ned
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

sheldon

BeitragDi, Okt 14, 2008 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich hab es jetzt so gemacht, dass er den Abstand misst ( AbstandX = BlockX - KugelX ) genau so mit Z. (Ich arbeite mit X und Z, nicht mit X und Y(egal)) aber selbst da bin ich jetzt ratlos.

Die Kugel geht in den Block rein und die Formel zur Winkelveränderung stimmt 100%

EDIT
Ich habe gerade herausgefunden, dass die Funktion nur 1 mal und zwar am Programmstart ausgeführt wird. Die Bewegungsfunktion wird aber auch jeden Schleifendurch ausgeführt. Woran könnte DAS liegen? (der Funktionsaufruf ist natürlich in der Hauptschleife drin)

EDIT2
Irgendwas mit der Bedingung muss nicht stimmen:
Code: [AUSKLAPPEN]
dx# = s\x - b\x
dz# = s\z - b\z

If dx# <= 7 And dx# => -7 And dz# <= 7 And dz# => -7 Then


Ich bitte um Hilfe. Danke.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group