1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Kollisionen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Zonnex, 17.01.2010.

  1. Zonnex, 17.01.2010 #1
    Zonnex

    Zonnex Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    431
    Erhaltene Danke:
    49
    Registriert seit:
    12.09.2009
    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 :)
     
  2. Fr4gg0r, 17.01.2010 #2
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    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.
     
  3. Zonnex, 17.01.2010 #3
    Zonnex

    Zonnex Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    431
    Erhaltene Danke:
    49
    Registriert seit:
    12.09.2009
    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
      Dateigröße:
      11.4 KB
      Aufrufe:
      84
  4. swordi, 18.01.2010 #4
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    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
     
  5. ko5tik, 18.01.2010 #5
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    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.
     

Diese Seite empfehlen