level

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Pythagoras!
Benutzeravatar
diGGa
Beiträge: 249
Registriert: 01.04.2005 11:00
Kontaktdaten:

Beitrag von diGGa »

wenn das jetzt auf mich bezogen ist dann musst du mir den zusammenhang mal n bisschen genauer erklären... sehs grad nich so genau :)
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Du kannst mit Pythagoras die entfernung berechnen,
ist sehr schnell.
Nachteil: deine Objekte sind durch kreise definiert.
Benutzeravatar
diGGa
Beiträge: 249
Registriert: 01.04.2005 11:00
Kontaktdaten:

Beitrag von diGGa »

kannst das an nem konkretem beispiel festmachen?
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Habe zwar nicht alles gelesen aber zum Phytagoras
Durch diese Formel kann man bei einem Dreieck die Ankathete ,Gegenkathete und die Hypertinuse errechnen:a²+b²=c²
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

wenn a der x abstand zwischen zwei punkten ist und b der y abstand zwischen zwei punkten, dann ist die wurzel von (a^2+b^2) der absolute abstand zwischen diesen beiden punkten.

dass das mit einer wurzel drinn schneller als bounding box sein soll, halte ich aber für ein gerücht.

generell macht es auch keinen sinn, jedes tile auf kollision zu überprüfen, wo es doch ziemlich einfach und offensichtlich ist, ersteinmal herauszufinden wo so eine kollision überhaupt stattfinden könnte.
Benutzeravatar
diGGa
Beiträge: 249
Registriert: 01.04.2005 11:00
Kontaktdaten:

Beitrag von diGGa »

ich hab in dem spiel eine maus die auf einem 640x320 map bewegt wird... kein scrolling nichts anderes. ich glaube da ist es überflüssig erstmal nur den genauen umkreis zu überprüfen...

aber vielleicht bin ich grad ausm zusammenhang gekommen aber was bringt es mir die entfernung zwischen 2 punkten auszurechnen? also konkret bezogen auf tile engine.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

ist halt auch eine möglichkeit für kollisionsabfrage, das ganze nennt sich "bounding sphere" kollision.

640*320=204800 kollisionsabfragen und dass nur per frame! das ist doch irrsinnige rechenzeitverschwendung. wenn du weißt, dass dein ball 40*40 pixel groß ist, deine tiles, vieleicht 50*50 pixel groß sind und die positions deines balls kennst, dann kommen doch nur 9 tiles für eine mögliche kollision in fragen, nämlich die bei der position modulo tilegröße +0 bis +2.
Benutzeravatar
diGGa
Beiträge: 249
Registriert: 01.04.2005 11:00
Kontaktdaten:

Beitrag von diGGa »

naja genaugenommen sind es ja nur 300 kollisionsabfragen weil ich nur 20x15 tiles darstelle.. aber du hast schon recht ich könnte mich auch nur mit den 9 tiles um den mauszeiger herum beschäftigen.

gibt es für diese art der kollisionsdetektion eine erklärung auf deutsch? ich hab nur auf englisch gefunden oder für opengl3d kram und ich brauchs ja "nur" für 2d
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

20 x 15 = 300 ist die Anzahl der Tiles, nicht aber der Kollisionsabfragen.
Das wäre dann 300 x 299 = 89700, weil jedes Teil mit jedem anderen auf
Kollision überprüft wird.

Hä? :? Moment, wo liegt da grad mein Denkfehler? /:-> :shock:
Antworten