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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unit1.pas

?? 3d snake 游戲編程源碼
?? PAS
字號:
unit Unit1;

interface

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, Menus, IniFiles, Unit2, StdCtrls, ExtCtrls;

type
   TMainForm = class(TForm)
      MainMenu1: TMainMenu;
      MenuGame: TMenuItem;
      MenuOpenGame: TMenuItem;
      MenuPause: TMenuItem;
      N3: TMenuItem;
      MenuExit: TMenuItem;
      MenuOption: TMenuItem;
      N1: TMenuItem;
      MenuHelp: TMenuItem;
      MenuSubHelp: TMenuItem;
      MenuAbout: TMenuItem;
      MenuRestart: TMenuItem;
      N8: TMenuItem;
      N7: TMenuItem;
      MenuViewScript: TMenuItem;
      Panel1: TPanel;
      MemoMap: TMemo;
      lblSnakeHead: TLabel;
      lblSnakeLength: TLabel;
      Bevel1: TBevel;
      Bevel2: TBevel;
      lblApplePos: TLabel;
      lblShowTime: TLabel;
      Label2: TLabel;
      Label3: TLabel;
      Bevel3: TBevel;
      Image1: TImage;
      lblDown: TLabel;
      lblRight: TLabel;
      lblLeft: TLabel;
      lblUp: TLabel;
      Image2: TImage;
      Label7: TLabel;
      Label8: TLabel;
      Label9: TLabel;
      Label10: TLabel;
      lblAppleCount: TLabel;
      Bevel4: TBevel;
      MenuCloseMap: TMenuItem;
      Label1: TLabel;
      procedure FormPaint(Sender: TObject);
      procedure MenuOptionClick(Sender: TObject);
      procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
      procedure MenuViewScriptClick(Sender: TObject);
      procedure FormCreate(Sender: TObject);
      procedure FormKeyDown(Sender: TObject; var Key: Word;
         Shift: TShiftState);
      procedure MenuExitClick(Sender: TObject);
      procedure MenuRestartClick(Sender: TObject);
      procedure MenuCloseMapClick(Sender: TObject);
      procedure MenuAboutClick(Sender: TObject);
    procedure MenuSubHelpClick(Sender: TObject);
   private
    { Private declarations }
   public
      procedure LoadFiles;
      procedure SaveFiles;
      procedure MapClick(Sender: TObject);
   end;

var
   MainForm: TMainForm;
   GameCtrl: TGameCtrl;
   DrawEngine: TDrawEngine;
   MapCtrl: TMapCtrl;
   GameOption: TGameOption;

   SetIni: TIniFile;
   GameDir: string;
implementation
uses Unit3, Unit4, Unit5, unit6,Unit7;
{$R *.dfm}

procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
   SaveFiles;
   GameCtrl.Free;
   DrawEngine.Free;
   MapCtrl.Free;
   SetIni.Free;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
   ClientWidth := 665 + Panel1.Width;
   ClientHeight := 475;
   MapCtrl := TMapCtrl.Create;
   GameCtrl := TGameCtrl.Create;

   DrawEngine := TDrawEngine.Create(Handle, 665, 430);
   GameCtrl._Engine := @DrawEngine;
   DrawEngine._GameCtrl := @GameCtrl;

   LoadFiles;
end;

procedure TMainForm.FormPaint(Sender: TObject);
begin
   SwapBuffers(DrawEngine.DrawDC);
end;

procedure TMainForm.LoadFiles;
var i: ObjNames;
begin
   GameDir := ExtractFileDir(Application.ExeName) + '\';
   SetIni := TIniFile.Create(GameDir + 'Settings.ini');
   MapCtrl.MapCount := SetIni.ReadInteger(str_Snake, str_MapCount, 0);
   MapCtrl.MapDir := GameDir + 'Maps\';
   MapCtrl.LoadMaps;

   with GameOption do begin
      for i := obj_Wall to obj_Exit do
         Colors[i] := SetIni.ReadInteger(str_Snake, str_Color + IntToStr(ord(i)), 0);
      WallAlpha := SetIni.ReadInteger(str_Snake, str_WallAlpha, 122);
      ShowGrid := SetIni.ReadBool(str_Snake, str_ShowGrid, True);
      LightOn := SetIni.ReadBool(str_Snake, str_LightOn, True);
      ShowAidLine := SetIni.ReadBool(str_Snake, str_ShowAidLine, True);
      RGBGameColors;
      LoadWallColors;
   end;
end;

procedure TMainForm.SaveFiles;
var i: ObjNames;
begin
   with GameOption do begin
      for i := obj_Wall to obj_Exit do
         SetIni.WriteInteger(str_Snake, str_Color + IntToStr(ord(i)), Colors[i]);
      SetIni.WriteInteger(str_Snake, str_Snake, WallAlpha);
      SetIni.WriteBool(str_Snake, str_ShowGrid, ShowGrid);
      SetIni.WriteBool(str_Snake, str_LightOn, LightOn);
      SetIni.WriteBool(str_Snake, str_ShowAidLine, ShowAidLine);
   end;
end;

procedure TMainForm.MapClick(Sender: TObject);
begin
   if GameCtrl.AskIfGameEnd then begin
      GameCtrl.Game_End;
      GameCtrl.NewGame(MapCtrl.MapFileName((Sender as TComponent).Tag));
      GameCtrl.NowLevelIdx := (Sender as TComponent).Tag;
   end;
end;

procedure TMainForm.MenuOptionClick(Sender: TObject);
var OptionForm: TFormOption;
begin
   GameCtrl.Game_Pause;
   OptionForm := TFormOption.Create(nil);
   OptionForm.ShowModal;
   OptionForm.Free;
   if GameCtrl.AMapLoaded then
      DrawEngine.DrawScene;
end;

procedure TMainForm.MenuViewScriptClick(Sender: TObject);
var frm: TfrmScriptView;
begin
   if GameCtrl.AMapLoaded = False then begin
      MessageDlg(msg_NoFileToShowScript, mtInformation, [mbOK], 0);
      Exit;
   end;
   GameCtrl.Game_Pause;
   frm := TfrmScriptView.Create(nil);
   frm.Edit1.Text := DrawEngine.MapFileName;
   frm.Memo1.Lines.AddStrings(DrawEngine.MapScript);
   frm.ShowModal;
   frm.Free;
end;

procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
   Shift: TShiftState);
begin
   if GameCtrl.AMapLoaded = False then Exit;
   case Key of
      kb_ViewAngleV: begin
            DrawEngine.NextViewAngelV;
            Exit;
         end;
      kb_ViewAngleH: begin
            DrawEngine.NextViewAngelH;
            Exit;
         end;
      kb_FarNear: begin
            DrawEngine.ChangeFarNear;
            Exit;
         end;
   end;

   if GameCtrl.GameEnd then Exit; //實現游戲結束玩家仍可以改變視角,但不可再操縱
   if GameCtrl.GameStarted = False then begin //蛇沒有開始動,那么按方向鍵和加速鍵蛇開始動
      case Key of
         kb_Up: GameCtrl.Game_Start(td_Up);
         kb_Down: GameCtrl.Game_Start(td_Down);
         kb_Left: GameCtrl.Game_Start(td_Left);
         kb_Right: GameCtrl.Game_Start(td_Right);
         kb_Accelerate: GameCtrl.Game_Start(td_Accelerate);
      end;
      Exit;
   end;

   if Key = kb_PauseOrResume then begin
      if GameCtrl.GamePaused = False then
         GameCtrl.Game_Pause
      else
         GameCtrl.Game_Resume;
      Exit;
   end;

   if GameCtrl.GamePaused = True then
      GameCtrl.Game_Resume;

   case Key of
      kb_Up: DrawEngine.SnakeTurn(td_Up);
      kb_Down: DrawEngine.SnakeTurn(td_Down);
      kb_Left: DrawEngine.SnakeTurn(td_Left);
      kb_Right: DrawEngine.SnakeTurn(td_Right);
      kb_Accelerate: DrawEngine.SnakeTurn(td_Accelerate);
   end;

end;

procedure TMainForm.MenuExitClick(Sender: TObject);
begin
   if (GameCtrl.AMapLoaded) and (GameCtrl.GameEnd = False) then begin
      GameCtrl.Game_Pause;
      if MessageDlg(msg_GameOnIfExit, mtConfirmation, [mbYes, mbNo], 0) = mrYes then
         Close
      else
         GameCtrl.Game_Resume;
   end else
      Close;
end;

procedure TMainForm.MenuRestartClick(Sender: TObject);
begin
   if GameCtrl.AMapLoaded = False then begin
      MessageDlg(msg_NoFileToRestart, mtInformation, [mbOK], 0);
      Exit;
   end;
   if GameCtrl.GameEnd = True then
      GameCtrl.Game_Restart
   else
      if MessageDlg(msg_WantToRestart, mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
         GameCtrl.Game_End;
         GameCtrl.Game_Restart;
      end;
end;

procedure TMainForm.MenuCloseMapClick(Sender: TObject);
begin
   if GameCtrl.AMapLoaded = False then begin
      MessageDlg(msg_NoFileToClose, mtInformation, [mbOK], 0);
      Exit;
   end;
   if MessageDlg(msg_WantToClose, mtConfirmation, [mbYes, mbNo], 0) = mrYes then
      GameCtrl.CloseMap;
end;

procedure TMainForm.MenuAboutClick(Sender: TObject);
var frm: TFrmAbout;
begin
   frm := TFrmAbout.Create(nil);
   if (GameCtrl.AMapLoaded) and (GameCtrl.GameEnd = False) then begin
      GameCtrl.Game_Pause;
      frm.ShowModal;
   end else
      frm.ShowModal;
   frm.Free;
end;

procedure TMainForm.MenuSubHelpClick(Sender: TObject);
var frmHelp:TFrmHelp;
begin
   frmHelp:=TfrmHelp.Create(nil);
   if (GameCtrl.AMapLoaded) and (GameCtrl.GameEnd = False) then begin
      GameCtrl.Game_Pause;
      frmHelp.showModal;
   end else
      frmHelp.showModal;
   frmHelp.Free;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区男人的天堂| 一色屋精品亚洲香蕉网站| 久久综合久久鬼色中文字| 亚洲天堂久久久久久久| 秋霞午夜鲁丝一区二区老狼| 97久久久精品综合88久久| 久久综合色鬼综合色| 亚洲一区二区三区四区的| 成人av网址在线| 精品欧美久久久| 性做久久久久久| 色综合久久久久综合体桃花网| 久久影音资源网| 天堂影院一区二区| 91国产免费观看| 中文字幕日韩一区| 国产+成+人+亚洲欧洲自线| 日韩一卡二卡三卡国产欧美| 亚洲国产精品久久久久婷婷884| 99re8在线精品视频免费播放| 国产亚洲一区二区三区在线观看| 青青草国产精品亚洲专区无| 精品视频在线免费| 一区二区在线看| 99久久久精品免费观看国产蜜| 国产午夜一区二区三区| 国产精品99久久久久久有的能看| 欧美一级理论性理论a| 日韩vs国产vs欧美| 欧美一区二区三区小说| 免费成人在线观看视频| 欧美一区二区三区视频免费 | 欧美日韩国产系列| 亚洲亚洲精品在线观看| 欧美午夜电影一区| 亚洲免费av在线| 欧美午夜精品久久久久久超碰 | 色噜噜狠狠成人网p站| 亚洲精选一二三| 日本丶国产丶欧美色综合| 一区二区三区日韩在线观看| 在线视频中文字幕一区二区| 午夜日韩在线电影| 日韩欧美一级二级三级久久久| 久久成人av少妇免费| 久久色在线观看| 成人网在线免费视频| 亚洲三级免费电影| 7777精品伊人久久久大香线蕉完整版| 日韩福利视频网| 久久久精品一品道一区| 成人美女视频在线观看| 亚洲一本大道在线| 日韩欧美国产一二三区| 成人永久看片免费视频天堂| 亚洲色图第一区| 欧美一区二区成人6969| 国产91精品一区二区| 亚洲精品视频一区二区| 91精品国产91久久综合桃花| 国产一区二区三区高清播放| ...中文天堂在线一区| 欧美精品色一区二区三区| 久久成人免费网| 亚洲免费高清视频在线| 日韩欧美亚洲国产精品字幕久久久| 国产另类ts人妖一区二区| 亚洲精品伦理在线| 精品久久久久av影院| 色拍拍在线精品视频8848| 麻豆国产精品一区二区三区| 亚洲手机成人高清视频| 91精品国产色综合久久ai换脸| 成人免费视频caoporn| 婷婷久久综合九色综合绿巨人| 337p日本欧洲亚洲大胆色噜噜| 日本国产一区二区| 国产一区在线看| 午夜电影网一区| 日韩毛片在线免费观看| 精品国产乱码久久久久久蜜臀 | 天天综合日日夜夜精品| 国产精品久久久久四虎| 精品日产卡一卡二卡麻豆| 欧美探花视频资源| 国产福利91精品一区| 青青国产91久久久久久| 亚洲乱码国产乱码精品精可以看 | 亚洲日本va在线观看| 久久一区二区三区四区| 欧美一级生活片| 欧美视频一区在线| 9i在线看片成人免费| 国内精品久久久久影院一蜜桃| 亚洲福利视频三区| 亚洲四区在线观看| 中文天堂在线一区| 国产婷婷色一区二区三区| 91麻豆精品国产| 欧美日韩国产首页| 欧美性色欧美a在线播放| av电影一区二区| 成人黄色小视频在线观看| 国产乱淫av一区二区三区| 麻豆精品在线看| 久久狠狠亚洲综合| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲第一av色| 午夜av电影一区| 天天综合网 天天综合色| 午夜精品久久久久久久久久久| 亚洲综合另类小说| 亚洲综合成人在线| 婷婷六月综合亚洲| 首页国产丝袜综合| 天堂va蜜桃一区二区三区| 图片区日韩欧美亚洲| 五月激情综合色| 蜜桃传媒麻豆第一区在线观看| 美女视频网站久久| 紧缚捆绑精品一区二区| 国产精品一二三| 丰满亚洲少妇av| 色呦呦网站一区| 欧美日免费三级在线| 欧美日本视频在线| 欧美mv日韩mv国产网站| 精品毛片乱码1区2区3区 | 国产精华液一区二区三区| 国产高清精品久久久久| jvid福利写真一区二区三区| 色一区在线观看| 91精品国产色综合久久不卡电影| 精品精品国产高清a毛片牛牛 | 成人国产在线观看| 91国偷自产一区二区开放时间| 欧美区视频在线观看| 精品久久久三级丝袜| 亚洲欧洲www| 日日夜夜精品视频天天综合网| 精品在线观看视频| 成人激情午夜影院| 欧美日韩免费电影| 久久精品无码一区二区三区| 综合分类小说区另类春色亚洲小说欧美| 亚洲欧美一区二区三区久本道91| 日日噜噜夜夜狠狠视频欧美人| 国产一区二区三区不卡在线观看| 一本到三区不卡视频| 欧美一区欧美二区| 国产精品国产成人国产三级| 亚洲第一在线综合网站| 国产一区二区成人久久免费影院| 91亚洲永久精品| 日韩精品一区二区三区在线| ...中文天堂在线一区| 久久er精品视频| 一本到不卡精品视频在线观看| 精品久久一区二区| 亚洲乱码精品一二三四区日韩在线 | 午夜精品久久久久久久蜜桃app| 国产精品一区二区在线观看不卡| 91成人在线精品| 国产亚洲视频系列| 丝袜亚洲另类丝袜在线| 成人美女视频在线观看| 日韩欧美一区二区三区在线| 一区二区三区视频在线看| 丁香婷婷综合五月| 日韩女优毛片在线| 一区二区三区在线观看欧美| 福利电影一区二区三区| 日韩欧美的一区| 亚洲二区在线视频| 色综合久久久久综合| 国产欧美一区二区精品秋霞影院| 丝袜脚交一区二区| 欧美视频一区二区三区在线观看| 国产精品久久夜| 东方欧美亚洲色图在线| 欧美精品一区二区三区蜜桃| 日韩成人精品在线| 欧美精品少妇一区二区三区| 亚洲曰韩产成在线| 日本乱人伦aⅴ精品| 中文字幕中文在线不卡住| 国产精品中文字幕欧美| 精品理论电影在线| 日韩国产在线观看一区| 欧美综合天天夜夜久久| 亚洲裸体在线观看| heyzo一本久久综合| 国产精品美女一区二区三区| 成人网在线免费视频| 国产精品青草久久| 成人av网在线| 亚洲免费观看高清在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 中文字幕日本乱码精品影院| 91美女在线观看|