Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Pong-Klon (https://www.delphipraxis.net/34119-pong-klon.html)

Nils_13 17. Nov 2004 18:31


Pong-Klon
 
Hi,

ich hab Pong programmiert.

Irgendwie prallt der Ball am Balken vom Spieler1 nicht ab, sondern der Computergegner gewinnt

Danke im vorraus

Delphi-Quellcode:
unit b;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, LMDCustomControl, LMDCustomPanel,
  LMDCustomBevelPanel, LMDBaseEdit, LMDCustomEdit, LMDEdit,
  LMDCustomComponent, lmdcont, LMDCustomMemo, LMDMemo, MPlayer;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    t: TTimer;
    enemy: TPanel;
    gol: TLabel;
    start: TImage;
    startl: TLabel;
    ball: TShape;
    credits: TImage;
    Label1: TLabel;
    Image1: TImage;
    ende: TLabel;
    Label2: TLabel;
    p1: TLMDMemo;
    Label3: TLabel;
    p2: TLMDMemo;
    mp: TMediaPlayer;
    player1: TPanel;
    procedure ki;
    procedure Visible_false;
    procedure go_p1;
    procedure go_p2;
    procedure mp1;
    procedure tTimer(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure startClick(Sender: TObject);
    procedure startlClick(Sender: TObject);
    procedure Label1Click(Sender: TObject);
    procedure creditsClick(Sender: TObject);
    procedure Image1Click(Sender: TObject);
    procedure endeClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  xspeed: Integer=2;
  yspeed: Integer=2;
  bdirection: byte;

implementation

uses c;

{$R *.DFM}

procedure TForm1.ki;
var schritt: integer;
begin
schritt := 2;
  if ball.Top > enemy.Top then enemy.Top := enemy.Top+schritt;
  if ball.Top < enemy.Top then enemy.Top := enemy.Top-schritt;
end;

procedure TForm1.Visible_false;
begin
t.Enabled:= true;
p1.Visible:= false;
p2.Visible:= false;
Label3.Visible:= false;
start.Visible:= false;
startl.Visible:= false;
ball.Visible:= true;
player1.visible:= true;
enemy.Visible:= true;
label1.Visible:= false;
credits.Visible:= false;
ende.Visible:= false;
Image1.Visible:= false;
Label2.Visible:= false;
end;

procedure TForm1.go_p1;
begin
showmessage(p1.text+' '+'gewinnt');
end;

procedure TForm1.go_p2;
begin
showmessage(p2.text+' '+'gewinnt');
end;

procedure TForm1.mp1;
begin
mp.play;
end;

procedure TForm1.tTimer(Sender: TObject);
var toleranz : integer; // umgebung um den balken herum in pixeln
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;

//Ballkollisions Ton
if (Abs(ball.Left - enemy.left) <= 5) and (Abs(ball.Top - enemy.Top) <= 5) then mp1;
if (ball.top > player1.top -1-toleranz) and (ball.top < player1.top + player1.height +1+toleranz) and (ball.left = player1.left+player1.width) then mp1;

//Kollisionserkennung
if ball.Left<0 then
begin
  t.Enabled:= false;
  ball.Visible:= false;
  go_p2;
end;

if ball.Left>445 then
begin
t.Enabled:= false;
ball.Visible:= false;
go_p1;
end;

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;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var s: integer;
begin
s := 3;
if key=VK_UP then Player1.top:=player1.top-s;
if key=VK_DOWN then Player1.top:=player1.top+s;
if key=ord('S') then enemy.top:=enemy.top+s;
if key=ord('W') then enemy.top:=enemy.top-s;
end;

procedure TForm1.startClick(Sender: TObject);
begin
Visible_false;
end;

procedure TForm1.startlClick(Sender: TObject);
begin
Visible_false;
end;

procedure TForm1.Label1Click(Sender: TObject);
begin
form1.hide;
form2.show;
form2.c.scroll:= true;
form2.ef.Enabled:= true;
end;

procedure TForm1.creditsClick(Sender: TObject);
begin
form1.hide;
form2.show;
form2.c.scroll:= true;
form2.ef.Enabled:= true;
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
form1.close;
end;

procedure TForm1.endeClick(Sender: TObject);
begin
form1.close;
end;

end.

Die Muhkuh 17. Nov 2004 18:33

Re: Pong-Klon
 
Hi,


erstmal, wo ist das Problem?

Zweitens, du brauchst deinen Thread nicht nochmal erstellen. Die Mods können den alten verschieben

Drittens @Mods: Bitte closen und den anderen verschieben.

Nils_13 17. Nov 2004 18:35

Re: Pong-Klon
 
Hi Spider!

Ich hol mir grade ICQ...
[edit=Christian Seehase]Beiträge zusammengefasst. Mfg, Christian Seehase[/edit]

nailor 17. Nov 2004 18:37

Re: Pong-Klon
 
Lieber Nils!

Probier doch mal, alles wichtige sofort hinzuschreiben und nicht alle paar Minuten einen weitern Satz hinzuzufügen. Dann schilder noch genau dein Problem sowie deine bisherigen Untersuchungsergebnisse und dir wird sicherlich umgehend geholfen.

Michael

Nils_13 17. Nov 2004 18:44

Re: Pong-Klon
 
Könnt ihr mir helfen, dass der Ball auch beim Spieler1 abprallt, das ist alles :wink:

Nächstes mal mach ich's besser :-D

[edit=Christian Seehase]Beiträge zusammengefasst. Mfg, Christian Seehase[/edit]

jim_raynor 17. Nov 2004 18:54

Re: Pong-Klon
 
Es gibt auch ne Editier-Funktion in diesem Forum.

Nils_13 17. Nov 2004 19:08

Re: Pong-Klon
 
ich weiß

Matze 17. Nov 2004 19:10

Re: Pong-Klon
 
Zitat:

Zitat von Nils_13
ich weiß

Dann benutze die auch und poste bitte nicht dauernd deine unwichtigen Bemerkungen, sprich, jetzt nicht auf meinen Beitrag antworten "ok", sondern einfach vielleicht etwas mehr zurückhalten.

Durch deine Posts werden die Topics sehr unleserlich, danke.

Die Muhkuh 17. Nov 2004 19:11

Re: Pong-Klon
 
Hi,

ich will dir jetzt nicht zunahe tretten, aber dieses Forum ist kein Chat. Dafür hat das Forum einen Chat.
Bitte editiere deine Beiträge und überlege bevor du postet.

Ein Post mit "Hi Spider" und der nächste "Ich hol mir grad ICQ" gehören entweder in einen Post, aber eigentlich gar nicht ins Forum und wenn dann schreib ins kleiner Schrift.


So und nun Back to Topic


*MFG*

Manu :hi:


[edit] An dieser Stelle möchte ich noch an den Kodex bzw. ans FAQ hinweißen. Solltest du dir mal durchlesen. [/edit]

Darty 19. Nov 2004 16:01

Re: Pong-Klon
 
Könntest Du mal das Projekt zippen und hier anhängen vielleicht workle ich naher an dem rum ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:24 Uhr.
Seite 1 von 4  1 23     Letzte »    

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