记录一下自己优化了一下扫雷的过程
v2.0 图形化界面,可自定义难度,增加了标记个数显示,笑脸重新开始,计时功能。
1.背景
没过多久,她又蹦跳着过来说“我觉得…”
我:“怎么了?”
“我觉得这个游戏难度太低了”
我:“那我把参数给你改一下,再给你一份?”
“emmm…我想自己调”
我:“emmm…”
“而且也看不到自己多久通关的^b^?”
我:”那我给你优化一下吧“
“~OvO~ 好!”
…
旁边又响起了PVZ的bgm…
2.思考
在网上搜了搜,能够做出像win7以前扫雷的效果大致有两种途径:
- 基于Qt
- MFC应用
可我还有几十篇论文没看呢~~
没得时间学,该怎么办?
要不就偷个懒在v1的基础上改一改?
大胆的想法产生了!
3.优化
3.1调难度
- 思路:利用图片去模拟菜单栏
- 开敲:
选择左上角一块区域作为一个选项区域,再该区域利用drawtext函数输出”难度选择“来作为假选项。
点击到改区域时,再其下方绘制新的图片作为选项。
这样就可以模拟出一个菜单栏了。
丑嘛 。。。。不过是漂亮的不明显 RvR
根据鼠标点击区域的不同去修改对应的列数、行数以及地雷数。
3.2 笑脸重开
- 思路:一样的想法,通过获取鼠标信息来进行一系列操作,等同于之前的翻开什么的。
3.3标记个数以及计时
放到一起主要是他俩的绘制实现基本一样啦
找到的素材是一个长图上面有0-9 共10个数字,所以巧妙利用putimage()函数截取其中部分去绘制就好了。
计时功能:(应该多少都用过)
#include <time.h>
clock_t start=clock();
clock_t end=(clock()-start)/CLOCKS_PER_SEC;
3.4 遇到的问题
调整难度的时候,会出现部分图片,出现黑框仅显示部分。
解决方法:发现IMAGE这个对象,在初始化时的width以及height就定下来了,即使后面重新loadimage也不会改变。所以每次再重新load的时候需要调用Resize方法去重定义一下大小。
3.5 总结
写博客的过程中,发现原来就是这么简单的东西,还花费了我接近一天时间,说白了还是自己太弱了。
但是不去做,那会一直弱下去!越战越勇才够劲!
到这里,估计扫雷就会告一段落了。希望等以后学的更多的时候,争取做个更帅气的扫雷v3.0,那时候再写一篇(三)吧。
V2.0的成果
5.后续
她:“emmm… 我还想…"
我:“那我…”
.
. .
…
欢迎评论和指正!