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

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

?? uformmapedit.pas

?? 泡泡堂單機版源程序
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
  if ParamStr(1) <> '' then
    showmessage(ParamStr(0));
end;

procedure TFormMapEdit.InitImageList;
begin
  DXImageList.Items.MakeColorTable;
  DXDraw.ColorTable := DXImageList.Items.ColorTable;
  DXDraw.DefColorTable := DXImageList.Items.ColorTable;
  DXDraw.UpdatePalette;

  FillChar(MapTile, SizeOf(MapTile), 0);

end;

procedure TFormMapEdit.DXTimerTimer(Sender: TObject; LagCount: Integer);
var
  PerY              : Integer;
  ObjImage          : TPictureCollectionItem;
begin
  if not DXDraw.CanDraw then
    Exit;

  DXDraw.Surface.Fill(0);

  UpdateMapView;

  if mShowFps.Checked then
  begin
    with DXDraw.Surface.Canvas do
    begin
      Brush.Style := bsClear;
      Font.Color := clRed;
      Font.Size := 12;
      Textout(0, 0, 'FPS: ' + inttostr(DXTimer.FrameRate));
      Release;
    end;
  end;

  //畫當前拖動的圖標
  ObjImage := DXImageList.Items.Find('tile');
  if PsbBtn <> nil then
  begin

    case PageControl1.ActivePageIndex of
      0: ObjImage := DXImageList.Items.Find('tile');
      1: ObjImage := DXImageList.Items.Find('building');
      2: ObjImage := DXImageList.Items.Find('box');
    end;
    //調(diào)整顯示的坐標位置
    if ObjImage.PatternHeight > Cnt_TileHeight then
      PerY := (ObjImage.PatternHeight - Cnt_TileHeight)
    else
      PerY := 0;

    ObjImage.Draw(DXDraw.surface, FCurx, FCury - PerY, PsbBtn.tag - 1);

  end;

  with DXDraw.Surface.Canvas do
  begin
    Brush.Style := bsClear;
    Pen.Color := ClRed;
    Pen.Width := 2;
    Rectangle(Rect(FOldX * Cnt_TileWidth, FOldY * Cnt_TileHeight, FOldX *
      Cnt_TileWidth + Cnt_TileWidth, FOldY * Cnt_TileHeight + Cnt_TileHeight));
    Release;
  end;

  DXImageList.Items.Find('cursor').Draw(DXDraw.Surface, FMx, Fmy, 0);
  DXDraw.Flip;
end;

procedure TFormMapEdit.DXDrawMouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
var
  FCursorX, FCursorY: Integer;
begin
  FCursorX := X div Cnt_TileWidth;
  FCursorY := Y div Cnt_TileHeight;
  FCurx := FCursorX * Cnt_TileWidth;
  FCury := FCursorY * Cnt_TileHeight;
  FMx := X;
  FMy := Y;
end;

procedure TFormMapEdit.mShowFpsClick(Sender: TObject);
begin
  mShowFps.Checked := not mShowFps.Checked;
end;

procedure TFormMapEdit.DXDrawMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  FCursorX, FCursorY: Integer;
begin
  FCursorX := X div Cnt_TileWidth;
  FCursorY := Y div Cnt_TileWidth;
  if (FCursorX > Cnt_TileWidthCount) or (FCursorY > Cnt_TileHeightCount) then
    Exit;

  if PsbBtn <> nil then
  begin
    case PageControl1.ActivePageIndex of
      0:
        begin
          MapTile[FCursorX, FCursorY].TileIndex := PsbBtn.Tag;
          MapTile[FCursorX, FCursorY].CanMove := FALSE; //不動
          MapTile[FCursorX, FCursorY].CanDestroy := FALSE; //不銷毀
          MapTile[FCursorX, FCursorY].ObjIndex := 0; //物件為0
        end;
      1:
        begin
          MapTile[FCursorX, FCursorY].CanMove := FALSE;
          MapTile[FCursorX, FCursorY].CanDestroy := (PsbBtn.tag = 5); //不銷毀
          MapTile[FCursorX, FCursorY].ObjIndex := PsbBtn.Tag;
        end;
      2:
        begin
          MapTile[FCursorX, FCursorY].CanMove := (PsbBtn.tag in [1]);
          MapTile[FCursorX, FCursorY].CanDestroy := (PsbBtn.tag in [1, 2, 3]);  //可銷毀
          MapTile[FCursorX, FCursorY].ObjIndex := PsbBtn.Tag;
        end;
    end;
  end;

  FOldX := FCursorX;
  FOldY := FCursorY;
  ListBox1.Items.Clear;
  ListBox1.Items.Add(Format('地表索引 %d ', [MapTile[FCursorX,
    FCursorY].TileIndex]));
  ListBox1.Items.Add(Format('對象索引 %d ', [MapTile[FCursorX,
    FCursorY].ObjIndex]));
  ListBox1.Items.Add(Format('能被移動 %d ', [Ord(MapTile[FCursorX,
      FCursorY].CanMove)]));
  ListBox1.Items.Add(Format('能被摧毀 %d ', [Ord(MapTile[FCursorX,
      FCursorY].CanDestroy)]));

  if SetPlayerState then
  begin
    SetPlayerState := FALSE;
    PlayerList[PID].X := FOldX * Cnt_TileWidth;
    PlayerList[PID].Y := FOldY * Cnt_TileHeight;
  end;
end;

procedure TFormMapEdit.sbBtnOnClick(Sender: TObject);
begin
  if Sender <> nil then
    PsbBtn := Sender as TSpeedButton;
end;

procedure TFormMapEdit.btnFullTileClick(Sender: TObject);
var
  x, y              : Integer;
begin
  if PsbBtn = nil then
    exit;
  for x := 0 to Cnt_TileWidthCount do
    for y := 0 to Cnt_TileHeightCount do
      if PsbBtn.Tag <= (DXImageList.Items.Find('tile').PatternCount - 1) then
        MapTile[x, y].TileIndex := PsbBtn.Tag;
end;

procedure TFormMapEdit.Button1Click(Sender: TObject);
begin
  PsbBtn := nil;
end;

procedure TFormMapEdit.MShowGridClick(Sender: TObject);
begin
  MShowGrid.Checked := not MShowGrid.Checked;
end;

procedure TFormMapEdit.MCloseClick(Sender: TObject);
begin
  Self.Close;
end;

procedure TFormMapEdit.MLoadMapClick(Sender: TObject);
var
  MapFileName       : string;
  FileHandle        : Integer;
  ms1, ms2          : TMemoryStream;
begin
  if OpenDialog.Execute then
  begin
    MapFileName := OpenDialog.FileName;

    ms1 := TMemoryStream.Create;
    try
      ms2 := TMemoryStream.Create;
      try
        ms1.LoadFromFile(MapFileName);
        DecompressStream(ms1, ms2);
        ms2.SaveToFile(MapFileName + '.tmp');
      finally
        ms1.Free;
      end;
    finally
      ms2.Free;
    end;

    if FileExists(MapFileName + '.tmp') then
    begin
      FileHandle := FileOpen(MapFileName + '.tmp', fmOpenRead);
      FileSeek(FileHandle, 0, 0);
      FileRead(FileHandle, MapTile, SizeOf(MapTile));
      FileRead(FileHandle, PlayerList, SizeOf(PlayerList));
      FileClose(FileHandle);
      DeleteFile(MapFileName + '.tmp');
    end;

  end;
end;

procedure TFormMapEdit.MSaveMapClick(Sender: TObject);
var
  MapFileName       : string;
  FileHandle        : Integer;
  ms1, ms2          : TMemoryStream;
begin
  if SaveDialog.Execute then
  begin
    MapFileName := ExtractFileName(SaveDialog.FileName);
    MapFileName := ChangeFileExt(MapFileName, '.Map');
    if FileExists(MapFileName) then
      DeleteFile(MapFileName);
    FileHandle := FileCreate(MapFileName);
    FileWrite(FileHandle, MapTile, SizeOf(MapTile));
    FileWrite(FileHandle, PlayerList, SizeOf(PlayerList));
    FileClose(FileHandle);

    ms1 := TMemoryStream.Create;
    try
      ms2 := TMemoryStream.Create;
      try
        ms1.LoadFromFile(MapFileName);
        CompressStream(ms1, ms2);
        ShowMessage(Format('Stream Compression Rate: %d %%',
          [round(100 / ms1.Size * ms2.Size)]));
        ms2.SaveToFile(MapFileName);
      finally
        ms1.Free;
      end;
    finally
      ms2.Free;
    end;

  end;
end;

procedure TFormMapEdit.setPlayerPos(PlayerID: integer);
begin
  PsbBtn := nil;
  SetPlayerState := TRUE;
  PID := playerID;
end;

procedure TFormMapEdit.btnSetPlayer1Click(Sender: TObject);
begin
  setPlayerPos(0);
end;

procedure TFormMapEdit.btnSetPlayer2Click(Sender: TObject);
begin
  setPlayerPos(1);
end;

procedure TFormMapEdit.N2Click(Sender: TObject);
begin
  fillChar(MapTile, SizeOf(MapTile), 0);
  fillChar(PlayerList, SizeOf(PlayerList), 0);
end;

procedure TFormMapEdit.A2Click(Sender: TObject);
begin
  ShellAbout(handle, '泡泡地圖編輯器', 'mailto:Chinasf@hotmail.com',
    Application.Icon.Handle);
end;

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩不卡在线| 欧美麻豆精品久久久久久| 水蜜桃久久夜色精品一区的特点| 自拍偷拍国产亚洲| 自拍偷拍国产亚洲| 亚洲免费高清视频在线| 亚洲免费大片在线观看| 亚洲免费成人av| 亚洲无人区一区| 日韩成人免费看| 国产在线一区二区| 成人白浆超碰人人人人| 91社区在线播放| 欧美无砖专区一中文字| 91精品国产福利在线观看| 精品乱人伦一区二区三区| 久久理论电影网| 亚洲免费观看高清完整版在线| 一级特黄大欧美久久久| 三级在线观看一区二区| 九九精品视频在线看| av亚洲精华国产精华| 欧美视频在线观看一区| 日韩午夜激情av| 亚洲欧洲av另类| 日韩av网站在线观看| 国产成人精品www牛牛影视| 色婷婷综合视频在线观看| 911国产精品| 亚洲欧美影音先锋| 日韩福利电影在线观看| 成人免费毛片片v| 欧美精品在线一区二区三区| 久久夜色精品一区| 亚洲综合自拍偷拍| 国产精品白丝av| 欧美综合在线视频| 日本一区二区综合亚洲| 亚洲一卡二卡三卡四卡| 国产一区在线不卡| 欧美男同性恋视频网站| 国产精品欧美精品| 麻豆精品一区二区综合av| 99免费精品视频| 欧美成人伊人久久综合网| 亚洲欧美另类图片小说| 国内外精品视频| 精品婷婷伊人一区三区三| 国产日产欧美一区| 麻豆精品一区二区三区| 欧美日韩一区二区在线观看| 国产精品色哟哟网站| 国模冰冰炮一区二区| 欧美剧情片在线观看| 樱桃视频在线观看一区| 国产成人丝袜美腿| 久久综合av免费| 欧美aⅴ一区二区三区视频| 欧美视频在线一区| 亚洲精品日韩综合观看成人91| 国产精品自拍在线| 精品久久久久香蕉网| 日韩中文字幕麻豆| 欧美欧美午夜aⅴ在线观看| 亚洲一区二区黄色| 精品视频在线视频| 亚洲bt欧美bt精品777| 精久久久久久久久久久| 亚洲欧美国产77777| 91精品福利在线一区二区三区| 亚洲色图在线看| 国产精品亚洲人在线观看| 国产亚洲一区二区三区在线观看| 免费久久精品视频| 欧美日韩国产另类一区| 午夜国产不卡在线观看视频| 在线国产电影不卡| 丝袜脚交一区二区| 在线91免费看| 美女视频黄久久| 久久免费美女视频| 成人av综合在线| 一区二区三区四区精品在线视频| 91麻豆.com| 日韩精品一级中文字幕精品视频免费观看 | 久久精品一区二区三区不卡| 精一区二区三区| 欧美高清在线视频| 91老司机福利 在线| 亚洲主播在线播放| 日韩一区二区电影网| 久久er99精品| 中文字幕av在线一区二区三区| aaa欧美日韩| 首页国产欧美日韩丝袜| 久久精品夜色噜噜亚洲aⅴ| 成人精品视频一区二区三区 | 99视频一区二区| 亚洲一区二区三区四区五区中文| 欧美三区在线视频| 激情另类小说区图片区视频区| 亚洲国产高清aⅴ视频| 91精品福利在线| 久久国产日韩欧美精品| 亚洲欧洲日韩在线| 欧美一级爆毛片| yourporn久久国产精品| 婷婷六月综合网| 欧美韩国日本不卡| 91精品欧美福利在线观看| 粉嫩av一区二区三区| 亚洲成人激情av| 亚洲国产激情av| 欧美一二三四区在线| 99综合电影在线视频| 久久66热re国产| 亚洲第一电影网| 亚洲三级理论片| 国产日韩亚洲欧美综合| 欧美狂野另类xxxxoooo| 91影视在线播放| 国产精品资源站在线| 日韩精品91亚洲二区在线观看| 日本一区二区久久| 欧美mv日韩mv| 欧美剧情片在线观看| 一本大道久久a久久综合婷婷| 国产专区综合网| 日本午夜精品一区二区三区电影| 成人欧美一区二区三区| 久久久久久久性| 日韩三级高清在线| 欧美精品v国产精品v日韩精品| 99国产精品久久久久久久久久 | 欧美国产日产图区| 91精品国产综合久久久蜜臀粉嫩| 日本乱人伦aⅴ精品| 国产成人精品三级| 国产在线播放一区二区三区| 免费三级欧美电影| 亚洲成人一二三| 亚洲国产成人av网| 亚洲国产精品久久人人爱蜜臀| 亚洲欧洲综合另类在线| 亚洲欧洲99久久| 中文字幕亚洲区| 中文字幕字幕中文在线中不卡视频| 国产日韩欧美麻豆| 国产精品色呦呦| 亚洲人成网站影音先锋播放| 中文字幕在线观看一区| 亚洲视频1区2区| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲国产精品成人久久综合一区| www久久久久| 国产欧美一区二区精品忘忧草| 久久久精品影视| 国产精品女主播在线观看| 国产精品国产三级国产有无不卡 | 国产精品自拍av| 成人91在线观看| 91丨九色丨国产丨porny| 在线一区二区三区四区五区| 欧美亚一区二区| 欧美一区二区视频免费观看| 91精品国产91综合久久蜜臀| 亚洲精品一区二区三区精华液| 国产亚洲精品aa| 亚洲精品成人天堂一二三| 亚洲成人精品在线观看| 麻豆久久久久久久| 成人丝袜视频网| 欧日韩精品视频| 精品国产一区二区三区久久久蜜月| 久久一区二区三区国产精品| 国产精品理论片在线观看| 亚洲图片自拍偷拍| 国产黄色成人av| 欧美色倩网站大全免费| 日韩欧美电影一二三| 国产精品电影一区二区三区| 五月天精品一区二区三区| 国产一区日韩二区欧美三区| 91在线观看免费视频| 欧美一区午夜精品| 国产日韩欧美激情| 日韩精品电影一区亚洲| 99久久亚洲一区二区三区青草| 69堂精品视频| 亚洲欧美激情在线| 国产麻豆一精品一av一免费| 91久久一区二区| 欧美国产成人精品| 日本视频中文字幕一区二区三区| 处破女av一区二区| 日韩精品一区二区三区中文精品| 中文字幕欧美国产| 精品一区二区三区在线播放视频| 色婷婷综合五月| 国产精品丝袜一区|