⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 junit2.pas

📁 类似超级玛丽模型之二(DELPHIX)
💻 PAS
字号:
Unit jUnit2;

Interface

Uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Buttons, ExtCtrls, StdCtrls, directx, dxdraws;

Type
  TMenuForm = Class(TForm)
    Quit: TSpeedButton;
    NewGame: TSpeedButton;
    RestartLevel: TSpeedButton;
    Endgame: TSpeedButton;
    Load: TSpeedButton;
    Save: TSpeedButton;
    ScreenMode: TSpeedButton;
    Image2: TImage;
    Procedure EndgameClick(Sender: TObject);
    Procedure QuitClick(Sender: TObject);
    Procedure NewGameClick(Sender: TObject);
    Procedure SaveClick(Sender: TObject);
    Procedure LoadClick(Sender: TObject);
    Procedure FormActivate(Sender: TObject);
    Procedure FormKeyPress(Sender: TObject; Var Key: Char);
    Procedure RestartLevelClick(Sender: TObject);
    Procedure FormShow(Sender: TObject);
    Procedure ScreenModeClick(Sender: TObject);
  Private
    { Private declarations }
  Public
    { Public declarations }
  End;

Var
  MenuForm          : TMenuForm;

Implementation
Uses unit1, Unit2_, Unit3;

{$R *.DFM}

Function systemdir: String;
Var temp            : Array[0..255] Of char;
Begin
  GetSystemDirectory(@temp, 255);
  result := pchar(@temp);
End;

Procedure TMenuForm.EndgameClick(Sender: TObject);
Begin
  playing := false;
  Close;
End;

Procedure TMenuForm.QuitClick(Sender: TObject);
Begin
  MainForm.DXTimer1.Enabled := False;
  HelpForm.ShowModal;
  Halt;
End;

Procedure TMenuForm.NewGameClick(Sender: TObject);
Var a               : String;
Begin
  If paramstr(1) <> '' Then
  Begin
    game.score := 0;
    a := paramstr(1);
    setlength(a, length(a) - 2);
    chdir(extractfilepath(application.exename));
    mainform.loadworld(a);
    playing := true;
  End Else Mainform.InitGame;
  close;
End;

Procedure TMenuForm.SaveClick(Sender: TObject);
Var f               : File Of byte;
  i, l              : integer;
Begin
  assignfile(f, systemdir + '\joffa.sav');
  rewrite(f);
  blockwrite(f, game.score, sizeof(game.score));
  blockwrite(f, game.scrollx, sizeof(game.scrollx));
  blockwrite(f, game.scrolly, sizeof(game.scrolly));
  blockwrite(f, game.level.filename, sizeof(game.level.filename));
  blockwrite(f, game.level.currentfile, sizeof(game.level.currentfile));
  l := length(game.objs);
  blockwrite(f, l, sizeof(l));
  For i := 0 To l - 1 Do
    blockwrite(f, game.objs[i], sizeof(game.objs[0]));
  CloseFile(f);
  Close;
End;

Procedure TMenuForm.LoadClick(Sender: TObject);
Var f               : File Of byte;
  sx, sy, l, i      : integer;
  loadobj           : objtype;
Begin
  MainForm.initgame;
  assignfile(f, systemdir + '\joffa.sav');
  reset(f);
  blockread(f, game.score, sizeof(game.score));
  blockread(f, sx, sizeof(game.scrollx));
  blockread(f, sy, sizeof(game.scrolly));
  blockread(f, game.level.filename, sizeof(game.level.filename));
  blockread(f, game.level.currentfile, sizeof(game.level.currentfile));
  mainform.loadlevel(game.level.currentfile);
  blockread(f, l, sizeof(l));
  setlength(game.objs, l);
  For i := 0 To l - 1 Do
    BlockRead(f, game.objs[i], sizeof(loadobj)); {}
  CloseFile(f);
  game.scrollx := sx;
  game.scrolly := sy;
  Close;
End;

Procedure TMenuForm.FormActivate(Sender: TObject);
Begin
  EndGame.Enabled := (playing);
//SpeedButton5.Enabled:=(playing);
End;

Procedure TMenuForm.FormKeyPress(Sender: TObject; Var Key: Char);
Begin
  If key = chr(27) Then close;
End;

Procedure TMenuForm.RestartLevelClick(Sender: TObject);
Begin
  With mainform Do
    With game.objs[myhandle] Do
// if typo=99 then
 // if stall<10 then
      loadlevel(game.level.currentfile);
End;

Procedure TMenuForm.FormShow(Sender: TObject);
Begin
//left:=(screen.width-width) div 2;
//top:=(screen.height-height) div 2;
  If doFullScreen In mainform.dxdraw1.Options Then
    ScreenMode.Caption := 'Windowed' Else
    ScreenMode.Caption := 'Fullscreen';
  load.enabled := fileexists(systemdir + '\joffa.sav');
  save.enabled := playing;
  RestartLevel.Enabled := playing;
End;

Procedure TMenuForm.ScreenModeClick(Sender: TObject);
Begin
  MainForm.SwitchMode;
  Close;
End;

End.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -