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

java实现Flappy Bird游戏(附免费素材+代码+详细注解) 前言 我是在网上搜了下Flappy Bird,搜到一个千峰博客发的Flappy Bird写的很详细,然后试着跟着它的思路去实现,不过没有用他的设计模式,我的主要由于BackGroundView类(背景图)、Bird类、Pipe类,Main类四部分组成,他里面有些地方不完整有bug,比如让地面动起来部分,自己思考改了半天,最后复现成功,运行了出来。 一、实现效果 二、实现代码 图片素材地址:https://download.youkuaiyun.com/download/weixin_39615182/15051363 阅读详情

背景与小鸟–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();代码刷新屏幕;

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


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


Unity3d制作2D游戏飞翔的小鸟(FlappyBird) 注意:如果发现本文章有侵权内容,可以随时联系作者本人,本人将即使撤回进行修改。 阅读详情

相关推荐

JAVA项目:Java实现飞扬的小鸟(Flappy Bird)

飞扬的小鸟(Flappy Bird) 需求描述 游戏加载完毕点击界面即可开始游戏。 鼠标点击控制小鸟飞行,或者通过键盘控制小鸟的前后上下也可以,不要撞到管道哦! 控制好小鸟越过障碍飞得更远,获得更高的积分。 使用的技术点 变量 分支语句 循环语句 面向对象 异常处理 Random随机数 StringBuffer字符串操作 IO操作 多线程 swing组件 。。。。 需求分析 代码实现 1、实现界面背景 step1:首先新建一个class表示背景类Bac...

关注我!带你一路 "狂飙" 到底! 5855

工具的选择与配置---FlappyBird游戏开发教程

工具的选择与配置我们要制作的游戏《FlappyBird》可以用C++来制作。但我们用什么库呢?《FlappyBird》是一款2D游戏,所以我们不用去动高大上的openGL。找了很久,找到了一个叫SFML的库 1.1 下载点击进入下载页 下载VC2015版(虽然我用的是VS2017) 或 点击下载下载后解压到 D:\SFML(自己随便)然后设置path环境变量:D:\SFML\SFML-2.4

Good_Developers的博客 1368

使用Python六步制作小鸟管道游戏(附源码)

属性:设置小鸟的皮肤,坐标,降落速度,生命状态方法:更新小鸟坐标位置。

xjt921122的博客 1037

教你用 HTML5 制作Flappy Bird(上)

大概在两个月前,我给自己定了一个目标:每周在制作一个HTML5新游戏。截至目前,我已经有了9款游戏。现在很多人希望我能写一下如何制作这些游戏,在这篇文章中,让我们来一起用HTML5制作Flappy Bird。 Flappy Bird是一款非常优秀且容易上手的游戏,可以作为一个很好的HTML5游戏的教程。在这片教程中,我们使用Phaser框架写一个只有65行js代码的简化版Flappy Bir

前端琅琊阁 2224

基于 Cocos Creator 3.X 开发一个 FlappyBird 小游戏(一)

首先这是一个学习向的游戏制作教程,目的是通过 FlappyBird 小游戏 的制作,进而将所学的知识,学以致用,加深理解和巩固。所以,在制作小游戏之前,希望的是至少对下面两个技能项,有着最基础的认知以及了解大致的用法了(如果还不大熟悉,那么可能需要先加固一下基础知识,然后再进行小游戏的制作)。1、熟练使用 TypeScript;2、大致明白 Cocos Creator 3.X 版本的使用;在你已经具备上述两个基本项后,那么就可以开始小游戏的制作了。

woshiyuxie的博客 1604

flappyBird游戏开发素材

完整的游戏素材

目录---FlappyBird游戏开发教程

目录* FlappyBird游戏开发教程* 工具的选择与配置 FlappyBird游戏介绍 背景与小鸟 飞吧!bird 柱子来也! 红色为可选内容、黑色的正在写

Good_Developers的博客 1288

flappy_bird 素材资源

该资源是flappy bird游戏涉及到的素材资源,包括背景、管道、小鸟的不同状态以及游戏开始、重启、失败等。

人形图案c语言程序_做游戏,学编程(C语言) 7 学习EasyX图形交互功能----flappy bird源代码...

经过之前的学习,我们基本掌握了开发小游戏所需要的语法知识和搭建方法,但是基础C语言的可视化与交互功能实在是太弱了。利用免费的EasyX插件,我们可以快速上手,简单实现很酷的视觉效果。EasyX安装包下载链接:下载 -- EasyX Library for C++怎样安装 EasyX? -- EasyX Library for C++怎样使用 EasyX?(Visual C++ 6.0) -- Ea...

weixin_34039159的博客 366

flappyBird素材包

https://blog.youkuaiyun.com/cb269267/article/details/20214107 按照此博主操作分解出来的方法,如果需要可以去原博客自行操作,也可以直接下载本资源

flappybird图像音频资源包

flappybird图像音频资源,用于配合《简单小游戏flappybird制作》相关博客。

Flappy Bird(Canvas 实现)

@[TOC](Flappy Bird(Canvas 实现)) Flappy Bird 一、Canvas基础 创建 canvas 标签注意事项 canvas 绘图操作 二、组成实现 实现背景移动 实现管子添加 小鸟飞行、以及画布事件检测 ...

qq_37644845的博客 516

FlappyBird素材.zip

《flappy bird》是一款由来自越南的独立游戏开发者Dong Nguyen所开发的作品,游戏于2013年5月24日上线,并在2014年2月突然暴红。2014年2月,《Flappy Bird》被开发者本人从苹果及谷歌应用商店撤下。2014年8月份正式回归APP STORE,正式加入Flappy迷们期待已久的多人对战模式。游戏中玩家必须控制一只小鸟,跨越由各种不同长度水管所组成的障碍。--------素材包括相关图片以及音效仅供学习参考

Python游戏开发终极指南:FlapPyBird完整项目解析与快速上手

FlapPyBird是一个基于Python-Pygame开发的经典Flappy Bird克隆游戏,为Python开发者提供了学习2D游戏开发的完美入门案例。这个开源项目不仅完整复刻了原版游戏的核心玩法,还采用了清晰的模块化架构,让初学者能够轻松理解游戏开发的核心原理。 ## 🎮 为什么选择FlapPyBird学习Python游戏开发? 对于想要进入游戏开发领域的Python开发者来说,Fla

gitblog_00340的博客 1070

flappybird素材图片整合.zip

flappy bird 图片素材,就没有放代码了,这是我初学时候的素材。 flappy bird是一款简易却难度极高的休闲游戏。简单并不粗糙的8比特像素画面、超级玛丽游戏中的绿色通道、眼神有点呆滞的小鸟和几朵白云便构成了游戏的一切。

像素小鸟游戏的素材资源包

Fancy Bird(像素小鸟) 是一款单人手机游戏,有8888个随机生成的NFT角色,这些角色最初具有自定义功能,通过关卡战斗来赢得他们作为“鸟巢中最漂亮的鸟”的位置,希望效仿令人上瘾的手机游戏 Flappy Bird 的成功。,本资源包为像素小鸟的原始资源包,可用用来开发像素小鸟的游戏, 像素小鸟是一款引人入胜的单人手机游戏,独具魅力地融合了角色自定义和战斗挑战。游戏中,你将遇到8888个独一无二的NFT角色,每个角色都拥有丰富的自定义功能,允许玩家自由地调整角色的外观和属性。这些角色将在关卡中展开激烈的战斗,争夺“鸟巢中最漂亮的鸟”的荣誉。 像素小鸟深受经典手机游戏 Flappy Bird 的启发,同样追求简单而令人上瘾的玩法。游戏操作简便易上手,但同时又富有深度和挑战性,需要玩家灵活运用策略和技巧来取得胜利。 关卡设计是游戏的核心,每个关卡都有独特的背景和挑战。从郁郁葱葱的森林到严寒的雪山,从繁华的城市到神秘的遗迹,每个关卡都将带给你截然不同的体验。同时,游戏还设有不同难度级别的关卡,无论是新手还是资深玩家都能找到适合自己的挑战。 游戏的音效和音乐同样出色。生动的背景音乐

像素鸟 游戏开发教程 FlappyBird Game development tutorial

像素鸟 游戏开发 教程 FlappyBird Game development tutorial   作者:韩梦飞沙 Author:han_meng_fei_sha   邮箱:313134555@qq.com E-mail: 313134555 @qq.com   像素鸟  FlappyBird 视频目录及链接: 1 游戏背景

韩梦飞沙_韩亚飞 1420

【EMC电磁兼容】02.04——原理图的实战落地细节

原理图上的关于EMC的落地体现一、元器件的选型二、原理图上的EMC体现在哪里?1.芯片电源管脚滤波去耦:2.时钟电路滤波设计3.低速电路滤波抗干扰设计4.通讯接口电路的防护滤波5.系统输入电源端口电路的防护滤波6.系统接地的定义7.芯片软件功能的审查 一、元器件的选型 ​ 原理图最初设计涉及到选型元器件方面: 元器件选型 不仅仅功能需要满足要求,还需要考虑其它细节参数在不同应力下的反应,封装的不同也会产生不同的变化。 元器件替代 常常因为成本原因进行器件替代,除了要考虑功能参数相同时也要考虑系统参数

Time to Forget 2243

FlappyBird项目总结:Java游戏开发经验与教训分享

**FlappyBird**是一款基于Java基础类库开发的经典游戏桌面版,它不仅完美复刻了原版游戏的核心玩法,还加入了移动水管和优化难度梯度等创新功能。这个开源项目为Java初学者和游戏开发爱好者提供了一个极佳的学习案例,展示了如何使用纯Java实现一个完整的2D游戏开发流程。🎮 ## 项目架构解析 ### 核心模块设计 FlappyBird项目采用了清晰的分层架构,将游戏逻辑、渲染和资

gitblog_00196的博客 1074

激光定位算法竞技场:hdl_localization与Cartographer/AMCL的横向技术解剖

本文深入对比了hdl_localization、Cartographer和AMCL三种激光定位算法的技术原理与性能表现。通过UKF-NDT融合、图优化和粒子滤波等核心技术,分析了各算法在结构化环境、动态环境和大尺度场景下的适应性。实验数据表明,Cartographer在全局一致性上表现最优,而AMCL在动态环境中更具鲁棒性。文章还提供了算法选型指南和参数调优技巧,为工程实践提供参考。

weixin_29062865的博客 365

【Windows】 解决联想为主的所有自带摄像头(integrate camera)打不开的毛病(特别点名小新、thinkbook、thinkpad、y7000...)

解决联想系列电脑打不开自带摄像头的问题

Iamruzi的csdn博客 3万+
上一篇: FlappyBird游戏介绍
下一篇: Rust:使用libloader调用动态链接库 (DLL)
编程少侠
博客等级 码龄9年 10粉丝 5原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值