📄 snake.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 + -