背景与小鸟–FlappyBird游戏开发教程之二

最终效果:

素材下载:点击下载

EXE效果下载:点击下载

先上代码:

#include <SFML/Graphics.hpp>
#include <windows.h>
#include<iostream>
#include<string>
#include <stdlib.h>
using namespace std;
double birdX = 50;
double birdY = 100;
#pragma   comment(linker,   "/subsystem:\"windows\"   /entry:\"mainCRTStartup\""   )
int main(int argc, char* argv[])
{sf::RenderWindow window(sf::VideoMode(288,512), "FlappyBird");sf::Texture backgroundtexture;if(!backgroundtexture.loadFromFile("assets/background.png")){}sf::Texture birdtexture;if (!birdtexture.loadFromFile("assets/0.png")){}sf::Sprite backgroundsprite;backgroundsprite.setTexture(backgroundtexture);sf::Sprite birdsprite;birdsprite.setTexture(birdtexture);while (window.isOpen()){sf::Event event;while (window.pollEvent(event)){if (event.type == sf::Event::Closed)window.close();}birdsprite.setPosition(sf::Vector2f(birdX, birdY));Sleep(20);window.clear();window.draw(backgroundsprite);window.draw(birdsprite);window.display();}return 0;
}

我们来解释一下代码:
先导入了相关头文件;
然后定义了写变量:birdX 和 birdY 就是小鸟的X坐标和Y坐标;

#pragma   comment(linker,   "/subsystem:\"windows\"   /entry:\"mainCRTStartup\""  )

来清除控制台(那个黑框框);

sf::RenderWindow window(sf::VideoMode(宽,长), 题目); 

来创建一个窗口;

    sf::Texture backgroundtexture;if(!backgroundtexture.loadFromFile("assets/background.png")){}sf::Texture birdtexture;if (!birdtexture.loadFromFile("assets/0.png")){}

以上代码是创建一个材质对象:backgroundtexture
如果backgroundtexture没有加载素材文件,那就加载图片。小鸟的texture代码也一样;

sf::Sprite backgroundsprite;
backgroundsprite.setTexture(backgroundtexture);
sf::Sprite birdsprite;
birdsprite.setTexture(birdtexture);

这些代码的意思是创建SPRITE(精灵)对象,并让它加载材质对象;

while (window.isOpen()){sf::Event event;while (window.pollEvent(event)){if (event.type == sf::Event::Closed)window.close();}Sleep(20);window.clear();window.draw(backgroundsprite);window.draw(birdsprite);window.display();}return 0;
}

这段代码的意思是如果窗口是打开的,就监视事件,如果监视到关闭事件那就关闭窗口。(如果不加,那你的窗口就永远关不掉);
然后延时20毫秒,不然太快,之后让小鸟动时,你啥也看不到;

然后用window.clear();代码清屏;

window.draw(backgroundsprite);
window.draw(birdsprite);

用于代码将两个精灵画到屏幕上

window.display();代码刷新屏幕;

你是不是已经看到在天山飞的小鸟了?赶紧回目录吧!


如果有人评论的话就继续写,没有的话就算了。


背景与小鸟--FlappyBird游戏开发教程之二相关推荐

  1. ​Unity 2D游戏开发教程之2D游戏的运行效果

    ​Unity 2D游戏开发教程之2D游戏的运行效果 2D游戏的运行效果 本章前前后后使用了很多节的篇幅,到底实现了怎样的一个游戏运行效果呢?或者说,游戏中的精灵会不会如我们所想的那样运行呢?关于这些疑 ...

  2. Unity 2D游戏开发教程之2D游戏的运行效果

    Unity 2D游戏开发教程之2D游戏的运行效果 2D游戏的运行效果 本章前前后后使用了很多节的篇幅,到底实现了怎样的一个游戏运行效果呢?或者说,游戏中的精灵会不会如我们所想的那样运行呢?关于这些疑问 ...

  3. NVIDIA Jetson TX1 系列开发教程之二:刷机与开发前准备

    NVIDIA Jetson TX1 系列开发教程之二:刷机与开发前准备 转载请注明作者和出处:http://blog.csdn.net/u011475210 嵌入式平台:NVIDIA Jetson T ...

  4. SAP UI5 应用开发教程之二:SAP UI5 的引导过程(Bootstrap)

    本教程的前一篇 Hello world 的文章,我们只是了解了一个最基本的 index.html 页面的开发方式,尚未真正接触到 SAP UI5. 从本文开始,我们将会在前一步骤的 index.htm ...

  5. iOS 9应用开发教程之ios9中实现按钮的响应

    iOS 9应用开发教程之ios9中实现按钮的响应 IOS9实现按钮的响应 按钮主要是实现用户交互的,即实现响应.按钮实现响应的方式可以根据添加按钮的不同分为两种:一种是编辑界面添加按钮实现的响应:另一 ...

  6. iOS 9应用开发教程之ios9的视图

    iOS 9应用开发教程之ios9的视图 了解IOS9的视图 在iPhone或者iPad中,用户看到的和摸到的都是视图.视图是用户界面的重要组成元素.本节将主要讲解ios9视图的添加.删除以及位置和大小 ...

  7. 运动控制卡的函数库与Linux,运动控制卡应用开发教程之ROS(下)

    在正式学习之前,我们先了解一下正运动技术的运动控制卡ECI2418和ECI2618.这两款产品分别是4轴,6轴运动控制卡. ECI2418支持4轴脉冲输入与编码器反馈,板载24点输入,16点输出,2A ...

  8. Wear OS手表应用开发教程之-Activity使用微光模式-AmbientModeSupport

    本文目录 点击直达 Wear OS手表应用开发系列教程 点击直达 本文标签 `路过的年轻人啊,你是要用左手点个赞呢,还是要右手点个关注呢` 前言: 使用方法: 结语: 最后我还有一句话要说: 人生下来 ...

  9. macOS SwiftUI开发教程之Scenekit 3D飞机 (项目含源码)

    实战需求 macOS SwiftUI开发教程之Scenekit 3D入门 本文价值与收获 看完本文后,您将能够作出下面的界面 看完本文您将掌握的技能 SCNScene(named: "art ...

最新文章

  1. 一种新的高级抖动分离解析方法
  2. ITK:通过包装填充图像
  3. Item9:总是要改写toString
  4. 区块链基础语言(三)——Go语言开发工具
  5. 【转】SharePoint 2010 Search Service -- 管理中心配置
  6. springcloud 微服务鉴权_Java微服务框架spring cloud
  7. pidgin-qq可以使用QQ2012协议了
  8. 【报告分享】中国电信5G行业场景案例集.pdf(附下载链接)
  9. 【makefile系列】全平台编译脚本makefile
  10. 计蒜客2018 ICPC SouthEastern European E. Fishermen
  11. ffmpeg 官方文档 上篇 (译)
  12. 使用CSS3开启GPU硬件加速提升网站动画渲染性能
  13. 520送男朋友什么礼物比较好、520给男朋友的实用性礼物
  14. MySQL 5.7.37数据库下载安装教程(Windows无需安装版)
  15. 什么是EarlyStopping?
  16. 明日召开 | Pulsar Summit Asia 2021 本周末线上精彩呈现
  17. 《数据结构课程实践》_01_学生成绩档案管理系统_准备工作
  18. 人的心情就像四季一样!
  19. date命令时间戳和时间之间的转换
  20. 【转】常用原型图设计工具

热门文章

  1. 数商云B2B商城系统订货功能为新能源汽车行业赋能,打造高质量发展生态圈
  2. 电子计算机厂房火灾危险性,厂房建筑设计防火规范(57页)-原创力文档
  3. shell wc (统计字符数量)的基本使用
  4. 将数字转换成大写金额
  5. MW7299/PD+HUB2.0集成芯片上行支持PD3.0协议下行HUB支持BC1.2协议QFN32封装
  6. Wi-Fi 7全新升级,小米蓄势待发!
  7. 无交互作用的正交设计
  8. PPT进阶篇---如何让你的声音好听
  9. MYSQL docker镜像简单安装数据库
  10. Https比Http速度慢具体分析