Thema: Prism Ping Pong @ Delphi

Einzelnen Beitrag anzeigen

capsoule

Registriert seit: 1. Mär 2010
1 Beiträge
 
#1

Ping Pong @ Delphi

  Alt 1. Mär 2010, 19:31
hallo leute,
ich bin neu hier..Hab mich grade angemeldet, weil ich eure Hilfe brauche
Ich programmier grad das Kultspiel "Ping Pong" mit Delphi.

Hatte viele Probleme, weil ich noch ein ziemlicher Anfänger bin, was Programmieren angeht.
Einige konnte ich lösen, habe mir auch schon auf anderen Seiten Rat gesucht. Nun habe ich grad heute das Problem geknackt, wie ich meine Spieler bewegen kann, denn ich wusste nicht, wie das Prog abfragen soll, welche Taste ich gerade drücke um den Spieler zu bewegen (1. Player: W,S ; 2. Player: I,K)
Allerdings habe ich das in einer neuen VCL gemacht...Hat super geklappt.
Eben wollt ichs in mein Ping Pong einbinden...aber es tut sich gar nichts. Vielleicht wisst ihr wo der Fehler ist.

Danke für alle Tipps

Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if (key='s') and (panel2.top<(320-75)) then //spieler1 W(oben) & S(unten)
    panel2.top:=panel2.top+5
  else
    if (key='w') and (panel2.Top>0) then
        panel2.Top:=panel2.Top-5;
  if (key='i') and (panel3.top<(320-75)) then //spieler2 I(oben) & K(unten)
    panel3.top:=panel3.top+5
  else
    if (key='k') and (panel3.Top>0) then
        panel3.Top:=panel3.Top-5;
  


end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if (shape1.Top<panel2.Top) or (shape1.Top>(panel2.top+300)) then //spieler1
    begin
      if shape1.left<(panel2.Left+30) then
        begin
          x:=0;
          y:=0 ;
          panel2.Color:=clred;
          panel3.Color:=clgreen;
          shape1.top:=450-32;
          shape1.Left:=600-32;
          punkt2:=punkt2+1;
          label2.Caption:=inttostr(punkt2);
        end;
  end;


  if (shape1.left<(panel2.left+30)) then
    begin
      x:=-x;
    end; //ende player 1

  if (shape1.Top<panel3.Top) or (shape1.Top>(panel3.top+300)) then //spieler2
    begin
      if (shape1.left+65)>panel3.Left then
        begin
         x:=0;
         y:=0 ;
         panel2.Color:=clgreen;
         panel3.Color:=clred;
         shape1.top:=450-32;
         shape1.Left:=600-32;
         punkt1:=punkt1+1;
         label1.Caption:=inttostr(punkt1);
        end;
    end;


  if (shape1.Left+65)>panel3.left then
    begin
      x:=-x;
    end; //ende player 2

  if (shape1.top<0) or (shape1.Top>840) then
    begin
      y:=-y;
    end;


shape1.Left:=shape1.Left+x;
shape1.Top:=shape1.top+y;
Miniaturansicht angehängter Grafiken
screen-01-03-10_785.jpg  
  Mit Zitat antworten Zitat