AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi ballbewegung in breakout spiel
Thema durchsuchen
Ansicht
Themen-Optionen

ballbewegung in breakout spiel

Ein Thema von Ricoo · begonnen am 17. Jun 2008 · letzter Beitrag vom 1. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2      
Ricoo

Registriert seit: 10. Jul 2007
35 Beiträge
 
#1

ballbewegung in breakout spiel

  Alt 17. Jun 2008, 22:29
hallo leute =)

ich bin gerade dabei mich an einem breakout-clon zu versuchen. dazu hab ich mir mal die tutorials zu andorra 2d angeschaut.
nun bin ich soweit, dass ich ein spielfeld und einen schieber hab, den man auch schon bewegen kann.

wie der ball sich im prinzip bewegt weiss ich, kenn ich ja vom schieber her.
mein problem ist, dass ich das mit den kollisionen und der flugbahn nicht so ganz hinbekomme.. mir fehlt da irgentwie der ansatz und ich weiss so gar nicht wie man das realisieren könnte.

es wäre toll wenn mir das mal jemand kurz, stichwortartig erklären könnte oder wenigstens ein paar stichwörter für google nennen könnte.
ein beispiel wäre natürlich am besten

gruß
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#2

Re: ballbewegung in breakout spiel

  Alt 17. Jun 2008, 22:36
Schau doch mal in den Demos zu Andorra 2D - da ist ein kleines Breakoutspiel dabei. Auch wenn dieses noch etwas verbesserungswürdig ist.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#3

Re: ballbewegung in breakout spiel

  Alt 17. Jun 2008, 22:39
Hi,

wenn ich es mir mal so überlege, ist der Balken ähnlich wie ein Pong-Balken. Daher kann ich dir mal gerade einen uralten Codeausschnitt meines Pong-Klons geben:
Delphi-Quellcode:
procedure TfrmMain.tTimer(Sender: TObject);
var Toleranz : Integer;
begin
  Toleranz := Ball.Width div 2;
  // KI-Aktivierung
  KI;

  // Vereinbarungen
  Ball.Left := Ball.Left + XSpeed;
  Ball.Top := Ball.Top + YSpeed;

  // Ballkollision
  if (Abs(Ball.Left - Enemy.Left) <= 5) and (Abs(Ball.Top - Enemy.Top) <= 5) then
    XSpeed := -XSpeed;
  if (Ball.Top > Player1.Top -1-Toleranz) and (Ball.Top < Player1.Top + Player1.Height +1+Toleranz) and (Ball.Left = Player1.Left+Player1.width) then
    XSpeed := -XSpeed;

  // Kollisionserkennung
  if Ball.Left < 0 then
  begin
    t.Enabled := False;
    Ball.Visible := False;
    go_p2;
  end;
end;
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#4

Re: ballbewegung in breakout spiel

  Alt 20. Jun 2008, 23:09
Das könntest du auch erstmal so lösen:
du hast zwei Boolean Variablen: z.b. links und Oben. bei einer Kollision vertauscht du diese.
Beim zeichnen des Balles musst du natürlich dann aufpassen z.b
Delphi-Quellcode:
if links then
  Ball.x-1
else
  ball.x+1

if Oben then
  ball.y-1
else
  ball.y+1
Es gibt zwar bessere Möglichkeiten, aber davon kenne ich noch keine. Ich meine sogar bei einer Delphi Version war mal so ein Pong als Beispiel dabei....
Und hier im Forum meine ich auch in der Code-Lib
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#5

Re: ballbewegung in breakout spiel

  Alt 22. Jun 2008, 10:57
Die grundlegende Variante ist "Einfallswinkel gleich Ausfallswinkel", sprich wenn der Ball auf den Schläger trifft, kehrt sich seine Bewegung in Richtung des Schlägers um. Ein Codebeispiel für diese Variante gibts weiter oben schon, dort wird mit zwei Variablen die Bewegung hoch/runter und links/rechts separat verarbeitet.

Die fortgeschrittenere Variante wäre dass sich der Ausfallswinkel ändert, je nachdem wo der Ball auf den Schläger trifft. In der Mitte bleibt alles wie gehabt, trifft der Ball jedoch auf die Aussenbereiche des Schlägers, bekommt er einen seitlichen Drall. Kann man sich als elastischen Aufprall vorstellen: Der Ball verformt sich beim Aufprall auf den Schläger, wenn er dabei über den Rand des Schlägers hinausragt, bewirkt das einen Drehimpuls zur Seite und der Ausfallwinkel wird flacher/steiler (je nach Richtung aus der der Ball kam und auf welche Kante er prallte) als der Einfallswinkel.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#6

Re: ballbewegung in breakout spiel

  Alt 22. Jun 2008, 11:27
Könntest du mal zur "fortgeschrittenere Variante" ein kleines beispiel machen ?
Bisher habe ich immer nur die einfache Variante gekannt und auch umgesetzt.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#7

Re: ballbewegung in breakout spiel

  Alt 22. Jun 2008, 11:55
Erinner mich bitte Mitte nächster Woche nochmal daran, ich schwitze gerade an einem Abgabetermin und hab deswegen wenig Zeit.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#8

Re: ballbewegung in breakout spiel

  Alt 22. Jun 2008, 12:05
Vielen Dank erstmal.... werde ich machen.
Dann viel glück das du es noch rechtzeitig schaffst.

Das Beispiel muss ja nicht groß sein, nur ein kleines *G*
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Gandalfus

Registriert seit: 19. Apr 2003
407 Beiträge
 
Delphi 2006 Professional
 
#9

Re: ballbewegung in breakout spiel

  Alt 22. Jun 2008, 13:26
man könnte einfach die geschwindigkeit den schlägers zu der des ballles addieren (Vektoren).
zur Bewegung: http://wiki.delphigl.com/index.php/Timebased_Movement
Besucht doch mal meine Homepage
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#10

Re: ballbewegung in breakout spiel

  Alt 23. Jun 2008, 11:44
Das mit den Vektoren habe ich bis heute noch nicht verstanden:
Sind das einfache TPoints ? z.b.
in den die Richtung drin steht ?
z.b.
TPoint.x:=4 TPoint.y:=5
?

Und jetzt müsste ich nur noch meine Object Position + dem TPoint machen ?
und wenn da ein - drin steht macht er das trotzdem ? z.b. wenn der Ball nach Links fliegen soll.
Evlt. sind das auch zu große werte die ich als beispiel genommen habe. Sollte ich bei einem BreakOut Clone kleinere Werte nehmen ? z.b. 0.4 oder so ? Damit es eine leichte Abweichung gibt ?

Aber ich frage mich da wie man die dann Vertauschen könnte.
(Zum Thema habe ich mir aber schon einige Tutorials angesehen)
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:55 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