拼图游戏 C++ 源代码【windows游戏源码】
2011-04-25 14:54
555 查看
一个简单的拼图游戏,实现了游戏的基本功能,由于时间仓促,还有很多功能没有加入,本代码允许个人随意下载、使用及修改。
编译环境: WINXP , VS2005
操作:用户可以使用鼠标和键盘来控制游戏,图像的载入和游戏难易度的调节只能从源码里面修改了。。。就是那个Game::SetLevel(int nx, int ny)函数。其中写了不少代码是用于图像块移动效果上的。
游戏思路:
数据结构,将整个所有图像块记为一个二维数组m_board[][],写了一个Board类来控制图像的移动和修改,注意边界判断。为了实现图像块的平滑移动效果,在图像块移动的时候添加一个定时器,将图像块不断的移动和现实,当移动完毕后消除定时器,Flip类是用来实现这个功能的,其中定义了移动一格的帧数、速度等信息。然后整个游戏是一个类Game,这个类的定义和设置就比较常规了,定义了图像的显示等功能,为了使图像快速不断显示,其中用到了双缓冲技术,发现效果果然不错。
算法及其他,基本上全是小算法,有一点就是游戏开始时必须将所有的图像块置乱,但是如果是随机打乱就不能保证这个游戏一定有可行解,这个问题的讨论可以参见8数码问题,这种问题的有解是需要条件的。至于如何保证这个游戏有解,我用了最笨的方法,就是进行逆操作,一开始随机对原图进行操作,循环一定次数以后的图像就是置乱的图像了,但是这种方法有一个缺陷,当图像块非常多时,比如20*20,这种方法只能置乱图像的一部分,而另一部分却和原图差不多。为了消除这个问题,对每种操作(比如向上移动)重复执行随机次,这样就基本上解决的前面的问题了。其实这个问题可以用数学方法来解决,又快又省力,但是自己对这一部分不是很了解,只能用笨方法了。
关于平滑运动 ,只要在图像变换的时候插入几帧图像就好了,利用定时器来不断显示,写这个图像滑动效果很纠结,细节的问题考虑的比较多,一个好的数据结构的支持是必不可少的。
download Source Code: PingTu.rar
游戏截图:
编译环境: WINXP , VS2005
操作:用户可以使用鼠标和键盘来控制游戏,图像的载入和游戏难易度的调节只能从源码里面修改了。。。就是那个Game::SetLevel(int nx, int ny)函数。其中写了不少代码是用于图像块移动效果上的。
游戏思路:
数据结构,将整个所有图像块记为一个二维数组m_board[][],写了一个Board类来控制图像的移动和修改,注意边界判断。为了实现图像块的平滑移动效果,在图像块移动的时候添加一个定时器,将图像块不断的移动和现实,当移动完毕后消除定时器,Flip类是用来实现这个功能的,其中定义了移动一格的帧数、速度等信息。然后整个游戏是一个类Game,这个类的定义和设置就比较常规了,定义了图像的显示等功能,为了使图像快速不断显示,其中用到了双缓冲技术,发现效果果然不错。
算法及其他,基本上全是小算法,有一点就是游戏开始时必须将所有的图像块置乱,但是如果是随机打乱就不能保证这个游戏一定有可行解,这个问题的讨论可以参见8数码问题,这种问题的有解是需要条件的。至于如何保证这个游戏有解,我用了最笨的方法,就是进行逆操作,一开始随机对原图进行操作,循环一定次数以后的图像就是置乱的图像了,但是这种方法有一个缺陷,当图像块非常多时,比如20*20,这种方法只能置乱图像的一部分,而另一部分却和原图差不多。为了消除这个问题,对每种操作(比如向上移动)重复执行随机次,这样就基本上解决的前面的问题了。其实这个问题可以用数学方法来解决,又快又省力,但是自己对这一部分不是很了解,只能用笨方法了。
关于平滑运动 ,只要在图像变换的时候插入几帧图像就好了,利用定时器来不断显示,写这个图像滑动效果很纠结,细节的问题考虑的比较多,一个好的数据结构的支持是必不可少的。
download Source Code: PingTu.rar
游戏截图:
相关文章推荐
- 益智贪吃蛇 GreedySnake-Puzzled【windows C++游戏源码】
- 热门游戏 2048 C++ 源代码分享
- 热门游戏 2048 C++ 源代码 再版 分享
- 【源码分享】-c++界面源代码分享
- <Windows系统>使用C/C++语言控制7.1声道音量源代码
- 【VC++游戏开发】用C++来架构一个适合windows游戏编程的框架——取名为BCF
- 热门游戏 2048 C++ 源代码分享
- [游戏源码] Unity4.3底层引擎C++源码+完整文档
- Windows下使用Vim和CSCOPE搭建C/C++ IDE和源代码浏览器的步骤
- c++实现游戏开发中常用的对象池(含源码)
- Windows下使用Vim和CSCOPE搭建C/C++ IDE和源代码浏览器的步骤
- windows平台下gsoap生成C++客户端源码
- C、C++、VC、MFC网页自动注册、登陆、发帖、留言 QQ注册、QQ申请器源码、源代码
- 【源码分享】-c++界面源代码分享
- 2D 太空打飞机游戏 Bitfighter源码下载(C/C++ Lua)
- [游戏源码]Doom3公布源代码下载
- Visual C++ Windows Shell Programming源码中的错误和遗漏
- windows平台下gsoap生成C++客户端源码
- Windows游戏设计(一)- 拼图游戏 - 使用Win32 SDK
- 【VC++游戏开发】用C++来架构一个适合windows游戏编程的框架——取名为BCF