AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Pong - Problem bei der Ballkollision

Ein Thema von .chicken · begonnen am 7. Dez 2006 · letzter Beitrag vom 12. Dez 2006
Antwort Antwort
Seite 3 von 5     123 45      
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#21

Re: Pong - Problem bei der Ballkollision

  Alt 10. Dez 2006, 21:39
Also entweder ich hab nur n totales Brett vorm Kopf...

Ne also mein Problem is ja, dass ich Pro Ball_berechnen Prozedur die ich aufrufe den Ball ja z.B. um X + 50 und Y + 70 oder sowas verschiebe, wenn danach der Ball schon mitten im Spielbrett ist, kann ich nichtmehr prüfen auf welcher Kante er denn aufgekommen waere...verstehste was ich meine? ^^

Kansnte vielleicht mal n Codebeispiel schreiben wie dus machen wuerdestr, wenns nich zuviel verlangt is?
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#22

Re: Pong - Problem bei der Ballkollision

  Alt 10. Dez 2006, 21:51
Ach so meinste das. Aber bevor das passiert wäre der Ball doch schon längst von der Ecke abgeprallt (es sei denn, du bewegst ihn wirklich um 70 und 50 Pixel auf einmal). Um die Kollision mit der Ecke wirst du also nicht drum rumkommen. Es gibt 3 mögliche Kollisionen:

1. auf waargerechte Kante (einfach)
2. auf senkrechte Kante (auch einfach)
3. auf Ecke (schwerer)

Aber wenn du's realistisch machen willst, musst du auch diese 3. Kollision berücksichtigen.
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#23

Re: Pong - Problem bei der Ballkollision

  Alt 10. Dez 2006, 21:58
Ja aber mein Problem besteht darin rauszufinden welche der 3 Moeglichkeiten nun zutrifft, denn der Ball wird ja wie erwaehnt jedes mal um viele Pixel bewegt (damit er auch Geschwindigkeit erhaelt)!

Gibts ne Moeglichkeit die Richtung der Bewegung als Winkel anzugeben nich als X und Y-Koordinate? dann waer das sicher n bissl einfacher!!!

Haste sonst ne Idee wie das geht oder irgendwer anders?

Danke vielmals dass du dich so damit auseinandersetzt =)
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#24

Re: Pong - Problem bei der Ballkollision

  Alt 10. Dez 2006, 22:23
Delphi-Quellcode:
if ObererKugelrand.Y < Schlägerunterkante.Y then
   if EntfernungVomKugelmittelpunktZurEcke < Kugel.Radius then
      Eckenkollision
   else if (Kugel.Mittelpunkt.X < RechteKanteSchläger.X) and (Kugel.Mittelpunkt.X > LinkeKanteSchläger.X) then
      Unterkantenkollision
   else if (LinkerKugelrand.X < RechterSchlägerrand.X) then
      RechteKantenKollision
   else if (RechterKugelrand.X > LinkerSchlägerrand.X) then
      LinkeKantenKollision
   else
      GarKeineKollision;
Puh. Jetzt bin ich aber mit meinem Latein am Ende.
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#25

Re: Pong - Problem bei der Ballkollision

  Alt 11. Dez 2006, 07:36
Delphi-Quellcode:
if ObererKugelrand.Y < Schlägerunterkante.Y then
   if EntfernungVomKugelmittelpunktZurEcke < Kugel.Radius then //dazu hab ich nochmal ne grafik angehaengt, funktioniert so glaub ich auch nich ganz richtig, das is mir aber erstmal auch nich das wichtigste...
      Eckenkollision
   else if (Kugel.Mittelpunkt.X < RechteKanteSchläger.X) and (Kugel.Mittelpunkt.X > LinkeKanteSchläger.X) then
      Unterkantenkollision
   else if (LinkerKugelrand.X < RechterSchlägerrand.X) then
      RechteKantenKollision
   else if (RechterKugelrand.X > LinkerSchlägerrand.X) then
      LinkeKantenKollision
   else
      GarKeineKollision;

D.h. bei deinem Beispiel duerfte ich den Ball nie schneller als der Radius bewegen oder??? Sonst waer nichtmehr gewaehrleistet dass das alles funktioniert glaub ich..

Da muss es doch auch omnch ne andere Moeglichkeit geben oder???
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#26

Re: Pong - Problem bei der Ballkollision

  Alt 11. Dez 2006, 08:54
Ich seh gerade, dass die Anfangsgeschwindigkeit des Balles schon zwischen 3 und 11 Pixel pro Timer-Intervall liegt. Ich würde stattdessen lieber das Timer-Intervall runterstellen (ca. 20). Dann kannst du eine niedrigere Startgeschwindigkeit wählen. Wie hoch ist denn dein Timer-Intervall?

Eine andere Möglichkeit gäbe es auch: Wenn die Geschwindigkeit z.B. 10 beträgt, in Ball_berechnen ne Schleife von 1 bis 10 laufen lassen, und immer nur um 1 verschieben, Kollisionsabfrage, um 1 verschieben, Kollisionsabfrage usw.

PS: Du hast den Anhang vergessen.
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#27

Re: Pong - Problem bei der Ballkollision

  Alt 11. Dez 2006, 15:03
Mein Intervall is so schon auf 20 ^^

Aber das mit der Schleife probier ich mal...danke! Da seh ich nurnoch das Problem, dass ich ja 2 unteschiedliche x und y werte hab aber sie ja in einer Schleife unterbringen muss aber das krieg ich irgendwie hin....

Den Anhang haeng ich jetzt nochma dran!
Angehängte Grafiken
Dateityp: bmp unbenannt_211.bmp (453,1 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#28

Re: Pong - Problem bei der Ballkollision

  Alt 11. Dez 2006, 15:27
@Anhang:

Ja, dann musst du wohl die Schleife benutzen, damit die Kollision schon vorher abgefangen wird.
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#29

Re: Pong - Problem bei der Ballkollision

  Alt 11. Dez 2006, 15:48
Argh nichmal mit der Schleife krieg ich das hin, weil ich ja nur um ganze Werte verschieben kann...

Jetzt hab ich Richtung.X = 10 und Richtung.Y = 7 z.B...jetzt würd ich ne Schleife mit 10 Wiederholungen machen und jedesmal X um 1 und Y um Richtung.Y / Richtung.X aber das waer dann ja gerundet, d.h es wird ungenau und wenn Richtung.Y / Richtung.X z.B. 0,3 waer wuerde Richtung.Y ja zu null...

Verstehste mein Problem?
Boah is das kompliziert...wie wird sowas denn bei komplexeren Sachen gelöst??? Is die Bewegung mit z.B. DelphiX besser oder einfachrer zu realisieren?

MfG
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#30

Re: Pong - Problem bei der Ballkollision

  Alt 11. Dez 2006, 16:00
Speicher doch die Position des Balles in einem reellen Typ.

Keine Ahnung, wie das mit DelphiX aussieht, ich hab bisher auch immer alles mit PaintBox und Co. gemacht. Glaub aber kaum, dass DelphiX dir diese Arbeit abnimmt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 5     123 45      


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 05:35 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