unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TSpielfeld =
class(TForm)
Bild: TImage;
Timer1: TTimer;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Timer1Timer(Sender: TObject);
procedure FormKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
end;
//type
//tSpieler = class
//x1,x2,y1,y2:Single;
//farbe1:tColor;
//procedure init(f1Neu:tColor;x1Neu,x2Neu,y1Neu,y2Neu:Single);
//end;
type
tBall =
class
x,y,vx,vy,r:Single;
farbe:tColor;
procedure init(fNeu:tColor;xNeu,yNeu,vxNeu,vyNeu,rNeu:Single);
procedure ZeigeDich;
procedure BewegeDich;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Spielfeld: TSpielfeld;
ball:tBall;
//spieler:tSpieler;
punkt:integer = 0;
BallimSpiel:boolean = false;
// =true wenn ball im spiel ist!
implementation
{$R *.dfm}
procedure tBall.init(fNeu:tColor;xNeu,yNeu,vxNeu,vyNeu,rNeu:Single);
begin
farbe:= fNeu;
r:= rNeu;
x:= xNeu;
y:= yNeu;
vx:= vxNeu;
vy:=vyNeu;
end;
//procedure tSpieler.init(f1Neu:tColor;x1Neu,x2Neu,y1Neu,y2Neu:Single);
//begin
//farbe1:= f1Neu;
//x1:= x1Neu;
//x2:= x2Neu;
//y1:= y1Neu;
//y2:= y2Neu;
//end;
procedure tBall.ZeigeDich;
begin
with Spielfeld.Bild.Canvas
do
begin
brush.color:= clRed;
ellipse(Round (x-r),Round(y-r),Round(x+r),Round(y+r))
end;
end;
procedure tBall.BewegeDich;
begin
x:=x+vx;
y:=y+vy;
//punkt:=0; hier nicht da sonst immer wieder auf null!
with Spielfeld.Bild
do
begin
if (x>width+r-1)
then // + r damit er aus dem bild fliegt
begin
inc(punkt);
// punkt +1
Spielfeld.Label3.Caption:=IntToStr(punkt);
BallimSpiel:=false;
// es kann ein neuer ball gestartet werden
end;
if x<r+1
then
begin
x:=r+1;
vx:=-vx
end;
if (y>height-r-1)
then
begin
y:= height-r-1;
vy:=-vy
end;
if y< r+1
then
begin
y := r+1;
vy:= -vy
end
end
end;
procedure TSpielfeld.FormKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
case key
of
vk_space:
begin
if BallimSpiel
then
exit;
with Bild.Canvas
do
begin
brush.Color:= clWhite;
rectangle(0,0,Bild.width,Bild.height);
pen.width:=1;
brush.style:=bsSolid;
pen.Mode:= pmNOTXOR;
end;
BallimSpiel:=true;
Ball.init(clWhite,100,200,5,5,15);
Ball.ZeigeDich;
end;
vk_down:
// "runtertaste gedrückt"
begin
// paddle bewegen
end;
vk_up:
// "hochtaste gedrückt"
begin
// paddle bewegen
end;
end;
end;
procedure TSpielfeld.Timer1Timer(Sender:TObject);
begin
if BallimSpiel
then
begin
Ball.ZeigeDich;
Ball.BewegeDich;
Ball.ZeigeDich;
end;
end;
procedure TSpielfeld.FormCreate(Sender: TObject);
//zeichnen vom Spieler
begin
with Bild.Canvas
do
begin
brush.Color:= clBlue;
rectangle(670,100,680,210);
pen.width:=1;
brush.style:=bsSolid;
pen.Mode:= pmNOTXOR;
end;
end;
initialization
randomize;
Ball:= tBall.Create;
Finalization
Ball.Destroy
end.