0
点赞
收藏
分享

微信扫一扫

使用 JavaScript 的 Flappy Bird 游戏

作者:海拥

游戏可以通过这个链接进入 ????​haiyong.site/moyu/flappy…
完整源码我已经放在GitHub上了,欢迎来取,顺带给个✨星星吧????
​github.com/wanghao221/…

代码片段

Flappy Bird 是一款无尽的游戏,玩家可以控制一只鸟。玩家必须保护小鸟免于与管道等障碍物相撞。每次小鸟通过管道时,分数都会增加一。当小鸟与管道碰撞或因重力而坠落时,游戏结束。以下部分描述了构建此游戏必须采取的步骤。

HTML 部分:在此部分中,创建和加载游戏的元素。选择背景、鸟类、障碍和得分元素的图像。接下来,我们创建并链接 style.css 和 index.js 文件。

<!DOCTYPE html>
<html>

<head>
    <link rel="stylesheet" href="style.css">
</head>

<body>
<div class="background"></div>
<img class="bird" src="https://lf3-cdn-tos.bytescm.com/obj/static/xitu_juejin_web/e08da34488b114bd4c665ba2fa520a31.svg" alt="bird-img">
<div class="message">
     Enter 开始游戏
</div>
<div class="score">
<span class="score_title"></span>
<span class="score_val"></span>
</div>
    <script src="gfg.js"></script>
</body>

</html>

CSS 部分:在此部分中,根据需要修改游戏对象的大小、位置和样式。

*&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;margin:&nbsp;0;
&nbsp;&nbsp;&nbsp;&nbsp;padding:&nbsp;0;
&nbsp;&nbsp;&nbsp;&nbsp;box-sizing:&nbsp;border-box;
}

body&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;height:&nbsp;100vh;
&nbsp;&nbsp;&nbsp;&nbsp;width:&nbsp;100vw;
}

.background&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;height:&nbsp;100vh;
&nbsp;&nbsp;&nbsp;&nbsp;width:&nbsp;100vw;
&nbsp;&nbsp;&nbsp;&nbsp;background-color:&nbsp;skyblue;
}

.bird&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;height:&nbsp;100px;
&nbsp;&nbsp;&nbsp;&nbsp;width:&nbsp;160px;
&nbsp;&nbsp;&nbsp;&nbsp;position:&nbsp;fixed;
&nbsp;&nbsp;&nbsp;&nbsp;top:&nbsp;40vh;
&nbsp;&nbsp;&nbsp;&nbsp;left:&nbsp;30vw;
&nbsp;&nbsp;&nbsp;&nbsp;z-index:&nbsp;100;
}

.pipe_sprite&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;position:&nbsp;fixed;
&nbsp;&nbsp;&nbsp;&nbsp;top:&nbsp;40vh;
&nbsp;&nbsp;&nbsp;&nbsp;left:&nbsp;100vw;
&nbsp;&nbsp;&nbsp;&nbsp;height:&nbsp;70vh;
&nbsp;&nbsp;&nbsp;&nbsp;width:&nbsp;6vw;
&nbsp;&nbsp;&nbsp;&nbsp;background-color:&nbsp;green;
}

.message&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;position:&nbsp;fixed;
&nbsp;&nbsp;&nbsp;&nbsp;z-index:&nbsp;10;
&nbsp;&nbsp;&nbsp;&nbsp;height:&nbsp;10vh;
&nbsp;&nbsp;&nbsp;&nbsp;font-size:&nbsp;10vh;
&nbsp;&nbsp;&nbsp;&nbsp;font-weight:&nbsp;100;
&nbsp;&nbsp;&nbsp;&nbsp;color:&nbsp;black;
&nbsp;&nbsp;&nbsp;&nbsp;top:&nbsp;12vh;
&nbsp;&nbsp;&nbsp;&nbsp;left:&nbsp;20vw;
&nbsp;&nbsp;&nbsp;&nbsp;text-align:&nbsp;center;
}

.score&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;position:&nbsp;fixed;
&nbsp;&nbsp;&nbsp;&nbsp;z-index:&nbsp;10;
&nbsp;&nbsp;&nbsp;&nbsp;height:&nbsp;10vh;
&nbsp;&nbsp;&nbsp;&nbsp;font-size:&nbsp;10vh;
&nbsp;&nbsp;&nbsp;&nbsp;font-weight:&nbsp;100;
&nbsp;&nbsp;&nbsp;&nbsp;color:&nbsp;goldenrod;
&nbsp;&nbsp;&nbsp;&nbsp;top:&nbsp;0;
&nbsp;&nbsp;&nbsp;&nbsp;left:&nbsp;0;
}

.score_val&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;color:&nbsp;gold;
}

JavaScript 部分:此部分包含控制游戏状态和移动对象的代码部分。在本节中必须遵循以下步骤。

  • 在 JavaScript 文件中获取对鸟类和背景图像的引用。
  • 为背景滚动速度、小鸟的飞行速度和重力设置一些值。
  • 创建无限滚动背景。可以从此链接阅读执行此操作的指南。
  • 添加一个事件侦听器来侦听“enter”按键以将游戏状态更改为播放状态,并通过每帧从鸟的 y 坐标减小重力值来将重力应用于鸟。
  • 在视图宽度的末端生成障碍(管道),以便它们最初不可见,但随着背景的移动,将管道的 x 坐标减小背景滚动值,使其看起来像鸟在移动。
  • 应用与地面和管道的碰撞,如果小鸟发生碰撞,则将游戏状态更改为结束状态并显示一条消息以重新开始游戏。
  • 每次在管道之间成功导航后增加分数值。

背景滚动速度

let&nbsp;move_speed&nbsp;=&nbsp;3;

重力常数值

let&nbsp;gravity&nbsp;=&nbsp;0.5;

获取 bird 元素的引用

let&nbsp;bird&nbsp;=&nbsp;document.querySelector(&#39;.bird&#39;);

获取 bird 元素属性

let&nbsp;bird_props&nbsp;=&nbsp;bird.getBoundingClientRect();

部分 js 代码

let&nbsp;background&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;document.querySelector(&#39;.background&#39;)
&nbsp;&nbsp;&nbsp;&nbsp;.getBoundingClientRect();

// 获取对 score 元素的引用
let&nbsp;score_val&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;document.querySelector(&#39;.score_val&#39;);
let&nbsp;message&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;document.querySelector(&#39;.message&#39;);
let&nbsp;score_title&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;document.querySelector(&#39;.score_title&#39;);

// 设置初始游戏状态开始
let&nbsp;game_state&nbsp;=&nbsp;&#39;Start&#39;;

// 为按键添加事件监听器
document.addEventListener(&#39;keydown&#39;,&nbsp;(e)&nbsp;=&gt;&nbsp;{

// 按下回车键开始游戏
if&nbsp;(e.key&nbsp;==&nbsp;&#39;Enter&#39;&nbsp;&amp;&amp;
&nbsp;&nbsp;&nbsp;&nbsp;game_state&nbsp;!=&nbsp;&#39;Play&#39;)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;document.querySelectorAll(&#39;.pipe_sprite&#39;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.forEach((e)&nbsp;=&gt;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;e.remove();
&nbsp;&nbsp;&nbsp;&nbsp;});
&nbsp;&nbsp;&nbsp;&nbsp;bird.style.top&nbsp;=&nbsp;&#39;40vh&#39;;
&nbsp;&nbsp;&nbsp;&nbsp;game_state&nbsp;=&nbsp;&#39;Play&#39;;
&nbsp;&nbsp;&nbsp;&nbsp;message.innerHTML&nbsp;=&nbsp;&#39;&#39;;
&nbsp;&nbsp;&nbsp;&nbsp;score_title.innerHTML&nbsp;=&nbsp;&#39;Score&nbsp;:&nbsp;&#39;;
&nbsp;&nbsp;&nbsp;&nbsp;score_val.innerHTML&nbsp;=&nbsp;&#39;0&#39;;
&nbsp;&nbsp;&nbsp;&nbsp;play();
}
});

使用 JavaScript 的 Flappy Bird 游戏_html

到这里就完成了。

举报

相关推荐

0 条评论