Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Break-Game, Kugel auf Rechtecklanden lassen ... (https://www.delphipraxis.net/116308-break-game-kugel-auf-rechtecklanden-lassen.html)

Sharky 26. Jun 2008 17:52

Re: Break
 
Hai KleinAmann,

bitte gebe deinem Thread einen Titel von dem man auch gleich auf den Inhalt der Frage schliessen kann.

Dafür musst Du nur auf den "Edit"-Button neben dem obersten Posting von Dir klicken.

Nur wenn ein Thread einen Titel hat der auf die Frage schliessen lässt haben andere die Möglichkeit, durch benutzen der Suchfunktion, eine Lösung für ähnliche Fragen zu finden.

Danke :!:

KleinAmann 26. Jun 2008 20:18

Re: Break-Game, Kugel auf Rechtecklanden lassen ...
 
hey,

also wenn man das ungleich macht (<= | >=)
dann funtz es aber es ist wichtig dass es genau ist weil
sonst hat das Spiel dummerweiße keinen sinn :(

Bitte um weitere Hilfe


P.s ich schreibe so spät da unser Router den Geist aufgeben hat.
sry

Medium 27. Jun 2008 00:48

Re: Break-Game, Kugel auf Rechtecklanden lassen ...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Genau wird dein Ball jedoch in den seltensten Fällen treffen, da er sich wahrscheinlich meist um mehr als nur einen Pixel pro Step bewegt. Die genauste Möglichkeit das in den Griff zu bekommen ist es, wenn du den Flugvektor den Balles nimmst, und die Gerade die er erzeugt mit der Kollisionsgeraden schneidest. Liegt der Schnittpunkt innerhalb des unskalierten Flugvektors, tritt zwischen dem letzten und nächsten Step die Kollision ein. Dann kannst du den Flugverktor an der Normalen der Kollisionsgeraden im Schnittpunkt spiegeln (Reflexion), und ihn um den restlichen Betrag den der vorige Flugvektor über die Kollisionsgerade hinaus geht in die neue Richtung verschieben. Damit hast du dann die Kollision "zwischen" zwei Steps korrekt berechnet, obwohl der Ball den Schläger niemals sichtbar berührt.

Der einfachere und ungenauere (meist aber ausreichende) Weg ist es, den Ball sobald der über die Kollisionsgerade hinaus ist, genau über diese zu platzieren, und fortan den reflektierten alten Flugvektor zum aktuellen zu machen. Damit erspart man sich die Schnittpunktbestimmung, und die Verhältnisbildung des Schnittpunktes zum Flugvektor, sowie ein paar Additionen. Nachteil der Variante ist, dass man den tatsächlichen Schnittpunkt ja nur noch approximiert, und nicht die exakte Flugbahn einhält. Dadurch kann das gerade bei hohen Geschwindigkeiten zu ruckartigem unerwarteten Verhalten führen.

Gruß,
Medium

Edit: Hab mal noch n Bildchen zu obigem gemacht. In Worten ist das glaube ich schwer nachvollziehbar.

KleinAmann 27. Jun 2008 14:23

Re: Break-Game, Kugel auf Rechtecklanden lassen ...
 
hey,

erstaml WOW für die geile Idee und für die Grafik.

Leider denk ich nicht dass ich das hingrieg, werd aber mal versucehn.

Vielen Dank nochmal an alle ich werd mich aufjedenfall melden ;)

Mfg Domi

KleinAmann 27. Jun 2008 18:20

Re: Break-Game, Kugel auf Rechtecklanden lassen ...
 
hey,

Hab jetzt sehr viel ausprobiert aber bekomms einfach nicht hin =(

Könnt ihr mir ein Tipp geben?

Mfg
Domi

Die Muhkuh 28. Jun 2008 07:12

Re: Break-Game, Kugel auf Rechtecklanden lassen ...
 
Morgen,

häng doch bitte mal das Projekt an.

KleinAmann 28. Jun 2008 10:37

Re: Break-Game, Kugel auf Rechtecklanden lassen ...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Morgen =),

Hier ist mein Code, und das ganze Projekt ist net grad das beste weil
in die richtung hab ich noch nichts gemacht.

Mfg Domi

P.s wenn ich in Delphi mein Priójekt abspeichern will, kommt oft
das ich eine Acess violation hab und dann noch was mit karasx2.dll.
kennt jemand das Problem, und kann helfen wäre
echt super nett =)

mimi 28. Jun 2008 13:40

Re: Break-Game, Kugel auf Rechtecklanden lassen ...
 
es gibt auch noch ptinRect evlt. reicht das schon für deine Kollision Erkennung.

KleinAmann 29. Jun 2008 10:58

Re: Break-Game, Kugel auf Rechtecklanden lassen ...
 
wie funktioniert die Funktion?

mimi 29. Jun 2008 11:44

Re: Break-Game, Kugel auf Rechtecklanden lassen ...
 
Ganz einfach: Du übergibst zuerst ein TRect und dann ein TPoint.
Es dürften hier genügend beispiele geben. Für ein BreakOut Clone dürfte das ausreichen.

am besten währe es du schreibst dir eine Funktion die alle Objekte durch geht und die angeben Position vergleich.
Die Funktion prüft letztendlich nur ob ein Punkt in Viereck liegt. Wenn ja wird True zurück geben wenn nein wird False zurück geben.

Es gibt noch weitere nützliche Funktionen. z.b. eine die vergleich ob zwei Viereck sich schneiden.

PS:
Ich kann dir gerne mal meine 2D Engine geben bzw. die gibt es hier zum runter laden.
Allerdings geht sie nur in Verbindung mit Lazarus. Die Engine basiert komplett auf Canvas.

Oder du kannst auch noch Andorra nutzten, wie ich gesehen habe ist es damit auch recht einfach.
Aber vermutlich währe es für ein einfachen BreakOut Clone übertrieben(dort gibt es übrings schon einen als beispiel)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 Uhr.
Seite 2 von 4     12 34      

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