Kollisionen

Z

Zonnex

Erfahrenes Mitglied
49
moin,
hab am diesen Wochenende mal wieder mit Android weitergearbeitet und mir ein Grundgerüst für dieses PingPong ähnliche Spiel (das wo man den Ball gegen Kästchen schießen muss bis alle weg sind, mir fällt beim besten willen grad nicht der Name ein ;) ) gebaut.

Ball sowie Spieler sind simple Canvas Zeichnungen...

Den Aufprall am Bildschirmrand / Spieler-Balken hab ich über die x/y-Koordinaten gelöst...

Zur Frage:
Wie kann man effizienter die Position des Balls mit der von anderen Grafiken vergleichen?

Am bestens wär es ja die Grafiken als richtige Objekte zu haben, aber irgentwie komme ich grad nicht auf die Lösung... :/

danke für's lesen :)
 
Also ich kannte das Spiel früher als "Brake".

Ich weiß nun jedoch nicht was du genau möchtest:
Falls du den Ball mit canvas.drawCircle(); zeichnest, kannst du mit dem Satz des Pythagoras die Entfernung zu anderen zum Schläger bestimmen.
 
Fr4gg0r schrieb:
Also ich kannte das Spiel früher als "Brake".

Ich weiß nun jedoch nicht was du genau möchtest:
Falls du den Ball mit canvas.drawCircle(); zeichnest, kannst du mit dem Satz des Pythagoras die Entfernung zu anderen zum Schläger bestimmen.

Das ist mir soweit auch klar. Hab da mal fix nen Bild gemacht.

Jetzt wäre es nur ziemlich umständlich für jeden Block sowas zu schreiben:
if(block_x - 25 <= ball_x && ball_x <= block_x + 25 && block_y <= ball_y+ball_r)

Ich dachte ehr ob man diese grafischen Zeichnungen irgentwie als Objekte handhaben kann:
if(block[1].getposition() == ball.getposition())

mfg
 

Anhänge

  • Spiel.jpg
    Spiel.jpg
    7,1 KB · Aufrufe: 197
du musst es ja nicht für jeden block schreiben

reicht ja, für die jeweils untersten blocks pro reihe ;) also max 4 in deinem fall
 
Ermittle mal die Positionen von beiden Vordepunkten von deiner Kugel,
(das hast du bereits getan, wenn du auf Kollision mit dem Banden prüfst )

Deibe Blöcke hast du höffentlich beirets in einen 2D-Array, und auch einfache Forme die deren positionen berechnet auch.

Jetzt ist es sehr einfach zu berechnen, ob eine (oder beide) von deiner Vordekrpunkten innerhalb eines Blocks liegt - wenn ja, wird die Geschwindigkeit auf ensprechender Achse einfach invertiert.
 

Ähnliche Themen

C
Antworten
7
Aufrufe
2.404
coreytaylor211
C
P
  • philobi
Antworten
1
Aufrufe
709
amfa
A
Jaiel
  • Jaiel
Antworten
0
Aufrufe
519
Jaiel
Jaiel
Zurück
Oben Unten