Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Pong Spiel - Ball bewegt sich nicht (https://www.delphipraxis.net/92018-pong-spiel-ball-bewegt-sich-nicht.html)

fransa 13. Mai 2007 13:49


Pong Spiel - Ball bewegt sich nicht
 
Hallo erst mal,
ich finde es richtig toll von euch, dass ihr euch um die Probleme von anderen kümmert und ihnen helft. Das ist wirklich nett von euch.
Ich selber habe da auch eine Frage an euch, und zwar wollte ich als Hausaufgabe das Pong Spiel programmieren, scheitere aber daran, dass der Ball sich nicht bewegt. Im Unterricht habe ich es hin bekommen, aber zu Hause wusste ich nicht mehr wie es ging. Muss man dann beim Timer im Objektinspektor noch was einstellen oder im Quelltext? Wie gesagt der Ball ist vorhanden nur bewegt er sich nicht.
Ich hoffe, dass mir vielleicht irgendwer helfen kann. Danke

Die Muhkuh 13. Mai 2007 14:06

Re: Pong Spiel - Ball bewegt sich nicht
 
Hi fransa,

erst einmal herzliche Willkommen in der Delphi-PRAXiS :dp:

Wenn Du uns Deinen Quellcode zeigst, können wir Dir sicher noch um einiges besser helfen.

Wenn Du den Quellcode einfügst, mache noch ein [delphi][ /delphi] (ohne das Leerzeichen) drum rum, damit das Forum den Code wie in Delphi hervorhebt.

fransa 13. Mai 2007 14:11

Re: Pong Spiel - Ball bewegt sich nicht
 
Delphi-Quellcode:
unit Unit1;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, Menus, ExtCtrls;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Menu: TMenuItem;
    Start1: TMenuItem;
    Beenden1: TMenuItem;
    Image1: TImage;
    Image2: TImage;
    Timer1: TTimer;
    procedure Beenden1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Timer1Timer(Sender: TObject);
    procedure Start1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  d,f,g,x5,y5,x6,y6:integer;

implementation

{$R *.DFM}

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

procedure TForm1.FormCreate(Sender: TObject);
begin
 x5:=150;y5:=100;x6:=180;y6:=130;
 d:=5;
 image1.canvas.brush.color:=clwhite;
 image1.canvas.rectangle(0,0,600,400);
 image1.canvas.brush.color:=clmaroon;
 image1.canvas.ellipse(x5,y5,x6,y6);
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  image2.canvas.brush.color:=clnavy;
  image2.canvas.rectangle(100,100,150,200);
  if (GetAsyncKeyState(vk_up)<>0) then image2.top:=image2.top-d;
  if (GetAsyncKeyState(vk_down)<>0) then image2.top:=image2.top+d;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 x5:=x5+f;y5:=y5+g;x6:=x6+f;y6:=y6+g;
 with image1.canvas do
   begin
    brush.color:=clwhite;
    rectangle(0,0,600,400);
    brush.color:=clmaroon;
    ellipse(x5,y5,x6,y6);
    if x5>=570 then f:=f*(-1);
    if y5>=370 then g:=g*(-1);
    if x6<=30 then f:=f*(-1);
    if y6<=30 then g:=g*(-1);

   end;
end;

procedure TForm1.Start1Click(Sender: TObject);
begin
 timer1.enabled:=true;
end;

end.

Die Muhkuh 13. Mai 2007 14:14

Re: Pong Spiel - Ball bewegt sich nicht
 
Hi,

es scheint so, als ob Du nirgendwo die Variablen f und g änderst, die für die Beschleunigung da sind.

fransa 13. Mai 2007 14:25

Re: Pong Spiel - Ball bewegt sich nicht
 
Aha das wusste ich nicht. Und wie könnte ich das machen mit f nd g?

Ändere ich hier nur de Richtung?
Delphi-Quellcode:
if x5>=570 then f:=f*(-1);
if y5>=370 then g:=g*(-1);
if x6<=30 then f:=f*(-1);
if y6<=30 then g:=g*(-1);

Neutral General 13. Mai 2007 15:02

Re: Pong Spiel - Ball bewegt sich nicht
 
ja da änderst du nur die Richtung.. Du hast den Quellcode doch selbst geschrieben oder nicht? Dann musst du doch wissen was du da schreibst ? :gruebel:

fransa 13. Mai 2007 15:07

Re: Pong Spiel - Ball bewegt sich nicht
 
Na das ich die Richtung ändere,dass weiß ich ja, aber ich weiß nicht wie ich die Variablen f und g verändern soll wie Die Muhkuh geschrieben hat? Das ist ja eigentlich meine Frage.

Neutral General 13. Mai 2007 15:25

Re: Pong Spiel - Ball bewegt sich nicht
 
Du musst eigentlich nur f und g irgendwann setzen. Im FormCreate z.B oder so.. Je nachdem halt...

f=1
g=1

würde dann bedeuten das der Ball jedes mal wenn der Timer ausgeführt wird ein Feld nach rechts und ein Feld nach unten verschoben wird...

Gruß
Neutral General

fransa 13. Mai 2007 15:58

Re: Pong Spiel - Ball bewegt sich nicht
 
Ich habe f und g =5 gesetzt, aber der ball ist immer noch standhaft.
Ich werde dann morgen in der Schule wohl nochmal gucken müssen, aber trotzdem vielen Dank!

Neutral General 13. Mai 2007 15:59

Re: Pong Spiel - Ball bewegt sich nicht
 
Und du hast den Start-Button auch betätigt? (man kann ja nie wissen^^)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 Uhr.
Seite 1 von 2  1 2      

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