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

📄 unittetris.h

📁 俄罗斯方块双打版
💻 H
字号:
//---------------------------------------------------------------------------

#ifndef UnitTetrisH
#define UnitTetrisH
//---------------------------------------------------------------------------
#ifndef STRICT
#  define STRICT
#endif
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "TetrisData.h"
#include <ExtCtrls.hpp>
#include <ActnList.hpp>
#include <Menus.hpp>
#include <AppEvnts.hpp>
#include "VictorDDraw8.h"
//---------------------------------------------------------------------------
class TFormTetris : public TForm
{
__published:	// IDE-managed Components
    TMainMenu *MainMenu1;
    TActionList *ActionList1;
    TAction *AnNew;
    TAction *AnPause;
    TAction *AnHScore;
    TAction *AnExit;
    TMenuItem *MmFile;
    TMenuItem *New1;
    TMenuItem *Pause1;
    TMenuItem *HighScore1;
    TMenuItem *Exit1;
    TMenuItem *N1;
    TApplicationEvents *ApplicationEvents1;
    TMenuItem *H1;
    TAction *AnHelp;
    TAction *AnAbout;
    TMenuItem *AnHelp1;
    TMenuItem *AnAbout1;
    TAction *AnSingle;
    TMenuItem *S1;
    TMenuItem *Speedset;
    TMenuItem *N2;
    TAction *AnSpeed;
    TVictorDDraw8 *VictorDDraw81;
    void __fastcall FormKeyDown(TObject *Sender, WORD &Key,
    TShiftState Shift);
    void __fastcall AnNewExecute(TObject *Sender);
    void __fastcall AnPauseExecute(TObject *Sender);
    void __fastcall AnHScoreExecute(TObject *Sender);
    void __fastcall AnExitExecute(TObject *Sender);
    void __fastcall ApplicationEvents1Deactivate(TObject *Sender);
    void __fastcall LabelHomeClick(TObject *Sender);
    void __fastcall AnHelpExecute(TObject *Sender);
    void __fastcall AnAboutExecute(TObject *Sender);
    void __fastcall AnSingleExecute(TObject *Sender);
    void __fastcall FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift);
    void __fastcall AnSpeedExecute(TObject *Sender);
    void __fastcall ApplicationEvents1Idle(TObject *Sender, bool &Done);
    void __fastcall VictorDDraw81DispFrame(TCustomDDraw8 *Sender);
    void __fastcall VictorDDraw81RestoreFrame(TCustomDDraw8 *Sender);
    void __fastcall ApplicationEvents1Restore(TObject *Sender);
    void __fastcall ApplicationEvents1Activate(TObject *Sender);
public:
    static const NumScores = 5;
    #pragma pack(push,1)
    typedef struct
     {
       int Score;
       char Name[32];
     } TScoreItem;
    typedef union
     {
       struct
        {
          TScoreItem Scores[NumScores];
          int Speed;
        };
       char Buffer[512];
     } TTetrisParams;
    #pragma pack(pop)    
private:	// User declarations
    __property bool Paused = { read = _bPaused, write = SetPause };

    static const BlockSize=20, BlockTop=10, BlockLL=10, BlockRL=298, BlockIL=206;
    bool _bPaused, _bSingle, _bGameOverL, _bGameOverR;
    TBaseTetris TetrisLeft, TetrisRight;
    TTetrisParams TetrisParams;
    //Graphics::TBitmap *TtBmp, *PsBmp, *OvBmp, *SgBmp, *BkBmp, *KkBmp, *MaskBmp;
    TDDrawSurface *TtSur, *PsSur, *OvSur, *SgSur, *BkSur;
    int iSurfaceWidth, iSurfaceHeight;
    bool bDisplayEnabled;

    int iFrames,iFrmCnt;
    char Str_L_Lines[64], Str_L_Score[64], Str_R_Lines[64], Str_R_Score[64], Str_Speed[64], Str_HighScore[64], Str_Fps[64];

    int LnLeft, LnRight, _iKeyDelay;
    int _iLeftDown, _iRightDown;
    int _iLeftLeft, _iLeftRight;
    int _iRightLeft, _iRightRight;

    unsigned int nSysTimeInterval;
    int nTimerMainInterval, nTimerDownInterval;
    int iTimerMainC0, iTimerMainC1, iTimerDownC0, iTimerDownC1;
    void __fastcall EvTimerMainTimer(void);
    void __fastcall EvTimerDownTimer(void);

    void __fastcall InitSurfaces(void);
    void __fastcall LoadSurfaces(void);

    int  __fastcall GetInitSpeed(void);
    void __fastcall SetInitSpeed(int iSpd);
    int  __fastcall GetInitBackground(void); //
    void __fastcall SetInitBackground(int iBkg); //
    void __fastcall SetPause(bool);
    void __fastcall CheckGameStatus(void);
    void __fastcall RefreshDisplay(void);
    bool __fastcall TestKeyDown(int &iKey);
    void __fastcall DrawTetris(TDDrawDisplay *lpDisplay, TBaseTetris *lpTetris, int x0, int y0, bool bPlaySingle);
    void __fastcall DrawIncoming(TDDrawDisplay *lpDisplay, TBaseTetris *lpTetris, int x0, int y0);

    void LoadParams(void);
    void SaveParams(void);
    void GetPlayerName(char *lpName);
    void ShowHighScores(void);

public:		// User declarations
    __fastcall TFormTetris(TComponent* Owner);
    __fastcall ~TFormTetris();
    __property int InitSpeed = { read = GetInitSpeed, write = SetInitSpeed };
    __property int InitBackground = { read = GetInitBackground, write = SetInitBackground };//
protected:
    void __fastcall WndProc(Messages::TMessage &Message);
};
//---------------------------------------------------------------------------
extern PACKAGE TFormTetris *FormTetris;
//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

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