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

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

?? gameproc.h

?? 2D即時戰略游戲VC源碼
?? H
字號:
/*==========================================================================
 *
 *  Copyright (C) 1995-1996 Microsoft Corporation. All Rights Reserved.
 *
 *  File:       gameproc.h
 *  Content:    game processing info. include file
 *
 *
 ***************************************************************************/
#define IDIRECTPLAY2_OR_GREATER
#include <ddraw.h>
#include <dplay.h>
#include <dsound.h>
#include "sfx.h"
#include "duel.h"

// align on single byte boundaries
// this is a stop-gap measure until the structures can be re-arranged.
#pragma pack(1)

#define     MAX_SHIP_X     (MAX_SCREEN_X - 32)
#define     MAX_SHIP_Y     (MAX_SCREEN_Y - 32)
#define     MAX_SHIP_FRAME 40
#define     MAX_BULLET_X    (MAX_SCREEN_X - 3)
#define     MAX_BULLET_Y    (MAX_SCREEN_Y - 3)
#define     MAX_BULLET_FRAME 400

#define     NUM_SHIP_TYPES 4

#define     DEF_SHOW_DELAY     (2000)
#define     MAX_BUFFER_SIZE    256

#define     UPDATE_INTERVAL     40      // interval between position updates in milliseconds (25 FPS)
#define     SYNC_INTERVAL       1000    // synchronize once every second
#define     HIDE_TIMEOUT        5000    // time for which a ship is disabled after a hit

/*
 * keyboard commands
 */

#define KEY_STOP        0x00000001l
#define KEY_DOWN        0x00000002l
#define KEY_LEFT        0x00000004l
#define KEY_RIGHT       0x00000008l
#define KEY_UP          0x00000010l
#define KEY_FIRE        0x00000020l
#define KEY_ENGINEOFF   0x00000040l

/*
 * Offsets for the bullet bitmap
 */

#define     BULLET_X    304
#define     BULLET_Y    0

typedef struct _frag
{
    double      dPosX;
    double      dPosY;
    LPDIRECTDRAWSURFACE surf;
    RECT        src;
    double      dVelX;
    double      dVelY;
    BOOL        valid;
} FRAG, *LPFRAG;

/*
 * structures
 */

typedef struct _SHIP
{
    double              dPosX, dPosY;               // ship x and y position
    double              dBulletPosX, dBulletPosY;   // bullet x and y position
    DWORD               dwBulletFrame;              // bullet frame
    char                cFrame;                     // current ship frame
    BYTE                byType;                     // ship type 
    BOOL                bEnable;                    // is this ship active?
    BOOL                bBulletEnable;              // Is there an active bullet?

    double              dVelX, dVelY;               // ship x and y velocity (pixels/millisecond)
    double              dBulletVelX, dBulletVelY;   // bullet x and y velocity (pixels/millisecond)
    DWORD               dwScore;                    // current score
    DWORD               dwLastTick;                 // most recent time stamp
    BOOL                bIgnore;                    // flag used to synchronize ship explosions
    int                 iCountDown;                 // enable time-out            
    DWORD               dwFrameCount;               // number of frames since beginning of time
    /* DSOUND members */
    LPDIRECTSOUNDBUFFER   lpDirectSoundBuffer  [MAX_SOUNDS]; // SoundBuffer interface
    LPDIRECTSOUND3DBUFFER lpDirectSound3DBuffer[MAX_SOUNDS]; // 3D interface (to same buffer)  
    DWORD                 dwKeys;                            // the keyboard state
    BOOL                  bEngineRunning;                    // These BOOLs keep track of the ship's
    BOOL                  bMoving;                           //   last condition so we can play sounds
    BOOL                  bBounced;                          //   when they change
    BOOL                  bBlockHit;
    BOOL                  bDeath;
    BOOL                  bFiring;
    /* DSOUND members */

} SHIP, *LPSHIP;

typedef struct _BLOCKS
{
    BYTE        bits[30][5];
} BLOCKS, *LPBLOCKS;

//----------------------------------------------------------
// communication packet structures
//----------------------------------------------------------
#define MSG_HOST        0x11    // message containing field layout, sent by host
#define MSG_BLOCKHIT    0x22    // block hit message
#define MSG_SHIPHIT     0x33    // ship hit message
#define MSG_ADDBLOCK    0x44    // add block message
#define MSG_CONTROL     0x55    // game keys message
#define MSG_SYNC        0x66    // synchronization message containing the rendezvous location

typedef struct _GENERICMSG
{
    BYTE        byType;
} GENERICMSG, *LPGENERICMSG;

typedef struct _HOSTMSG
{
    BYTE        byType;
    BLOCKS      Blocks;
} HOSTMSG, *LPHOSTMSG;

typedef struct _BLOCKHITMSG
{
    BYTE        byType;
    BYTE        byRow;
    BYTE        byCol;
    BYTE        byMask;
} BLOCKHITMSG, *LPBLOCKHITMSG;

typedef struct _SHIPHITMSG
{
    BYTE        byType;
    DPID        Id;
} SHIPHITMSG, *LPSHIPHITMSG;

typedef struct _ADDBLOCKMSG
{
    BYTE        byType;
    BYTE        byX;
    BYTE        byY;
} ADDBLOCKMSG, *LPADDBLOCKMSG;

typedef struct _CONTROLMSG
{
    BYTE        byType;
    BYTE        byState;
} CONTROLMSG, *LPCONTROLMSG;

typedef struct _SYNCMSG
{
    BYTE        byType;
    BYTE        byShipType;     // this is needed only when sends are unreliable
    char        cFrame;
    double      dPosX;
    double      dPosY;
} SYNCMSG, *LPSYNCMSG;

/*
 * Prototypes
 */
void    LaunchGame(void);
void    ExitGame(void);
HRESULT InitOurShip(void);

HRESULT InitLocalSoundData(void);
void InitPlayerLocalSoundData(LPSHIP lpShip);
BOOL WINAPI SetPlayerLocalSoundDataCB(DPID dpId, DWORD dwPlayerType, LPCDPNAME lpName, 
                                      DWORD dwFlags, LPVOID lpContext);

void ReleaseLocalData(void);
void ReleasePlayerLocalSoundData(LPSHIP lpShip);
BOOL WINAPI ReleasePlayerLocalDataCB(DPID dpId, DWORD dwPlayerType, LPCDPNAME lpName,
                                     DWORD dwFlags, LPVOID lpContext);

void    UpdateState(LPSHIP lpShip, DWORD dwControls);
void    SendSync(LPSHIP lpShip);
void    UpdateDisplayStatus(LPSHIP lpShip);
void    UpdatePosition( DPID dpId, LPSHIP ship );
BOOL    IsHit( int x, int y );
void    InitField(void);
BOOL    setBlock( int x, int y );
void    AddFrag(LPSHIP lpShip, int offX, int offY);
void    UpdateFragment(int i);
void    DestroyShip( LPSHIP lpShip);
void    DestroyGame( void );
BOOL    UpdateFrame( void );

void    ProcessSoundFlags(LPSHIP lpShip);
BOOL WINAPI RenderPlayerCB(DPID dpId, DWORD dwPlayerType, LPCDPNAME lpName, 
                         DWORD dwFlags, LPVOID lpContext);
BOOL    DrawScreen( void );
BOOL    DrawScore( void );
void    DrawShip( LPSHIP lpShip );
void    DrawBlock( int x, int y );
void    DrawBullet( LPSHIP lpShip );
void    DrawFragments( void );
void    DisplayFrameRate( void );

void    GetConnection(void);
HRESULT ReceiveMessages( void );
void    DoSystemMessage( LPDPMSG_GENERIC lpMsg, DWORD dwMsgSize, DPID idFrom, DPID idTo );
void    DoApplicationMessage( LPGENERICMSG lpMsg, DWORD dwMsgSize, DPID idFrom, DPID idTo );
void    SendGameMessage( LPGENERICMSG lpMsg, DPID idTo );
void    CleanupComm(void);


// restore default alignment
#pragma pack()

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费国产在线观看| 日韩三级在线观看| 国产精品乱码一区二区三区软件| 色一情一乱一乱一91av| 粉嫩嫩av羞羞动漫久久久| 狠狠色狠狠色综合系列| 亚洲成年人影院| 亚洲美女精品一区| 亚洲午夜激情av| 视频一区二区欧美| 国产精品一二三四| a亚洲天堂av| 在线观看亚洲精品视频| 欧美欧美欧美欧美首页| 欧洲国内综合视频| 日韩精品一二三区| 日韩一区二区电影在线| 国产一区二区三区在线观看精品| 不卡的电影网站| 日韩精品一区二区三区蜜臀| 国产精品久久看| 亚洲天堂免费看| 免费成人结看片| 一本久道久久综合中文字幕| 亚洲一卡二卡三卡四卡| 精品在线视频一区| 欧美中文字幕一区| 麻豆一区二区99久久久久| 国产精品一二三在| 玉米视频成人免费看| 粉嫩绯色av一区二区在线观看| 国产精品系列在线| 欧美日韩小视频| 国产精品久久精品日日| 色视频一区二区| 国产一区二区三区免费看| 中文字幕佐山爱一区二区免费| 欧美日韩视频不卡| 国产91在线|亚洲| 欧美aaa在线| 亚洲一区二区高清| 国产精品三级在线观看| 日韩精品一区二区在线观看| 一本色道久久综合狠狠躁的推荐| 蜜桃视频一区二区三区 | 亚洲成人一区在线| 国产精品免费久久久久| 精品少妇一区二区三区日产乱码| 一区二区三区在线免费播放| 91精彩视频在线观看| 亚洲18女电影在线观看| 一区二区三区免费网站| 国产精品色在线| 中文在线资源观看网站视频免费不卡 | 亚洲一区二区3| 一区二区成人在线| 一区二区三区在线观看视频| 中文字幕制服丝袜一区二区三区| 国产精品久久午夜| 亚洲猫色日本管| 亚洲国产视频直播| 青青草成人在线观看| 久久99热99| 成人免费在线视频| 欧美顶级少妇做爰| 国产成人在线看| 日韩av中文字幕一区二区| 国产午夜精品久久久久久免费视| jizzjizzjizz欧美| 91精品福利视频| 精品理论电影在线观看| 国产精品毛片久久久久久久| 国产精品欧美一区喷水| 亚洲免费色视频| 久久国产精品99久久久久久老狼 | www.99精品| 欧美三级电影精品| 国产人久久人人人人爽| 欧美日韩不卡一区| 欧美成人精品高清在线播放| 日本一区二区三区四区 | 久久久久久99久久久精品网站| 欧美系列亚洲系列| 99久久精品国产导航| www.欧美.com| 国产日韩欧美高清| 亚洲一区二区在线观看视频| 天天综合色天天| 肉丝袜脚交视频一区二区| 91蜜桃在线观看| 久久久久国产免费免费 | 麻豆精品一区二区| 91福利国产精品| 18成人在线视频| eeuss影院一区二区三区| 欧美videossexotv100| 五月婷婷综合在线| 在线观看国产91| 亚洲人妖av一区二区| 国产一区二区三区日韩| 久久伊99综合婷婷久久伊| 久久久综合精品| 极品少妇xxxx精品少妇偷拍 | 韩国女主播一区| 51精品国自产在线| 国产日韩欧美a| 风间由美一区二区三区在线观看 | 色综合激情五月| 亚洲乱码精品一二三四区日韩在线| 久久99国产精品麻豆| 26uuu另类欧美| youjizz久久| 亚洲一二三区不卡| 日本久久电影网| 日韩精品免费视频人成| 精品少妇一区二区三区在线视频| 国产一区欧美一区| 国产亚洲精品超碰| 欧美影院一区二区三区| 久久 天天综合| 国产精品美女久久久久久2018| 国产成人免费视频精品含羞草妖精| 国产日韩欧美麻豆| 欧美日韩成人综合| 国产精品自拍av| 一区二区三区日本| 国产亚洲欧洲997久久综合| 欧美综合亚洲图片综合区| 麻豆精品一区二区| 亚洲综合男人的天堂| 亚洲国产精品黑人久久久| 欧美一区二区三区视频免费播放| 亚洲美女视频在线观看| 91精品国产一区二区三区| 成人黄色电影在线| 国产做a爰片久久毛片| 午夜精品福利久久久| 中文字幕欧美日韩一区| 日韩欧美国产一区在线观看| 色婷婷亚洲综合| 99re66热这里只有精品3直播 | 欧美一区二区三区男人的天堂| 99精品热视频| 成人激情电影免费在线观看| 国内精品视频666| 精品一二三四区| 麻豆一区二区三| 美女网站色91| 国产一区二区三区蝌蚪| 国精产品一区一区三区mba桃花| 毛片基地黄久久久久久天堂| 日本亚洲天堂网| 精品亚洲国产成人av制服丝袜| 国产综合色在线| 成人午夜电影小说| 亚洲精品五月天| 亚洲色图都市小说| 亚洲视频图片小说| 亚洲综合无码一区二区| 亚洲综合区在线| 亚洲h在线观看| 蜜桃精品在线观看| 国产激情视频一区二区三区欧美 | 亚洲成人免费在线观看| 一区二区在线免费| 亚洲h在线观看| 国产aⅴ综合色| 一区二区三区在线观看网站| 免播放器亚洲一区| 不卡视频一二三| 精品久久久久久久久久久久包黑料 | 在线播放中文字幕一区| 2021国产精品久久精品| 国产精品无码永久免费888| 亚洲欧美偷拍三级| 麻豆精品在线视频| 在线看一区二区| ww久久中文字幕| 日欧美一区二区| 欧美日韩中文精品| 国产精品久久影院| 国产一区二区三区日韩| 久久久.com| 国产综合色在线| 久久夜色精品国产噜噜av| 一区二区三区在线高清| 成人免费黄色大片| 国产欧美日韩中文久久| 久久国产综合精品| 欧洲中文字幕精品| 亚洲欧洲成人精品av97| 国产999精品久久久久久绿帽| 精品成人私密视频| 欧美美女一区二区| 国产精品第一页第二页第三页| 成人97人人超碰人人99| 国产精品不卡一区二区三区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 精品视频一区二区三区免费| 午夜视频在线观看一区|