贪食蛇MFC

第一次用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中把游戏区开始时就画满了,这样就能看到清理函数的轨迹,才发现的,很有用!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值