亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? editorunit1.pas

?? 類似超級(jí)瑪麗模型之二(DELPHIX)
?? PAS
?? 第 1 頁 / 共 2 頁
字號(hào):
Unit EditorUnit1;

Interface

Uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DXDraws, DXClass, DXInput, StdCtrls, ExtCtrls, ToolWin, ComCtrls, Menus,
  CheckLst, Buttons, ActnList;

Type
  TEditorForm = Class(TForm)
    DXTimer1: TDXTimer;
    PBMP: TDXImageList;
    DXInput1: TDXInput;
    Panel1: TPanel;
    Preview: TDXDraw;
    Scrolly: TScrollBar;
    Scrollx: TScrollBar;
    Splitter1: TSplitter;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Panel2: TPanel;
    Klosser: TDXDraw;
    KlosserScroll: TScrollBar;
    KBMP: TDXImageList;
    Panel3: TPanel;
    Layers: TCheckListBox;
    PopupMenu2: TPopupMenu;
    Frombitmap: TMenuItem;
    Fromlevel: TMenuItem;
    Panel4: TPanel;
    MainMenu1: TMainMenu;
    File1: TMenuItem;
    Loadlevel1: TMenuItem;
    SaveLevel1: TMenuItem;
    N4: TMenuItem;
    ActionList1: TActionList;
    ActionLoadLevel: TAction;
    ActionSaveLevel: TAction;
    ActionOption: TAction;
    Option1: TMenuItem;
    N5: TMenuItem;
    ActionExit: TAction;
    Exit1: TMenuItem;
    Tools1: TMenuItem;
    ActionResetLevel: TAction;
    CleanLevel1: TMenuItem;
    ActionRunLevel: TAction;
    Testlevel1: TMenuItem;
    ActionShowHints: TAction;
    Hints1: TMenuItem;
    Procedure PreviewInitialize(Sender: TObject);
    Procedure DXTimer1Timer(Sender: TObject; LagCount: Integer);
    Procedure FormCreate(Sender: TObject);
    Procedure PreviewMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    Procedure PreviewMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    Procedure load(f: String);
    Procedure ObjDraw;
    Procedure BackgroundDraw;
    Procedure InitBmp;
    Procedure RefreshKlosser;
    Procedure Splitter1Moved(Sender: TObject);
    Procedure KlosserMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    Procedure KlosserMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    Procedure PreviewMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    Procedure KlosserMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    Procedure KlosserScrollChange(Sender: TObject);
    Procedure FormShow(Sender: TObject);
    Procedure LayersClick(Sender: TObject);
    Procedure FromlevelClick(Sender: TObject);
    Procedure ScrollyChange(Sender: TObject);
    Procedure ScrollxChange(Sender: TObject);
    Procedure ActionLoadLevelExecute(Sender: TObject);
    Procedure ActionSaveLevelExecute(Sender: TObject);
    Procedure ActionOptionExecute(Sender: TObject);
    procedure ActionExitExecute(Sender: TObject);
    procedure ActionResetLevelExecute(Sender: TObject);
    procedure ActionShowHintsExecute(Sender: TObject);
    procedure ActionRunLevelExecute(Sender: TObject);
  Private
    { Private declarations }
  Public
    { Public declarations }
    selstarttemp, selstart, cursor, selend: tpoint;
    sellayer: integer;
  End;

Const DefaultWidth  = 1024;
  DefaultHeight     = 512;
  DefaultLayers     = 3;
  maxplayers        = 10;
  maxobjs           = 1024;
  UndoCount         = 10;
  RedoCount         = 10;

Type levelextrainfotype = Record
    startx, starty: integer;
    layers: integer;
    width, height: integer;
    name: String[32];
    megaobjs, bypass, background, backobjs, sprites: String[32];
    scrollbackground: byte;
  End;

Type leveltype = Record
    info: levelextrainfotype;
    l: Array Of Array Of Array Of smallint;
  End;

Type playertype = Array[0..maxplayers] Of Record
    objnr: integer;
    score: integer;
    name: String;
  End;

Type objtype = Array[0..maxobjs] Of Record
    x, y: integer;
    typo: integer;
    ax, ay: integer;
    tag: String;
    pic: integer;
  End;


Type gametype = Record
    level: leveltype;
    objs: objtype;
    scrollx, scrolly: integer;
  End;

Var
  EditorForm        : TEditorForm;
  Game              : gametype;
  CurrentLayer      : Byte = 1;
  Undo              : Array[0..UndoCount - 1] Of leveltype;
  Redo              : Array[0..UndoCount - 1] Of leveltype;
  FirstUndoNo       : integer = 0;
  LastUndoNo        : integer = 0;
  CurrentUndoNo     : integer = 0;

Procedure Resetlevel;

Implementation

Uses editorUnit3;

{$R *.DFM}


Procedure storeundo;
Var l               : integer;
Begin
//flytte alle undoene ned

//stappe inn ny undo

//t鴐me redo
End;

Procedure DoUndo;
Begin
//flytte alle redoene ned

//stappe 鴙erste undo i redo

//flytte alle undoene opp

End;

Procedure DoRedo;
Begin
//flytte alle undoene ned

//stappe 鴙erste redo i undo

//flytte alle redoene opp
End;

Procedure swap(Var a, b: integer);
Var c               : integer;
Begin
  c := a;
  a := b;
  b := c;
End;

Procedure EnemyMove;
Begin
End;

Var draw            : byte;

Procedure TEditorForm.ObjDraw;
Var xx, yy          : integer;
Begin
  For xx := 0 To 9 Do
    For yy := 0 To 8 Do
      PBMP.items[1].draw(Preview.surface, xx * 32, yy * 32, 10);
End;

Procedure Resetlevel;
Var l, xx, yy       : integer;
Begin
  For l := 0 To game.level.info.layers - 1 Do
    For xx := 0 To game.level.info.Width - 1 Do
      For yy := 0 To game.level.info.height - 1 Do
        game.level.l[l][xx, yy] := -1;
End;

Procedure TEditorForm.BackgroundDraw;
Var dx, dy, sx, sy, xx, yy: integer;
  aa                : smallint;
  l                 : byte;
Begin
{if game.scrollx div 32+preview.width div 32>game.level.info.width then
 game.scrollx:=game.level.info.width-preview.Width div 32;{}

{if game.scrolly div 32+preview.height div 32>game.level.info.height then
 game.scrolly:=game.level.info.height-preview.height div 32;{}

  If game.scrollx < 0 Then game.scrollx := 0;
  If game.scrolly < 0 Then game.scrolly := 0;

//rm1.dximagelist1.items[0].draw(form1.dxdraw1.surface,0,0,0);
  preview.surface.fill(rgb(255, 255, 255));
  sx := game.scrollx Shr 5;
  sy := game.scrolly Shr 5;

  dx := -game.scrollx + sx Shl 5;
  dy := -game.scrolly + sy Shl 5;

  For l := 0 To game.level.info.layers - 1 Do
    If layers.Checked[l] Then
      For xx := 0 To preview.width Shr 5 + 1 Do
        For yy := 0 To preview.height Shr 5 + 1 Do
          If (xx + sx < game.level.info.width) And (yy + sy < game.level.info.height) Then
          Begin
            aa := game.level.l[l][xx + sx, yy + sy];
            If aa <> -1 Then Pbmp.items[1].draw(preview.surface, xx Shl 5 + dx, yy Shl 5 + dy, aa);
            If fromlevel.checked Then
              If (selstart.x <= xx + sx) And (selend.x >= xx + sx) And
                (selstart.y <= yy + sy) And (selend.y >= yy + sy) Then
                Pbmp.items[3].draw(Preview.Surface, xx Shl 5 + dx, yy Shl 5 + dy, 0);
          End;
End;


Procedure TEditorForm.PreviewInitialize(Sender: TObject);
Begin
  resetlevel;
End;


Var curx, cury      : integer;

Procedure TEditorForm.DXTimer1Timer(Sender: TObject; LagCount: Integer);
Var xx, yy          : integer;
Begin
  dxinput1.Update;
  If isright In dxinput1.States Then
    If scrollx.position < scrollx.Max - 1 Then
      scrollx.position := scrollx.position + 1;

//  scrollx.SetParams(scrollx.position+1,0,game.level.info.width-preview.width div 32);

  If isleft In dxinput1.States Then
    If scrollx.position > 0 Then
      scrollx.position := scrollx.position - 1;

//  scrollx.SetParams(scrollx.position-1,0,game.level.info.width-preview.width div 32);


  If isup In dxinput1.States Then
    If scrolly.position > 0 Then
      scrolly.position := scrolly.position - 1;

 //  scrolly.SetParams(scrolly.position-1,0,game.level.info.height-preview.height div 32);

  If isdown In dxinput1.States Then
    If scrolly.position < scrolly.Max Then
      scrolly.position := scrolly.position + 1;
//  scrolly.SetParams(scrolly.position+1,0,game.level.info.height-preview.height div 32);


  game.scrolly := scrolly.Position Shl 5;
  game.scrollx := scrollx.Position Shl 5;

  dxinput1.Update;
  If isleft In dxinput1.States Then dec(curx);
  If isright In dxinput1.States Then inc(curx);
  If isup In dxinput1.States Then dec(cury);
  If isdown In dxinput1.States Then inc(cury);
  preview.surface.fill(clwhite);
  backgrounddraw;

  If draw <> 3 Then
    For xx := 0 To selend.x - selstart.x Do
      For yy := 0 To selend.y - selstart.y Do
        Pbmp.items[2].draw(preview.surface, cursor.x * 32 + xx * 32, cursor.y * 32 + yy * 32, 0);

  preview.flip;

End;

Function topf(a: String): pchar;
Begin
  result := pchar(a);
End;

Procedure TEditorForm.InitBmp;
Begin
  chdir(extractfilepath(application.exename));
  If fileexists('gfx\' + game.level.info.backobjs) Then
  Begin
    Pbmp.items[1].Picture.loadfromfile('gfx\' + game.level.info.backobjs);
    Kbmp.items[1].Picture.loadfromfile('gfx\' + game.level.info.backobjs);
  End
  Else If fileexists(game.level.info.backobjs) Then
  Begin
    Pbmp.items[1].Picture.loadfromfile(game.level.info.backobjs);
    Kbmp.items[1].Picture.loadfromfile(game.level.info.backobjs);
  End Else messagebox(application.handle, topf('Can''t find: ' + game.level.info.backobjs), '', 0);
  Kbmp.Items.Restore;
  Pbmp.Items.Restore;
End;

Procedure TEditorForm.FormCreate(Sender: TObject);
Var i               : integer;
Begin
  game.level.info.layers := defaultlayers;
  game.level.info.width := defaultwidth;
  game.level.info.height := defaultheight;
  layers.Items.Clear;
  For i := 0 To game.level.info.layers - 1 Do layers.Items.add(inttostr(i));
  For i := 0 To game.level.info.layers - 1 Do layers.checked[i] := true;
  layers.ItemIndex := 1;
  With game.level Do
    setlength(l, info.layers, info.width, info.height);

  selstart := point(0, 0);
  selend := point(0, 0);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日摸夜夜添夜夜添精品视频 | 亚洲精品在线免费观看视频| 久久99精品久久久久久国产越南| 色综合天天天天做夜夜夜夜做| 国产午夜精品在线观看| 91久久国产综合久久| 国产一区三区三区| 亚洲午夜久久久久久久久电影院| 日本精品视频一区二区三区| 国产一区二三区| 五月激情综合婷婷| 亚洲蜜桃精久久久久久久| 亚洲精品在线观看网站| 欧美伊人久久久久久久久影院| 亚洲美女视频在线观看| 久久久久9999亚洲精品| 欧美久久久久久久久| 在线免费观看视频一区| 成人免费视频播放| 狠狠久久亚洲欧美| 日韩精彩视频在线观看| 亚洲男人天堂av网| 国产精品久久三| 久久久综合激的五月天| 日韩视频一区在线观看| 欧美日韩国产bt| 欧美亚洲图片小说| 色综合天天综合色综合av| 成人综合激情网| 成人三级在线视频| 成人三级伦理片| 国产精品一二三在| 国产精品影视在线| 国产一区二区三区不卡在线观看 | 日韩欧美国产wwwww| 欧美区在线观看| 欧美日韩mp4| 欧美日韩色一区| 欧洲人成人精品| 99精品国产视频| 成人国产视频在线观看| 成人精品视频一区二区三区尤物| 亚洲影视在线播放| 亚洲成人午夜影院| 亚洲成a人片在线不卡一二三区| 精品国产乱码久久久久久图片 | 亚洲成人免费视| 亚洲国产另类av| 亚洲成av人片一区二区梦乃| 亚洲国产精品视频| 天天综合网天天综合色| 日本一道高清亚洲日美韩| 美国十次综合导航| 国内精品免费**视频| 国产成人精品综合在线观看| 国产成人免费视频精品含羞草妖精| 天天操天天色综合| 日韩中文字幕1| 久久激情五月婷婷| 国产激情视频一区二区三区欧美| 一级做a爱片久久| 亚洲精品老司机| 五月婷婷久久丁香| 久久不见久久见免费视频7| 国内精品久久久久影院薰衣草| 亚洲尤物在线视频观看| 婷婷夜色潮精品综合在线| 日韩av一区二| 国产成+人+日韩+欧美+亚洲| 97se狠狠狠综合亚洲狠狠| 在线观看网站黄不卡| 91精品蜜臀在线一区尤物| 久久久亚洲精品石原莉奈| 中文字幕一区三区| 性欧美疯狂xxxxbbbb| 国产一区在线观看麻豆| 色综合久久综合中文综合网| 日韩一区二区三区四区五区六区| 欧美少妇bbb| 精品久久久久久久人人人人传媒 | 91碰在线视频| 欧美区在线观看| 国产三级三级三级精品8ⅰ区| 日韩亚洲欧美在线| 欧美国产精品一区| 性做久久久久久免费观看欧美| 一区二区三区不卡在线观看| 六月婷婷色综合| 99久久伊人网影院| 91 com成人网| 亚洲视频网在线直播| 免费成人小视频| 99久久精品99国产精品| 7777精品伊人久久久大香线蕉完整版| 欧美日韩亚洲不卡| 亚洲国产精品激情在线观看| 亚洲成人精品一区二区| 粗大黑人巨茎大战欧美成人| 91精品国产综合久久精品麻豆| 7777精品伊人久久久大香线蕉 | 欧美亚洲愉拍一区二区| 精品久久久网站| 亚洲国产欧美日韩另类综合| 国产露脸91国语对白| 欧美日韩一区国产| 中文av一区二区| 精品无人区卡一卡二卡三乱码免费卡| 强制捆绑调教一区二区| 国产不卡视频一区| 日韩免费电影网站| 亚洲综合丝袜美腿| www.成人网.com| 久久蜜桃av一区二区天堂| 轻轻草成人在线| 色综合久久88色综合天天| 久久精品人人做人人爽人人| 日韩电影在线观看电影| 91麻豆精品秘密| 国产精品传媒入口麻豆| 国产98色在线|日韩| 精品伦理精品一区| 蜜桃久久av一区| 538在线一区二区精品国产| 亚洲乱码国产乱码精品精小说| 亚洲综合无码一区二区| 99久久777色| 国产精品国产三级国产a| 国产iv一区二区三区| 精品国产亚洲在线| 久久99九九99精品| 91精品麻豆日日躁夜夜躁| 视频一区中文字幕| 91精品国产91综合久久蜜臀| 亚洲成人久久影院| 欧美精品自拍偷拍动漫精品| 激情欧美一区二区| 欧美mv和日韩mv国产网站| 久久99久久精品| 久久美女高清视频| 国产高清成人在线| 国产日韩欧美精品一区| 国产成人在线看| 国产精品人人做人人爽人人添| 亚洲成人自拍一区| 欧美巨大另类极品videosbest | 成人97人人超碰人人99| 国产精品三级在线观看| kk眼镜猥琐国模调教系列一区二区| 欧美日韩不卡在线| 天天综合色天天| 日韩一区二区免费视频| 久久99精品国产91久久来源| 久久久久久久免费视频了| 国产91精品一区二区| ...xxx性欧美| 欧美调教femdomvk| 另类小说色综合网站| 久久香蕉国产线看观看99| 国产激情精品久久久第一区二区| 3atv一区二区三区| 麻豆成人免费电影| 久久精品亚洲国产奇米99| gogogo免费视频观看亚洲一| 一区二区三区国产豹纹内裤在线| 成人久久久精品乱码一区二区三区| 777奇米四色成人影色区| 九色|91porny| 国产精品色一区二区三区| 色综合久久久久久久久久久| 亚洲午夜在线观看视频在线| 日韩欧美精品在线视频| 成人黄色a**站在线观看| 亚洲精品videosex极品| 51精品视频一区二区三区| 国产精品一级片| 一区二区三区在线观看国产 | voyeur盗摄精品| 亚洲电影视频在线| 久久精品男人的天堂| 在线观看免费成人| 国产一区二区美女诱惑| 亚洲码国产岛国毛片在线| 欧美老女人第四色| 国产成人在线视频网址| 一区二区三区在线观看网站| 日韩一区二区免费在线观看| 99热99精品| 精品在线免费观看| 亚洲一区二区精品视频| 久久精品亚洲精品国产欧美kt∨| 国模一区二区三区白浆| 一区二区三区日韩| 精品国产百合女同互慰| 色综合天天性综合| 极品尤物av久久免费看| 亚洲欧美经典视频| 国产日韩欧美激情| 欧美一区永久视频免费观看| 99精品视频在线播放观看| 麻豆精品蜜桃视频网站|