Mega Code Archive
Canvas ile yazılmış yılan oyunu
//4 tane edit ve bir tane button koyun
//edit1 10 değerinde ve edit4 ün değeride 0 olacak
//5 tanede timer ilk 4 ünün intervali 30 ve enabled fasle
// 5 incisinin interveli 10 ve enabled true olsun
//1 tane image1 ve içine paint ile yapacağınız küçük bir nokta
//4 edit ve button visibleları false olacak ve gerisi size kalmış
unit yem;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Timer2: TTimer;
Timer3: TTimer;
Timer4: TTimer;
Edit1: TEdit;
Timer5: TTimer;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Image1: TImage;
Edit4: TEdit;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
procedure Timer4Timer(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Timer5Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
canvas.MoveTo(250,250);
canvas.Pen.Width:=canvas.Pen.Width+5;
button1.Click;
timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
x,y :integeR;
begin
x:=canvas.PenPos.X;
y:=canvas.PenPos.Y;
form1.Refresh;
canvas.LineTo(x+StrToInt(edit1.Text),y);
end;
procedure TForm1.Timer2Timer(Sender: TObject);
var
x,y :integeR;
begin
x:=canvas.PenPos.X;
y:=canvas.PenPos.Y;
form1.Refresh;
canvas.LineTo(x-StrToInt(edit1.Text),y);
end;
procedure TForm1.Timer3Timer(Sender: TObject);
var
x,y :integeR;
begin
x:=canvas.PenPos.X;
y:=canvas.PenPos.Y;
form1.Refresh;
canvas.LineTo(x,y-StrToInt(edit1.Text));
end;
procedure TForm1.Timer4Timer(Sender: TObject);
var
x,y :integeR;
begin
x:=canvas.PenPos.X;
y:=canvas.PenPos.Y;
form1.Refresh;
canvas.LineTo(x,y+StrToInt(edit1.Text));
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key= vk_left then
begin
if not (timer1.Enabled = true) then
begin
timer1.Enabled:=false;
timer2.Enabled:=true;
timer3.Enabled:=false;
timer4.Enabled:=false;
end;
end;
if key= vk_right then
begin
if not (timer2.Enabled = true) then
begin
timer1.Enabled:=true;
timer2.Enabled:=false;
timer3.Enabled:=false;
timer4.Enabled:=false;
end;
end;
if key= vk_up then
begin
if not (timer4.Enabled = true) then
begin
timer1.Enabled:=false;
timer2.Enabled:=false;
timer3.Enabled:=true;
timer4.Enabled:=false;
end;
end;
if key= vk_down then
begin
if not (timer3.Enabled = true) then
begin
timer1.Enabled:=false;
timer2.Enabled:=false;
timer3.Enabled:=false;
timer4.Enabled:=true;
end;
end;
if (ssalt in shift) and (key = vk_f5) then
begin
canvas.MoveTo(image1.Left+10,image1.Top+50);
timer1.Enabled:=false;
timer2.Enabled:=false;
timer3.Enabled:=true;
timer4.Enabled:=false;
end;
if (ssalt in shift) and (key = vk_f3) then
begin
button1.Click;
end;
end;
procedure TForm1.Timer5Timer(Sender: TObject);
var
x,y:integer;
begin
x:=canvas.PenPos.X;
y:=canvas.PenPos.Y;
if x<0 then
canvas.MoveTo(form1.Width,y);
if y<0 then
canvas.MoveTo(x,form1.Height);
if x>form1.Width then
canvas.MoveTo(0,y);
if y>form1.Height then
canvas.MoveTo(x,0);
if (X>image1.Left) and (ximage1.Top) and (y