背景与小鸟--FlappyBird游戏开发教程之二
来源:互联网 发布:linux如何退出终端 编辑:程序博客网 时间:2024/05/16 11:21
背景与小鸟–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();
代码刷新屏幕;
你是不是已经看到在天山飞的小鸟了?赶紧回目录吧!
阅读全文
0 0
- 背景与小鸟--FlappyBird游戏开发教程之二
- 目录---FlappyBird游戏开发教程
- 工具的选择与配置---FlappyBird游戏开发教程
- 使用Libgdx开发的FlappyBird(像素鸟、疯狂的小鸟)游戏源码
- 像素鸟 游戏开发教程 FlappyBird Game development tutorial
- Android60分钟搞定《FlappyBird》飞扬的小鸟游戏
- 【iphone游戏开发】iphone-Cocos2d游戏开发之三:精灵表的详细讲解(二)小鸟眨眼睛
- 【iphone游戏开发】iphone-Cocos2d游戏开发之三:精灵表的详细讲解(二)小鸟眨眼睛
- 【iphone游戏开发】iphone-Cocos2d游戏开发之三:精灵表的详细讲解(二)小鸟眨眼睛
- html5游戏开发-愤怒的小鸟-开源讲座(二)-跟随小鸟的镜头
- html5游戏开发-愤怒的小鸟-开源讲座(二)-跟随小鸟的镜头
- html5游戏开发-愤怒的小鸟-开源讲座(二)-跟随小鸟的镜头
- FlappyBird开发总结(三)——小鸟脚本,让小鸟煽动翅膀
- [Unity3D]Unity3D游戏开发之《愤怒的小鸟》弹弓实现
- [Unity3D]Unity3D游戏开发之《愤怒的小鸟》弹弓实现
- Unity3D游戏开发之《愤怒的小鸟》弹弓怎么实现
- GameBuilder开发游戏应用系列之60行代码实现FlappyBird
- 游戏开发教程cocos2d-x移植之二
- 定时任务Quartz和spring task
- 在O(1)时间删除链表结点(13)
- 批量修改文件名 与 批量文件字符替换
- 打卡 学习opencv
- Person Re-identification Datasets
- 背景与小鸟--FlappyBird游戏开发教程之二
- Java JAX-WS和JAX-RS webservice
- 普及练习场 贪心 国王游戏
- css开发过程中常用的水平垂直居中
- c++ forward_list 的使用
- Hbase-简介-存储API与实现
- 定形相变复合材料热性能标准测试方法及其改进
- [ 线段树 ] [ POI2014 ] BZOJ3521
- 11.1