AGB  ·  Datenschutz  ·  Impressum  







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

Pong-Klon

Ein Thema von Nils_13 · begonnen am 17. Nov 2004 · letzter Beitrag vom 21. Nov 2004
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von Darty
Darty

Registriert seit: 8. Jun 2002
Ort: Kronau
731 Beiträge
 
#21

Re: Pong-Klon

  Alt 19. Nov 2004, 18:40
Zitat von Daniel:
Nils - diese Frage kann unmöglich ernst gemeint gewesen sein.
Haben wir ein neues Beruf gefunden
Matthias Knebel
Mfg M. Knebel [-Darty-]
- Gehörlose Delphianer gibt es selten -
www.team-knebel.de
  Mit Zitat antworten Zitat
Nils_13

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

Re: Pong-Klon

  Alt 19. Nov 2004, 18:41
War sie auch nicht

@darty
1. Ja

2. 123-128

3. 130-135

4. Bei dem Gegner prallt der Ball einfach ab (mit Physik) und beim Spieler1 prallt er komischer Weise nicht ab.

Delphi-Quellcode:
//Kollisionserkennung
if ball.Left<0 then
begin
  t.Enabled:= false;
  ball.Visible:= false;
  go_p2;
end;
Delphi-Quellcode:
if ball.Left>445 then
begin
t.Enabled:= false;
ball.Visible:= false;
go_p1;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Darty
Darty

Registriert seit: 8. Jun 2002
Ort: Kronau
731 Beiträge
 
#23

Re: Pong-Klon

  Alt 19. Nov 2004, 19:16
Zitat von Nils_13:
1. Ja
Schön
Zitat von Nils_13:
2. 123-128
3. 130-135
Die Zeilen sind identisch mit den in Deiner Antwort 4 gepostete Codes.
Zitat von Nils_13:
4. Bei dem Gegner prallt der Ball einfach ab (mit Physik) und beim Spieler1 prallt er komischer Weise nicht ab.

Delphi-Quellcode:
//Kollisionserkennung
if ball.Left<0 then // Wenn Linke Seite von Ball kleiner als 0 ist dann ...
begin // beginne
  t.Enabled:= false; // Timer ausschalten
  ball.Visible:= false; // Ball Ausblenden
  go_p2; // Gibt nur nen Text aus
end;
Delphi-Quellcode:
if ball.Left>445 then // Wenn Linke Seite vom Ball grösser als 445 ist dann ...
begin // beginne
t.Enabled:= false; // Timer ausschalten
ball.Visible:= false; // Ball Ausblenden
go_p1; // Gibt nur nen Text aus
end;
Kannst Du an den Kommentare die ich eingefügt habe erkennen das die Stelle die Du mir gezeigt hast doch keine Kollision Kontrolle ist. Sondern einfach nur das passieren soll wenn der Ball entweder bei 0 oder bei 445 ist.

Mal ehrlich Du hast doch den Code selber geschrieben oder ? Dann erklär es mir doch weil ich das nicht verstehe wo da die Kollisionfragen sein soll in den Zeilen ??

Zitat:
Bei dem Gegner prallt der Ball einfach ab (mit Physik) und beim Spieler1 prallt er komischer Weise nicht ab
Also wo ist die "Physik" in deinem Code ?
Matthias Knebel
Mfg M. Knebel [-Darty-]
- Gehörlose Delphianer gibt es selten -
www.team-knebel.de
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#24

Re: Pong-Klon

  Alt 19. Nov 2004, 19:44
Zitat von Darty:
Also wo ist die "Physik" in deinem Code ?
Siehst du sie etwas nicht


Ich denke mal das sind die Zeilen der Kollisionsabfrage:

Delphi-Quellcode:
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;
und

Delphi-Quellcode:
if ball.Left<0 then xspeed := -xspeed;

if ball.Top<0 then yspeed := -yspeed;
if ball.Left>445 then xspeed := -xspeed;
if ball.Top>445 then yspeed := -yspeed;
  Mit Zitat antworten Zitat
Benutzerbild von Darty
Darty

Registriert seit: 8. Jun 2002
Ort: Kronau
731 Beiträge
 
#25

Re: Pong-Klon

  Alt 19. Nov 2004, 19:46
Zitat von Pr0g:
Zitat von Darty:
Also wo ist die "Physik" in deinem Code ?
Siehst du sie etwas nicht
Doch sehe ich sie. Das Problem ist das jemand ein eigenes Programm schreibt und es selber nicht versteht. Das Kapier ich nicht

Nun hast Du es verraten aber er kommt jetzt auch nicht weiter
Matthias Knebel
Mfg M. Knebel [-Darty-]
- Gehörlose Delphianer gibt es selten -
www.team-knebel.de
  Mit Zitat antworten Zitat
Nils_13

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

Re: Pong-Klon

  Alt 19. Nov 2004, 19:48
Physik ist vieleicht das Falsche Wort, ich meine die toleranz.
  Mit Zitat antworten Zitat
Benutzerbild von Darty
Darty

Registriert seit: 8. Jun 2002
Ort: Kronau
731 Beiträge
 
#27

Re: Pong-Klon

  Alt 19. Nov 2004, 19:51
Was ist mit Toleranz ? erklär es doch mal näher ..
Matthias Knebel
Mfg M. Knebel [-Darty-]
- Gehörlose Delphianer gibt es selten -
www.team-knebel.de
  Mit Zitat antworten Zitat
Nils_13

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

Re: Pong-Klon

  Alt 19. Nov 2004, 19:53
Ich hab doch im Quellcode, dass der Ball auch beim Spieler1 abprallen soll ... nur irgendwie funktioniert es nicht (wegen diesem Problem hab' ich das Thema aufgemacht)

Die Toleranz ist die Physik...
ok...

[edit=Christian Seehase]Beiträge zusammengefasst. Wäre schön, wenn Du die Edit Funktion auch mal benutzen würdest . Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#29

Re: Pong-Klon

  Alt 19. Nov 2004, 19:59
Wie war das noch mit der Edit Funktion
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#30

Re: Pong-Klon

  Alt 19. Nov 2004, 20:29
Ich denke mal, dass das Problem folgendes ist: Du fragst bei der Kollisionskontrolle des Balls einen genauen Pixelwert der "Left"-Eigenschaft ab, welcher aber nie erreicht wird, da du den Ball immer um zwei Pixel bewegst. Ändere daher folgenden Code:
Delphi-Quellcode:
//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;
in diesem um:
Delphi-Quellcode:
//Ballkollision
if ((ball.Top > enemy.Top - 1 - toleranz) and (ball.Top < enemy.Top + enemy.Height + 1 + toleranz) and (ball.Left <= enemy.Left + enemy.width)) or
   ((ball.Top > player1.Top - 1 - toleranz) and (ball.Top < player1.Top + player1.Height + 1 + toleranz) and (ball.Left + ball.Width >= player1.Left)) then
  xspeed := -xspeed;
Die 1 in der Abfrage solltest du vielleicht noch bei Tollerarenz mit unterbringen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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:21 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