Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

04.01.2007, 22:00

Kollisionserkennung

hi hab ma wieder ne frage :)

also wenn ich z.b. einen körper auf einen anderen schnell zu beweg und ich eine kollisionserkennung eingebaut hab die den körper auf die hälfte seiner geschwindigkeit abbremst und ihn an dem anderm körper abprallen lässt

kann es dann sein dass der körper aufgrund der schnellen bewegung durch den anderen körper durch"flutsch" ohne dass er abprallt ?? (hört sich jetzt vllt bissl kompliziert an sry )

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

04.01.2007, 22:26

kann man da vielleicht auch was gegen machen ?? oder muss ich mir da ne alternative lösung einfallen lassen ??

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

04.01.2007, 22:29

du darfst nich nur alle 0.001 sekunden auf kollision prüfen, sondern musst schauen, ob der körper irgendwann zwischen letztem und aktuellen frame kollidiert ist ;)

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

5

04.01.2007, 22:29

du könntest auf kollisionbibliotheken zurückgreifen, die dynamisch arbeiten. ein beispiel steht in davids buch.

6

04.01.2007, 22:34

@ ghostrider im buch steht so weit ich des hier seh nur, dass es ne gute kollisionserkennungsbibiliothek gibt mitm link bei dem der link net geht ....

@ dot ich hätt keine ahnung wie ich des machen soll ....

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

04.01.2007, 22:49

naja, körper A bewegt sich von einem frame zum andren um ein stückchen, körper B evtl. auch.
jetzt stell dir vor wie körper A entlang seiner bewegungsrichtung extrudiert wird, das gleiche mit körper B.
jetzt musst du noch schauen ob sich die daraus resultierenden geilde schneiden und wenn ja, ob sich das ganze zeitlich ausgeht (ob nicht etwa körper B zum zeitpunkt wo körper A seine Bahn kreuzt schon weg ist).
das is natürlich weder einfach noch performant, aber so in etwa läuft das ab.

8

04.01.2007, 22:58

hmm also da mein spiel bis jetzt eh schon relativ unsauber programmiert is sollte ich die performace nicht noch mehr belasten :o aber wenns so ne bibiliothek gäbe wärs ja ganz praktisch ...

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

9

05.01.2007, 11:28

kannst auch ne physik engine nehmen. aber wenn du nur eine prüfung machen möchtest ob 2 objekte kollidieren, wäre eine engine schon übertrieben, denke ich.

10

05.01.2007, 14:21

Re: Kollisionserkennung

Zitat von »"Termi"«

kann es dann sein dass der körper aufgrund der schnellen bewegung durch den anderen körper durch"flutsch" ohne dass er abprallt ?? (hört sich jetzt vllt bissl kompliziert an sry )


Wenn dein PC 20 GHz hat, auf jeden Fall! :D

Jetzt im Ernst: Es hängt davon ab, wie oft du die Kollisionserkennung durchführst.

Wenn deine Game Loop so aussieht...

C-/C++-Quelltext

1
2
3
4
5
6
7
...
while(Irgendetwas)
{
ControlCollision();
PosX++;
}
...

... dann wird es dir nicht durchflutschen. Aber wenn du sie so schreibst...

C-/C++-Quelltext

1
2
3
4
5
6
7
...
while(Irgendetwas)
{
ControlCollision();
PosX += 20;
}
...

... dann könnte es passieren.
Sprachen: C/C++, C#, Assembler (16-Bit), QuickBASIC

Werbeanzeige