AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Problem mit Spiel: Breakout Kollisionen
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Spiel: Breakout Kollisionen

Ein Thema von SemmelRoth · begonnen am 29. Mär 2008 · letzter Beitrag vom 29. Mär 2008
Antwort Antwort
SemmelRoth

Registriert seit: 27. Mär 2008
38 Beiträge
 
#1

Problem mit Spiel: Breakout Kollisionen

  Alt 29. Mär 2008, 02:07
Hey Leute ich bin dabei mit der 2D Engine von Andorra das Spiel BreakOut zu machen

Für die die das Spiel nicht kennen, unten ist ein Schläger und mit dem wehrt man die Kugel ab und versucht oben alle Steine kaputt zu machen.

also unten werd ich mal die ganzen Dateien anhängen und da ist auch die Exe Datei und der Code drinnen (Spielt es unter OpenGL)

mein einziges Problem ist es jetzt das ich nicht weiß wie ich dem Spiel sagen soll das wenn die Kugel einen Stein an der Seite trifft nicht die Y Richtung geändert wird sondern die X Richtung... (Hier ein kleines Bild was hoffentlich alles verdeutlicht: )

http://csrobin.cs.ohost.de/b2/brick1.jpg

also zur Zeit passiert egal wo die Kugel den Stein berührt das die Y Richtung ändert, wie mach ich das das er an der kurzen seite des Steins die nur die X Richtung wechselt?

hier noch meine Datei:
Angehängte Dateien
Dateityp: rar brickworld_513.rar (1,42 MB, 13x aufgerufen)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Problem mit Spiel: Breakout Kollisionen

  Alt 29. Mär 2008, 03:54
Denk dir an deiner Kugel einfach mehrere "Detektoren", an denen du dann die Kollision prüfst:
http://img3.imagebanana.com/img/k36x...fsfsfdsfds.png
Hier prüfst du an den detektoren 1,2,3 und 4. Bei 1 und 3 änderst du die X-Richtung, bei 2 und 4 die Y-Richtung. So würde ich es jedenfalls machen.
Miniaturansicht angehängter Grafiken
fsdfsfsfdsfds_811.png  
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Problem mit Spiel: Breakout Kollisionen

  Alt 29. Mär 2008, 04:49
Ich würde die Detektion eher an den Bricks machen, weil es sein kann, dass du keinen derjenigen an der Kugel triffst.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
SemmelRoth

Registriert seit: 27. Mär 2008
38 Beiträge
 
#4

Re: Problem mit Spiel: Breakout Kollisionen

  Alt 29. Mär 2008, 13:07
ja nur wie soll ich abfragen an welcher der Seiten (Detektoren) die Kugel etwas trifft?
hast mal die Kollisions Funktion angeguckt?
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Problem mit Spiel: Breakout Kollisionen

  Alt 29. Mär 2008, 13:36
Ohne zu gucken: Du stellts einfach "irgendwie" die Kollision fest, und kannst dann folgendes einfach machen:
- Ist die am weitesten rechte Y-Koordinate im Brick links der am weitesten linken Y-Koordinate der Kugel, ist die Kugel von rechts angestoßen
- Ist die am weitesten linke Y-Koordinate im Brick rechts der am weitesten rechten Y-Koordinate der Kugel, ist die Kugel von links angestoßen
- ...

Setzt nur voraus, dass deine Kollisionserkennung zuverlässig ist, und evtl. musst du mit dem jeweiligen kürzesten Abstand der "Kugelseiten" zu den Brick-Strecken arbeiten, wenn du zulässt, dass die Kugel "in den Brick" fliegen kann.

Die generell sauberste Lösung wäre es, mit Vektoren zu arbeiten, und die Kollisionserkennung durch Schnittpunktberechnung des Richtungsvektors der Kugel mit den Brick-Seiten zu machen. Dabei kommt automatisch mit heraus, wo genau die Kugel nun auftrifft, und du kannst verhindern, dass sie sich durchdringen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz