分类: C/C++
2008-03-12 08:50:49
class CSnake; typedef enum{UP=1,DOWN,LEFT,RIGHT,Error} Direction; typedef struct tagData{ Direction dirt; CPoint pot; } Data; typedef CList DirectionList; class CNode : public CObject { private: CPoint m_Point; Direction m_CurrentDirection;//当前的运动方向 DirectionList m_List; COLORREF m_Color; int m_nColorIndex; friend CSnake; public: CNode(); virtual ~CNode(); void SetDirection(int nx, int ny); void SetDirection(CPoint point); COLORREF GetColor(void); void SetColor(COLORREF color); void AddDirection(Data* eValue); Data* RemoveHead(void); void SetColor(int index); int GetColorIndex(void); void SetCurrentDirection(Direction dirt); Direction GetCurrentDirection(void); void Change(CPoint& point); Data* GetHead(void); };在CSnake类派生于CWnd是为了建立一个不可见的窗口,用来完成计时器的功能。这里还有一个dll,用来生成一个钩子。来完成得到键盘的操作。如果不这样作的话。游戏区(CEdit)会有光标闪动。当然钩子也不一定要用dll,因为这是一个自己程序的钩子。用它只是用来练手的。就这么多吧。很简单的。
图一
希望大家指点。 E-mail:Error_110@163.com