?? snake.h
字號:
/*++
Copyright (c) 2004-2005 AFE(Active-Free-Elegance)
Module Name:
snake.h
Abstract:
the class of Snake,including the basic-method
such as : move,born,and eat,and so on.
Author:
Weijian Luo (Arthur Luo) 15-Jun-2005
E-mail: skybluehacker@yahoo.com.cn
Revision History: 1.0
--*/
#ifndef _GREED_SNAKE_
#define _GREED_SNAKE_
#define SNAKE_MOVE 1
#define SAFE_DELETE(p) {delete (p);(p)=NULL;}
#define SAFE_DELETE_ARRAY(p) {delete[](p);(p)=NULL;}
#include <stdio.h>
//節(jié)點圖像顯示運動狀態(tài)(方向)
enum BitmapState{M_NONE,M_UP_UP,M_DOWN_DOWN,M_LEFT_LEFT,M_RIGHT_RIGHT,
M_UP_LEFT,M_UP_RIGHT,M_LEFT_UP,M_LEFT_DOWN,
M_RIGHT_UP,M_RIGHT_DOWN,M_DOWN_RIGHT,M_DOWN_LEFT};
//節(jié)點運動狀態(tài)(方向)
enum MoveState{S_NONE,S_UP,S_DOWN,S_LEFT,S_RIGHT};
//坐標(biāo)位置結(jié)構(gòu)
struct SPoint
{
int x;
int y;
};
class CSnake
{
struct Snake_Struct//定義蛇體狀態(tài)
{
MoveState head; //頭部
MoveState *body; //身體
MoveState tail; //尾部
};
private:
int m_length; //蛇的長度
Snake_Struct m_newSnake; //蛇的新態(tài)的所有節(jié)點運動狀態(tài)
Snake_Struct m_oldSnake; //蛇的原態(tài)的所有節(jié)點運動狀態(tài)
BitmapState *m_pStateArray; //蛇的所有節(jié)點顯示位圖的狀態(tài)
SPoint *m_pPos; //蛇體坐標(biāo)
private:
BitmapState GetRightState(MoveState oldDirect,MoveState newDirect);
public:
void Move(void);
void ChangeDirect(MoveState d);
void AddBody(int n=1);
void SetHeadPos(int x,int y);
BitmapState* GetStateArray(void);
SPoint* GetPos(void);
bool IsHeadTouchBody(int x,int y);
int GetLength( void );
void Initial( void );
public:
CSnake(int x_pos=0,int y_pos=0,int len=1);
~CSnake();
};
#endif //_GREED_SNAKE_
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -