你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
首页
热门
推荐
精选
登录
|
注册
C++编写简单的俄罗斯方块游戏
立即下载
用AI写一个
金额:
2
元
支付方式:
友情提醒:源码购买后不支持退换货
立即支付
我要免费下载
发布时间:2018-12-03
32人
|
浏览:12488次
|
收藏
|
分享
技术:C++、SFML框架
运行环境:VS2015、SFML 包
概述
用C++的SFML库开发的俄罗斯方块小游戏
详细
# C++编写简单的俄罗斯方块游戏 使用C++编写一个简单的俄罗斯方块游戏。 ## 1 环境要求 使用C++图形库SFML,官网下载地址为https://www.sfml-dev.org/download.php 1. 解压安装 假设安装路径为:C:\Program Files\SFML 2. VS配置 - 新建项目以后,选中项目右击选中属性 - 在左上方的平台选择:X64 - 左边的配置属性选择:VC++ 目录,在右边方框可以看到,可执行目录、包含目录等等 - **可执行目录**中添加 C:\Program Files\SFML\SFML-2.4.2\bin(添加的路径已本教程 SFML 的解压路径相应来写的,看官自己的路径对照着来就行了) - **包含目录**添加:C:\Program Files\SFML\SFML-2.4.2\include - **库目录**添加:C:\Program Files\SFML\SFML-2.4.2\lib - 选择连接器–输入–附加依赖项,添加: sfml-graphics-d.lib sfml-window-d.lib sfml-audio-d.lib sfml-network-d.lib ## 2 项目目录结构 就一个`.cpp` 文件,同目录下有两个文件夹:用来描绘背景的图片素材的`images` 和 音乐素材的 `audio`。 ## 3. 游戏逻辑结构 ![](https://markdownfoto-1252952266.cos.ap-guangzhou.myqcloud.com/demo%E5%A4%A7%E5%B8%88/%E4%BF%84%E7%BD%97%E6%96%AF%E6%96%B9%E5%9D%97%E7%BB%93%E6%9E%84%E5%9B%BE.svg) 整个代码分为简单的5个模块:**计时器**、**检查**、**转换**、**消除**、**新块生成** - 计时器 游戏运行核心、设置 delay 值后,计时器每到delay值,处理游戏的检查、消除和新块生成逻辑 ```c++ //// Timer 逻辑 while(window.isOpen()) // SFML 窗口 { timer += time; // time是上次计时到本次的时间 if(timer>delay){ // check // transpose // new block timer = 0; } } ``` - 检查 检查主要检查两样东西:1是检查是否当前块落地,2是检查构成消除条件的行。 **1.检查是否落地** 砖块描述存储在 `int field[20][10]` 中,每次有砖块落地,都会将该砖块的对应的位置赋值,后续砖块在下落过程中遇到有值的场地,则停止下落。检查落地用 check 描述 ```c++ bool check() { for (int i = 0; i<4; i++) if (a[i].x<0 || a[i].x >= N || a[i].y >= M) return 0; else if (field[a[i].y][a[i].x]) return 0; return 1; }; ``` **2.检查消除行** 当满足一行的field值都不为0的时候,构成消除行,消除逻辑由 checkline 描述 ```c++ int k = M - 1; for (int i = M - 1; i>0; i--) { int count = 0; for (int j = 0; j
本实例支付的费用只是购买源码的费用,如有疑问欢迎在文末留言交流,如需作者在线代码指导、定制等,在作者开启付费服务后,可以点击“购买服务”进行实时联系,请知悉,谢谢
感谢
2
手机上随时阅读、收藏该文章 ?请扫下方二维码
相似例子推荐
评论
作者
西木野Maki
购买服务
购买服务
服务描述:
辅助运行例子;问题解答;资料分享...
服务价格:
¥30
我要联系
2
例子数量
52
帮助
2
感谢
评分详细
可运行:
4.5
分
代码质量:
4.5
分
文章描述详细:
4.5
分
代码注释:
4.5
分
综合:
4.5
分
作者例子
基于Opencv自带BP网络的车标简易识别
C++编写简单的俄罗斯方块游戏