📄 umainfrm.pas
字号:
unit uMainFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QExtCtrls, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Tfrogdir=(tfdLeft, tfdRight);
Tfrog = class
private
Fpic: String;
Fdir: Tfrogdir;
Fposition: integer;
procedure setdir(Value: Tfrogdir);
procedure setposition(Value: integer);
procedure setpic(Value: String);
public
procedure jump;
procedure step;
property pic: String read Fpic write setpic;
property dir: Tfrogdir read Fdir write setdir;
property position: integer read Fposition write setposition;
end;
TStone = class
private
Fposition: integer;
procedure SetPosition(Value: integer);
public
property postion: integer read Fposition write SetPosition;
end;
Tfrogface= class(TImage)
private
Ffrog: Tfrog;
procedure Setfrog(Value: Tfrog);
public
property frog:Tfrog read Ffrog write setfrog;
procedure jump;
procedure move;
procedure showpic;
procedure OnClick1(Sender:TObject);
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
const
TowardRightFrogPath: String = 'frog_R.bmp';
TowardLeftFrogPath: String = 'frog_L.bmp';
var
Form1: TForm1;
stepsize, baseleft: Integer;
afrog: Tfrogface;
procedure backtrack(t: integer);
implementation
{$R *.dfm}
procedure backtrack(t: integer);
begin
{ if(t>n) then
output(x)
else
for(int i=f(n,t);i<=g(n,t);i++)
begin
x[t]=h(i);
if(constrain(t)&&bound(t)) then
backtrack(t+1);
end;
}
end;
{ Tfrog }
procedure Tfrog.jump;
begin
If Self.Fdir= tfdLeft then
Self.position := Self.position - 2
Else
Self.position := Self.position + 2;
end;
procedure Tfrog.setdir(Value: Tfrogdir);
begin
Self.Fdir:=Value;
Case Value of
tfdLeft:
Self.pic:=TowardLeftFrogPath;
tfdRight:
Self.pic:=TowardRightFrogPath;
end;
end;
procedure Tfrog.setpic(Value: String);
begin
Fpic:=Value;
end;
procedure Tfrog.setposition(Value: integer);
begin
Self.Fposition:=Value;
end;
procedure Tfrog.step;
begin
If Self.Fdir= tfdLeft then
Self.position := Self.position - 1
Else
Self.position := Self.position + 1;
end;
{ TStone }
procedure TStone.SetPosition(Value: integer);
begin
Self.Fposition:=Value;
end;
{ Tfrogface }
constructor Tfrogface.Create(AOwner: TComponent);
begin
inherited;
Self.frog:= TFrog.Create;
Self.OnClick:=Self.OnClick1;
end;
destructor Tfrogface.Destroy;
begin
inherited;
end;
procedure Tfrogface.jump;
var
i,oldleft, curleft, oldtop, curtop: integer;
begin
if Self.Ffrog=Nil then
Exit;
Self.Ffrog.jump;
oldleft:=Self.Left;
oldtop:=Self.Top;
Case Self.frog.dir of
tfdRight: //向右的
begin
for i:=1 to 5 do
begin
Self.left:=Self.left + stepsize div 5;
Self.top:=Self.Top-12;
Self.Repaint;
Sleep(10);
end;
for i:=1 to 5 do
begin
Self.left:=Self.left + stepsize div 5;
Self.top:=Self.Top+12;
Self.Repaint;
Sleep(10);
end;
end;
tfdLeft: //向左的
begin
for i:=1 to 5 do
begin
Self.left:=Self.left - stepsize div 5;
Self.top:=Self.Top-12;
Self.Repaint;
Sleep(15);
end;
for i:=1 to 5 do
begin
Self.left:=Self.left - stepsize div 5;
Self.top:=Self.Top+12;
Self.Repaint;
Sleep(15);
end;
end;
end;
end;
procedure Tfrogface.move;
var
i: integer;
begin
if Self.Ffrog=Nil then
Exit;
Self.Ffrog.jump;
Case Self.frog.dir of
tfdRight: //向右的
begin
for i:=1 to 5 do
begin
Self.left:=Self.left + stepsize div 5;
Self.Repaint;
Sleep(15);
end;
end;
tfdLeft: //向左的
begin
for i:=1 to 5 do
begin
Self.left:=Self.left - stepsize div 5;
Self.Repaint;
Sleep(15);
end;
end;
end;
end;
procedure Tfrogface.OnClick1(Sender: TObject);
begin
Self.move;
end;
procedure Tfrogface.Setfrog(Value: Tfrog);
begin
Self.Ffrog:=Value;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
frogn: array[0..6] of TFrogface;
i: integer;
begin
afrog:=Tfrogface.Create(Self);
afrog.frog.dir:=tfdLeft;
afrog.showpic;
afrog.Top:=100;
afrog.Left:=1024;
afrog.Parent:=Form1;
// afrog.Transparent:=true;
stepsize:=100;
for i:=0 to 6 do
begin
frogn[i]:=Tfrogface.Create(Self);
// frogn[i].Picture.LoadFromFile('frog_R.bmp');
frogn[i].frog.dir:=tfdLeft;
frogn[i].Top:=100;
frogn[i].showpic;
frogn[i].Parent:=Form1;
frogn[i].Transparent:=true;
frogn[i].Left:=stepsize*i;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if afrog=Nil then
exit;
afrog.jump;
end;
procedure Tfrogface.showpic;
begin
Picture.LoadFromFile(Self.frog.pic);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -