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

📄 play.pas

📁 dos下经典游戏超级马力的完整源代码
💻 PAS
字号:
unit Play;

interface

  uses
    Players,
    TmpObj,
    Blocks,
    Figures,
    Glitter,
    Buffers,
    BackGr,
    Enemies,
    Palettes,
    VGA256,
    Stars,
    Status,
    Txt,
    Music,
    KeyBoard,
    Crt;

  const
    Stat: Boolean = FALSE;
    ShowRetrace: Boolean = FALSE;

  function PlayWorld (N1, N2: Char; var Map1; var Opt1; var Opt1b;
    var Map2; var Opt2; var Opt2b; Player: Byte): Boolean;

implementation

  const
    CheatsUsed: Integer = 0;

  function PlayWorld (N1, N2: Char; var Map1; var Opt1; var Opt1b;
                      var Map2; var Opt2; var Opt2b; Player: Byte): Boolean;
    var
      i, j, k, x, y: Integer;

    procedure MoveScreen;
      var
        Scroll: Integer;
        N1, N2: Integer;
        i, j, OldX, NewX, Page: Integer;

    begin
      Page := CurrentPage;

      Scroll := XView - LastXView [Page];

      if not EarthQuake then
        SetView (XView, YView)
      else
      begin
        Inc (EarthQuakeCounter);
        if EarthQuakeCounter > 0 then
          EarthQuake := False;
        SetView (XView, YView + Random (2) - Random (2));
      end;

      if Scroll < 0 then
        StartEnemies ((XView div W) - StartEnemiesAt, 1)
      else
        if Scroll > 0 then
          StartEnemies ((XView div W) + NH + StartEnemiesAt, - 1);

      With Options do
      begin
        i := Horizon;
        Horizon := i + GetYOffset - YBASE;
        DrawBackGr (FALSE);
        Horizon := i;
      end;

      if Scroll > 0 then
        for j := LastXView [Page] to XView do
        begin
          i := j - W - W;
          if i >= 0 then
            PutPixel (i, 0, 0);
          i := W - j mod W - 1;
          Redraw (j div W + NH + 1, i);
        end;

      if Scroll < 0 then
        for j := LastXView [Page] downto XView do
        begin
          i := W - j mod W - 1;
          Redraw (j div W - 1, i);
        end;

    end;

    procedure FindPipeExit;
      var
        i, j: Integer;
    begin
      for i := 0 to Options.XSize - 1 - 1 do
        for j := 0 to NH - 1 do
          if (i <> MapX) or (j <> MapY) then
            if (WorldMap^ [i, j] in ['

⌨️ 快捷键说明

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