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

📄 snake.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 H
字号:
//$Log: snake.h,v $
//Revision 1.6  2008/01/07 08:23:39  Chenzushang
//修改左右按键相反问题
//修改对话框不能弹出问题
//
//Revision 1.5  2007/12/26 13:39:15  Chenzushang
//将SNAKE_KEY_EXIT_PRESS更改为KE_EXIT_RELEASE
//
//Revision 1.4  2007/11/03 01:52:01  Chenzushang
//修改了部分的游戏按键
//
//Revision 1.3  2007/10/26 03:53:02  Chenzushang
//添加CVS版本自动注释脚本
//
#ifndef _snake_h
#define _snake_h
/********************************************************************************
    定义游戏基本块的大小
********************************************************************************
*/
#include "..\..\..\System\Include\include.h"
#define SNAKEGAME_CELL_XSIZE    12
#define SNAKEGAME_CELL_YSIZE    12

#define SNAKEGAME_BOARD_XPOS    10
#define SNAKEGAME_BOARD_YPOS    30

#define SNAKEGAME_BOARD_XSIZE    240
#define SNAKEGAME_BOARD_YSIZE    180

#define SNAKEGAME_WINDOW_XSIZE    320
#define SNAKEGAME_WINDOW_YSIZE    240

#define SNAKEGAME_DISP_X 260
#define SNAKEGAME_DISP_Y 50
#define SNAKEGAME_DISP_H 16


#define SNAKEGAME_DISP_STATE_X SNAKEGAME_DISP_X
#define SNAKEGAME_DISP_STATE_Y (SNAKEGAME_DISP_Y-SNAKEGAME_DISP_H)

#define SNAKEGAME_DISP_THROUGH_X  SNAKEGAME_DISP_X
#define SNAKEGAME_DISP_THROUGH_Y  SNAKEGAME_DISP_Y

#define SNAKEGAME_DISP_LEVEL_X SNAKEGAME_DISP_X
#define SNAKEGAME_DISP_LEVEL_Y (SNAKEGAME_DISP_Y+SNAKEGAME_DISP_H)

#define SNAKEGAME_DISP_LENGTH_X SNAKEGAME_DISP_X
#define SNAKEGAME_DISP_LENGTH_Y (SNAKEGAME_DISP_Y+SNAKEGAME_DISP_H*3)

#define SNAKEGAME_DISP_SCORE_X SNAKEGAME_DISP_X
#define SNAKEGAME_DISP_SCORE_Y (SNAKEGAME_DISP_Y+SNAKEGAME_DISP_H*5)

#define SNAKEGAME_DISP_LIFE_X SNAKEGAME_DISP_X
#define SNAKEGAME_DISP_LIFE_Y (SNAKEGAME_DISP_Y+SNAKEGAME_DISP_H*7)

//#define SNAKEGAME_DISP_STATE_X SNAKEGAME_DISP_X
//#define SNAKEGAME_DISP_STATE_Y (SNAKEGAME_DISP_Y+SNAKEGAME_DISP_H*9)





#define SNAKEGAME_STOP           (1<<1)
#define SNAKEGAME_RUN            (1<<2)
#define SNAKEGAME_PAUSE        (1<<3)

/*
********************************************************************************
    定义游戏区域大小
********************************************************************************
*/
#define SNAKEGAME_SCOPE_ROW 20
#define SNAKEGAME_SCOPE_COL 15
#define SNAKEGAME_SNAKE_MAXLEN 25
#define SNAKEGAME_DIRECTION_UP 1
#define SNAKEGAME_DIRECTION_DOWN 1<<1
#define SNAKEGAME_DIRECTION_LEFT  1<<2
#define SNAKEGAME_DIRECTION_RIGHT  1<<3

#define SNAKEGAME_CELLTYPE_NULL 1
#define SNAKEGAME_CELLTYPE_FOOD 1<<1
#define SNAKEGAME_CELLTYPE_STONE 1<<2
#define SNAKEGAME_CELLTYPE_LIFE  1<<3
#define SNAKEGAME_CELLTYPE_DIED 1<<4
#define SNAKEGAME_CELLTYPE_AWARD 1<<5
#define SNAKEGAME_CELLTYPE_UPSPEED 1<<6
#define SNAKEGAME_CELLTYPE_DOWNSPEED 1<<7


#define SNAKEGAME_MAX_LEVEL 10
#define SNAKEGAME_MAX_LIFE 5


#define SNAKE_KEY_MENU_PRESS          KE_MENU_RELEASE// KE_MENU_PRESS//KE_RETURN_PRESS
#define SNAKE_KEY_DOWN_PRESS          KE_DN_PRESS //KE_MENU_PRESS
#define SNAKE_KEY_UP_PRESS              KE_UP_PRESS// KE_PLAY_PRESS//darnshong
#define SNAKE_KEY_LEFT_PRESS           KE_NEXT_PRESS
#define SNAKE_KEY_RIGHT_PRESS         KE_PREV_PRESS
#define SNAKE_KEY_EXIT_PRESS         KE_RETURN_RELEASE
#define SNAKE_KEY_SHIFT_PRESS       KE_SHIFT_PRESS
#define SNAKE_KEY_PLAY_PRESS   KE_PLAY_PRESS
//#define SNAKE_KEY_DROP_OFF_PRESS  (KE_LONGP_RELEASE+1)
//#define SNAKE_KEY_INVALIDE  (0xffff)

#define SNAKETIMERDELAY 50 //(*75ms)
#define SNAKELEFT 3
#define SNAKERIGHT 4
#define SNAKEUP 2
#define SNAKEDOWN 1

typedef struct tagSnakePoint
{
    INT8 x;
    INT8 y;
}SnakePoint;

UINT32 SnakeOnDestroy(WINDOW* win , WMPARAM wParam, WLPARAM lParam);
UINT32 SnakeOnPaint(WINDOW* win , WMPARAM wParam, WLPARAM lParam);
UINT32 SnakeOnCreat(WINDOW* win , WMPARAM wParam, WLPARAM lParam);
UINT32 SnakeOnTimer(WINDOW* win , WMPARAM wParam, WLPARAM lParam);
UINT32 SnakeOnKey(WINDOW* win , WMPARAM wParam, WLPARAM lParam);

void SnakeDrawBoard(void);
void SnakeDrawDispSectionTitle(void);
void SnakeShowLevel(void);
void SnakeShowSnakeLen(void);
void SnakeShowSnakeLife(void);
void SnakeGameInit(void);
void SnakeShowScore(void);
void SnakeMoveSnake(void);
void SnakeAddSnakeLen(int indexX, int indexY);
void  SnakeClearArray(void);
void SnakeSetStone(int ix, int iy);
void SnakeSetLevel_00(void);
void SnakeSetLevel_01(void);
void SnakeSetLevel_02(void);
void SnakeSetLevel_03(void);
void SnakeSetLevel_04(void);
void SnakeSetLevel_05(void);
void SnakeSetLevel_06(void);
void SnakeSetLevel_07(void);
void SnakeSetLevel_08(void);
void SnakeSetLevel_09(void);
void SnakeSetAnyLevel(int nLevel);
void SnakeDoNextLevel(void);
void SnakeReDoLevel(void);
UINT8 SnakeCheckCanEat(void);
UINT8 SnakeCheckDie(void);
void SnakeDrawFood(int indexX, int indexY, int nFoodType);
void SnakeCreateNewFood(int nFoodType);
void SnakeDrawStone(int indexX, int indexY);
void SnakeDrawBlock(int ix, int iy, BOOL bErase, BOOL bDie);
void SnakeDrawGame(void);
void SnakeTimerWork(WINDOW* win);
void SnakeCleanWindow(void);
UINT32 SnakeShowDialog(WINDOW* win, INT16U captionID);
void SnakeDrawGameState(void);
void SnakeDrawGameState(void);


INT32U SnakeOnCommand(WINDOW* win, WMPARAM wParam, WLPARAM lParam);
UINT32 GameStartSnake(WINDOW* win ,  char * filePath , void* param);
#endif

⌨️ 快捷键说明

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