unit mcanvanoid;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, jpeg;
type
TForm1 =
class(TForm)
BtBall_bewegen: TButton;
TiBall: TTimer;
ImZeichenflaeche: TImage;
ImPaddle_Leben1: TImage;
ImPaddle_Leben2: TImage;
ImPaddle_Leben3: TImage;
LbPunkte: TLabel;
Label1: TLabel;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
procedure BtBall_bewegenClick(Sender: TObject);
procedure TiBallTimer(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
procedure FormKeyUp(Sender: TObject;
var Key: Word;
Shift: TShiftState);
private
Stone_green: TIcon;
Stone_orange: TIcon;
Ball: TIcon;
Level1: TJpegImage;
Level2: TJpegImage;
Level3: TJpegImage;
Startscreen: TJpegImage;
Game_Over_lava: TJpegImage;
Paddle: TIcon;
zX: integer;
{Ball X Position}
zY: integer;
{Ball Y Postion}
zBewegungX: integer ;
{Ball X Richtung}
zBewegungY: integer ;
{Ball Y Richtung}
zPaddleX: integer;
{xPosition paddle}
x_gedrueckt: boolean;
{Paddle xTaste}
y_gedrueckt: boolean;
{Paddle yTaste}
zX_start: integer;
zY_start: integer;
zLevel: integer;
zPunkte: integer;
zSteine: integer;
zSichtbar1: integer;
zSichtbar2: integer;
zSichtbar3: integer;
zSichtbar4: integer;
zSichtbar5: integer;
zSichtbar6: integer;
zSichtbar7: integer;
zSichtbar8: integer;
zSichtbar9: integer;
zSichtbar10: integer;
zSichtbar11: integer;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Ball := TIcon.Create;
Ball.LoadFromFile ('
Ball.ico');
Level1 := TJpegImage.Create;
Level1.LoadFromFile ('
Level1.jpeg');
Level2 := TJpegImage.Create;
Level2.LoadFromFile ('
Level2.jpeg');
Level3 := TJpegImage.Create;
Level3.LoadFromFile ('
Level3.jpeg');
{Laden der Bilder}
Paddle := TIcon.Create;
Paddle.LoadFromFile ('
Paddle.ico');
Startscreen := TJpegImage.Create;
Startscreen.LoadFromFile ('
Startscreen.jpg');
Game_Over_lava := TJpegImage.Create;
Game_Over_lava.LoadFromFile ('
Game_Over_lava.jpeg');
Stone_green := TIcon.Create;
Stone_green.LoadFromFile ('
Stone_green.ico');
Stone_orange := TIcon.Create;
Stone_orange.LoadFromFile ('
Stone_orange.ico');
keypreview:=true;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
TiBall.enabled := False;
y_gedrueckt := False;
x_gedrueckt := False;
Form1.ImZeichenflaeche.Canvas.Draw (0,0,Startscreen);
BtBall_bewegen.Caption := '
Start ';
zLevel := 1;
zSichtbar1:= 1;
zSichtbar2:= 1;
zSichtbar3:= 1;
zSichtbar4:= 1;
zSichtbar5:= 1;
zSichtbar6:= 1;
zSichtbar7:= 1;
zSichtbar8:= 1;
zSichtbar9:= 1;
zSichtbar10:= 1;
zSichtbar11:= 1;
zSteine := 0;
zPunkte := 0;
end;
procedure TForm1.BtBall_bewegenClick(Sender: TObject);
begin
If TiBall.Enabled = True
then TiBall.Enabled := false
else TiBall.Enabled := True;
zX := zX_Start;
zY := zY_Start;
ImPaddle_Leben1.Visible := True;
ImPaddle_Leben2.Visible := True;
ImPaddle_Leben3.Visible := True;
zLevel := 1;
zSichtbar1:= 1;
zSichtbar2:= 1;
zSichtbar3:= 1;
zSichtbar4:= 1;
zSichtbar5:= 1;
zSichtbar6:= 1;
zSichtbar7:= 1;
zSichtbar8:= 1;
zSichtbar9:= 1;
zSichtbar10:= 1;
zSichtbar11:= 1;
zSteine := 0;
zPunkte := 0;
Label2.Caption:= IntToStr(zPunkte);
If TiBall.Enabled = True
then BtBall_bewegen.Caption := '
Neustart '
else BtBall_bewegen.Caption := '
Start ';
If TiBall.Enabled = true
then zLevel :=1;
If zPunkte =30
then zLevel := 2;
If zPunkte =60
then zLevel := 3;
if zLevel = 1
then zBewegungX := +5;
{Ball Bewegungen }
zBewegungY := +5;
zPunkte := 0;
zX_Start := 0;
zY_start := 250;
zX := zX_Start;
{Start Ball}
zY := zY_start;
zPaddleX := 250;
{Paddle X Start}
end;
procedure TForm1.TiBallTimer(Sender: TObject);
begin
If zLevel= 1
then begin
Form1.ImZeichenflaeche.Canvas.Draw (0,0,Level1);
Form1.ImZeichenflaeche.Canvas.Draw (zX,zY,Ball);
Form1.ImZeichenflaeche.Canvas.Draw (zPaddleX,460,Paddle);
zX := zX+zBewegungX ;
zY := zY+zBewegungY ;
if (y_gedrueckt = true)
and (zPaddleX >= 0)
then zPaddleX := zPaddleX -10;
if (X_gedrueckt = true)
and (zPaddleX <= ImZeichenflaeche.Width -65 )
then zPaddleX := zPaddleX +10;
If (zX <= 0)
or (zX >= ImZeichenflaeche.Width -13)
then zBewegungX := -zBewegungX;
If (zY <= 0)
then zBewegungY := -ZBewegungY;
If (zY >= 447)
and (zY >= 445 )
and (zX >= zPaddleX)
and not (zX > zPaddleX + 65)
then zBewegungY := -ZBewegungY;
If (zY >= ImZeichenflaeche.Height + 2)
and (ImPaddle_Leben3.Visible = True)
then begin ImPaddle_Leben3.Visible := False;
zY := zy_start;
zX := zx_start;
end;
If (zY>=ImZeichenflaeche.Height+3)
and (ImPaddle_Leben2.Visible = True)
then begin ImPaddle_Leben2.Visible := False;
zY := zy_start;
zX := zx_Start;
end;
If (zY >= ImZeichenflaeche.Height+4)
and (ImPaddle_Leben1.Visible = True)
then begin ImPaddle_Leben1.Visible := False;
zY := zy_start;
zX := zx_Start;
end;
If (zY >= ImZeichenflaeche.Height+5)
and (ImPaddle_Leben1.Visible = False)
then begin
Form1.ImZeichenflaeche.Canvas.Draw (0,0,Game_Over_lava);
TiBall.enabled := False;
end;
[color=#ff001f]
if zSichtbar1 = 1
then begin Form1.ImZeichenflaeche.Canvas.Draw (50,100,Stone_green);
if (zY >= 95)
and (zY >= 105 )
and (zX >= 50)
and not (zX >= 85)
and (zX >= 85)
and not (zX >= 120)
then zBewegungY := -ZBewegungY;
zPunkte := zPunkte +1;
zSichtbar1 := 0;
zSteine:= zSteine +1;
end;
if zSichtbar2 = 1
then begin Form1.ImZeichenflaeche.Canvas.Draw (85,100,Stone_green);
if (zY >= 95)
and (zY >= 105 )
then zBewegungY := -ZBewegungY;
zPunkte := zPunkte +1;
zSichtbar2 := 0;
zSteine:= zSteine +1;
end;
if zSichtbar3 = 1
then begin Form1.ImZeichenflaeche.Canvas.Draw (120,100,Stone_green);
if (zY >= 95)
and (zY >= 105 )
and (zX >= 120)
and not (zX >= 155)
then zBewegungY := -ZBewegungY;
zPunkte := zPunkte +1;
zSichtbar3 := 0;
zSteine:= zSteine +1;
end;
if zSichtbar4 = 1
then begin Form1.ImZeichenflaeche.Canvas.Draw (155,100,Stone_green);
if (zY >= 95)
and (zY >= 105 )
and (zX >= 155)
and not (zX >= 190)
then zBewegungY := -ZBewegungY;
zPunkte := zPunkte +1;
zSichtbar4 := 0;
zSteine:= zSteine +1;
end;
if zSichtbar5 = 1
then begin Form1.ImZeichenflaeche.Canvas.Draw (190,100,Stone_green);
if (zY >= 95)
and (zY >= 105 )
and (zX >= 190)
and not (zX >= 225)
then zBewegungY := -ZBewegungY;
zPunkte := zPunkte +1;
zSichtbar5 := 0;
zSteine:= zSteine +1;
end;
if zSichtbar6 = 1
then begin Form1.ImZeichenflaeche.Canvas.Draw (225,100,Stone_green);
if (zY >= 95)
and (zY >= 105 )
and (zX >= 225)
and not (zX >= 260)
then zBewegungY := -ZBewegungY;
zPunkte := zPunkte +1;
zSichtbar6 := 0;
zSteine:= zSteine +1;
end;
if zSichtbar7 = 1
then begin Form1.ImZeichenflaeche.Canvas.Draw (260,100,Stone_green);
if (zY >= 95)
and (zY >= 105 )
and (zX >= 260)
and not (zX >= 295)
then zBewegungY := -ZBewegungY;
zPunkte := zPunkte +1;
zSichtbar7 := 0;
zSteine:= zSteine +1;
end;
if zSichtbar8 = 1
then begin Form1.ImZeichenflaeche.Canvas.Draw (295,100,Stone_green);
if (zY >= 95)
and (zY >= 105 )
and (zX >= 295)
and not (zX >= 330)
then zBewegungY := -ZBewegungY;
zPunkte := zPunkte +1;
zSichtbar8 := 0;
zSteine:= zSteine +1;
end;
if zSichtbar9 = 1
then begin Form1.ImZeichenflaeche.Canvas.Draw (330,100,Stone_green);
if (zY >= 95)
and (zY >= 105 )
and (zX >= 330)
and not (zX >= 365)
then zBewegungY := -ZBewegungY;
zPunkte := zPunkte +1;
zSichtbar9 := 0;
zSteine:= zSteine +1;
end;
if zSichtbar10 = 1
then begin Form1.ImZeichenflaeche.Canvas.Draw (365,100,Stone_green);
if (zY >= 95)
and (zY >= 105 )
and (zX >= 365)
and not (zX >= 400)
then zBewegungY := -ZBewegungY;
zPunkte := zPunkte +1;
zSichtbar10 := 0;
zSteine:= zSteine +1;
end;
if zSichtbar11 = 1
then begin Form1.ImZeichenflaeche.Canvas.Draw (400,100,Stone_green);
if (zY >= 95)
and (zY >= 105 )
and (zX >= 400)
and not (zX >= 435)
then zBewegungY := -ZBewegungY;
zPunkte := zPunkte +1;
zSichtbar11 := 0;
zSteine:= zSteine +1;
end;
if zSteine = 6
then begin zSteine := 0 ;
zSichtbar1:= 1;
zSichtbar2:= 1;
zSichtbar3:= 1;
zSichtbar4:= 1;
zSichtbar5:= 1;
zSichtbar6:= 1;
zSichtbar7:= 1;
zSichtbar8:= 1;
zSichtbar9:= 1;
zSichtbar10:= 1;
zSichtbar11:= 1;
end; [/color]
end;
end;
procedure TForm1.FormKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if (key = ORD(89))
then begin
y_gedrueckt := true;
end;
if (key = ORD(88))
then begin
x_gedrueckt := true;
end;
end;
procedure TForm1.FormKeyUp(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if (key = ORD(89))
then begin
y_gedrueckt := false;
end;
if (key = ORD(88))
then begin
x_gedrueckt := false;
end;
end;
end.