第一次用MFC写程序,写的不好
变量声明:
基本实现源码:
想法很简单,用一个数组当地图,初始化为0;当走过时标记为1,食物标记为2
走过的路程用一个Array来存;蛇向前走一格蛇头就标1,蛇尾就判断(地图标志是1就清除,是2就把他刷新为蛇体)
当然还有升级,8个食物为1级
实现:
蛇走过的路程要用一个容器给装起来,我用了Array,当然用队列更好
声明:CArray <CPoint,CPoint&> RoteLine;
当然要加上头文件,#include <afxtempl.h>
这样编译一下很可能会报错 fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 1794)
就算现在不报,以后也很有可能会报,这是编译器问题,带vs2005就基本不会了
我就百度了下 发现 http://www.cnblogs.com/xinjun/archive/2010/07/16/1778637.html 写的不错
分析下我是要删除什么什么,我去找没找到
就把 工程下的 Debug下删除的只剩下 *.bsc 和那个 *.exe;
奇迹出现了,能成功编译,并没有再报过 C1001
在清理走过的轨迹时,用
InvalidateRect(CRect(Position_tial.x *30,Position_tial.y *30,Position_tial.x *30+30,Position_tial.y *30+30),true);
CRect的后两个参数不是长度,而是相对于客户区的坐标!!,搞的我纠结了好久,看地图标志没错,但视图就是不对
我是在OnStart中把游戏区开始时就画满了,这样就能看到清理函数的轨迹,才发现的,很有用!!!