?? editorunit2.pas
字號:
unit editorUnit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, DXDraws, ExtCtrls;
type
TForm2 = class(TForm)
DXDraw1: TDXDraw;
DXImageList1: TDXImageList;
Bevel1: TBevel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure DXDraw1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
Procedure REfr;
var
Form2: TForm2;
var dx2,dy2,dx,dy : integer;
implementation
uses EditorUnit1, editorUnit3;
{$R *.DFM}
var
sy,sx : integer;
hyp : integer;
Procedure REfr;
var i,j,d : integer;
begin;
form2.dxdraw1.surface.fill(clwhite);
hyp:=form2.dximagelist1.Items[0].picture.height div 32;
if dx>15 then dx:=15;
if dx<0 then dx:=0;
if dy<0 then dy:=0;
if dy>hyp-1 then dy:=hyp-1;
sx:=dx-form2.dxdraw1.width div 64;
sy:=dy-form2.dxdraw1.height div 64;
if sx<0 then sx:=0;
if sy<0 then sy:=0;
if sx>16-form2.dxdraw1.width div 32 then sx:=16-form2.dxdraw1.width div 32;
if sy>hyp-form2.dxdraw1.height div 32 then sy:=hyp-form2.dxdraw1.height div 32;
//if sx>8 then sx:=8;
//if sy>15 then sy:=15;
for j:=0 to form2.dxdraw1.height div 32-1 do
for i:=0 to form2.dxdraw1.width div 32-1 do
begin
d:=i+sx+(j+sy)*16;
form2.dximagelist1.items[0].draw(form2.dxdraw1.surface,i*32,16+(j)*32,d);
// form2.dximagelist1.items[0].draw(form2.dxdraw1.surface,i*32,16+(j)*32,256);
if (j=dy-sy) and (dx-sx=i) then
form2.dximagelist1.items[1].draw(form2.dxdraw1.surface,i*32,16+j*32,0);
if (j=dy2-sy) and (dx2-sx=i) then
form2.dximagelist1.items[1].drawalpha(form2.dxdraw1.surface,bounds(i*32,16+j*32,32,32),0,128);
end;
form2.label1.caption:=inttostr(dx+dy*16);
form2.dxdraw1.flip;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
savedialog1.InitialDir:=extractfilepath(application.exename);
opendialog1.InitialDir:=extractfilepath(application.exename);
dx:=0;dy:=0;
//dximagelist1.items[0].Picture.loadfromfile('gfx\klosser.bmp');
if fileexists('gfx\klosser.bmp') then
dximagelist1.items[0].Picture.loadfromfile('gfx\klosser.bmp')
else
dximagelist1.items[0].Picture.loadfromfile('klosser.bmp');
refr;
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
inc(dx);
refr;
end;
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
dec(dx);
refr;
end;
procedure TForm2.BitBtn4Click(Sender: TObject);
begin
dec(dy);
refr;
end;
procedure TForm2.BitBtn3Click(Sender: TObject);
begin
inc(dy);
refr;
end;
Procedure save(f : string);
var ff : file;
dy,xx,yy : integer;
begin
assign(ff,f);
rewrite(ff,1);
blockwrite(ff,game.level.info,sizeof(levelextrainfotype));
for dy:=0 to game.level.info.width-1 do
blockwrite(ff,game.level.l[dy,0],(game.level.info.height*2));
close(ff);
end;
Procedure load(f : string);
var ff : file;
dy,xx,yy : integer;
begin
resetlevel;
assign(ff,f);
reset(ff,1);
blockread(ff,game.level.info,sizeof(levelextrainfotype));
for dy:=0 to game.level.info.width-1 do
blockread(ff,game.level.l[dy,0],(game.level.info.height*2));
close(ff);
end;
procedure TForm2.Button1Click(Sender: TObject);
var dx,dy : integer;
begin
for dx:=0 to maxwidth do
for dy:=0 to maxheight do
if (dx>game.level.info.width) and (game.level.l[dx,dy]<>-1) or
(dy>game.level.info.height) and (game.level.l[dx,dy]<>-1) then
begin
messagebox(0,'Du har klosser utenfor brett omr錮et!','Advarsel!',0);
form3.showmodal;
break;
end;
if game.level.info.width=0 then form3.showmodal;
if savedialog1.Execute = true then
begin
save(savedialog1.filename);
savedialog1.initialdir:=extractfilepath(savedialog1.filename);
opendialog1.FileName:=savedialog1.filename;
end;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
if opendialog1.Execute = true then
begin
load(opendialog1.filename);
form3.edit1.text:=inttostr(game.level.info.width);
form3.edit2.text:=inttostr(game.level.info.height);
form3.edit3.text:=game.level.info.name;
form3.combobox2.text:=game.level.info.background;
form3.combobox3.Text:=game.level.info.backobjs;
form3.combobox1.text:=game.level.info.sprites;
form3.edit4.text:=inttostr(game.level.info.scrollbackground);
initbmp;
opendialog1.initialdir:=extractfilepath(opendialog1.filename);
savedialog1.filename:=opendialog1.filename;
end;
end;
procedure TForm2.FormActivate(Sender: TObject);
begin
refr;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
if application.messagebox('Vil du t鴐me brettet?','',mb_yesno)=mryes then
resetlevel;
end;
procedure TForm2.DXDraw1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if button=mbleft then
begin
dy:=(y-16) div 32 + sy;
dx:=x div 32 + sx;
if dx>16 then dx:=16;
if dy>hyp then dy:=hyp;
dx2:=dx;
dy2:=dy;
end else
begin
dy2:=(y-16) div 32 + sy;
dx2:=x div 32 + sx;
if dx2>16 then dx2:=16;
if dy2>hyp then dy2:=hyp;
end;
refr;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -