Thema: Delphi PingPong

Einzelnen Beitrag anzeigen

NoRiX

Registriert seit: 26. Apr 2005
6 Beiträge
 
#1

PingPong

  Alt 5. Mai 2005, 21:12
Ich weiss das es dieses Thema schon oft genug hier gab habe aber auf meine Frage keine Antwort mit Hilfe der Suchfunktion gefunden! Ich in jetzt soweit das der Ball hin und her fliegt und an den Wänden abprallt, aber ich bekomm es nicht hin das er an dem Paddel abprallt Kann mir da einer helfen? Habe als Paddel nen Button verwendet!

Würd auch noch gerne wissen wie man es anstellt das man an zb für den Ball nen eigenes Bild verwenden kann!

Delphi-Quellcode:
  
private
      Ball: TBitmap;

    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  posx,posy,geschwx,geschwy,breite,hoehe:integer;
implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
repaint;

breite:=clientwidth;
hoehe:=clientheight;
//Ball
Canvas.Draw(posx+40,posy+40, Ball);

//Bewegung
posx:= posx + geschwx;
posy:= posy + geschwy;

//Gegner
if posy > button2.Top then button2.Top := button2.Top+4;
if posy < button2.Top then button2.Top := button2.Top-4;

//Abprallen Y-Achse
if posy >= hoehe-60 then geschwy:= - geschwy ;
if posy <= -40 then geschwy:= - geschwy ;
//Abprallen X-Achse
if posx <= -50 then
begin
timer1.enabled:= false;
showmessage('Game Over');
end;

if posx >= breite-40 then
begin
timer1.enabled:= false;
showmessage('Gewonnen');
end;

//Abprallen player1 und 2
if
(posx > (button2.left-30 ) + Button2.Width -40 )
or
(posx < Button1.Left + Button1.Width - 40)
then
begin
if
(posy < Button1.Top + Button1.Height )
and
(posy > Button1.Top )
or
(posy < Button2.Top + Button2.Height -50 )
and
(posy > Button2.Top - 70 )
then
geschwx := - geschwx ;

end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

//festgelegte Geschwindigkeit
geschwx:=0;
geschwy:=0;
//Ball Grafik
Ball := TBitmap.Create;
Ball.LoadFromFile('Ball.bmp');

end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
//Paddel Bewegung
button1.top:= y ;
end;

// SPielbeginn per SPace
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if getasynckeystate (vk_space) <> 0 then
begin
label1.visible:=false;
geschwx:=4;
geschwy:=4;
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
FreeAndNil(Ball);
end;
procedure TForm1.Beenden1Click(Sender: TObject);
begin
close
end;
Angehängte Dateien
Dateityp: zip exe_281.zip (166,5 KB, 39x aufgerufen)
Dateityp: zip pongping_143.zip (175,4 KB, 45x aufgerufen)
  Mit Zitat antworten Zitat