亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于JS實現(xiàn)Flappy?Bird游戲的示例代碼

 更新時間:2022年04月25日 16:44:46   作者:海擁  
Flappy?Bird是13年紅極一時的小游戲,即摁上鍵控制鳥的位置穿過管道間的縫隙。本文將用JS實現(xiàn)這一經(jīng)典的游戲,需要的可以參考一下

前言

Flappy Bird 是一款無盡的游戲,玩家可以控制一只鳥。玩家必須保護小鳥免于與管道等障礙物相撞。每次小鳥通過管道時,分數(shù)都會增加一。當小鳥與管道碰撞或因重力而墜落時,游戲結(jié)束。以下部分描述了構(gòu)建此游戲必須采取的步驟。

游戲可以通過這個鏈接進入

完整源碼地址

實現(xiàn)代碼

HTML 部分:在此部分中,創(chuàng)建和加載游戲的元素。選擇背景、鳥類、障礙和得分元素的圖像。接下來,我們創(chuàng)建并鏈接 style.css 和 index.js 文件。

<!DOCTYPE html>
<html>

<head>
    <link rel="stylesheet" href="style.css" rel="external nofollow" >
</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 部分:在此部分中,根據(jù)需要修改游戲?qū)ο蟮拇笮?、位置和樣式?/p>

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

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

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

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

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

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

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

.score_val {
    color: gold;
}

JavaScript 部分:此部分包含控制游戲狀態(tài)和移動對象的代碼部分。在本節(jié)中必須遵循以下步驟。

  • 在 JavaScript 文件中獲取對鳥類和背景圖像的引用。
  • 為背景滾動速度、小鳥的飛行速度和重力設(shè)置一些值。
  • 創(chuàng)建無限滾動背景??梢詮拇随溄娱喿x執(zhí)行此操作的指南。
  • 添加一個事件偵聽器來偵聽“enter”按鍵以將游戲狀態(tài)更改為播放狀態(tài),并通過每幀從鳥的 y 坐標減小重力值來將重力應(yīng)用于鳥。
  • 在視圖寬度的末端生成障礙(管道),以便它們最初不可見,但隨著背景的移動,將管道的 x 坐標減小背景滾動值,使其看起來像鳥在移動。
  • 應(yīng)用與地面和管道的碰撞,如果小鳥發(fā)生碰撞,則將游戲狀態(tài)更改為結(jié)束狀態(tài)并顯示一條消息以重新開始游戲。
  • 每次在管道之間成功導(dǎo)航后增加分數(shù)值。

背景滾動速度

let move_speed = 3;

重力常數(shù)值

let gravity = 0.5;

獲取 bird 元素的引用

let bird = document.querySelector('.bird');

獲取 bird 元素屬性

let bird_props = bird.getBoundingClientRect();

部分 js 代碼

let background =
    document.querySelector('.background')
    .getBoundingClientRect();

// 獲取對 score 元素的引用
let score_val =
    document.querySelector('.score_val');
let message =
    document.querySelector('.message');
let score_title =
    document.querySelector('.score_title');

// 設(shè)置初始游戲狀態(tài)開始
let game_state = 'Start';

// 為按鍵添加事件監(jiān)聽器
document.addEventListener('keydown', (e) => {

// 按下回車鍵開始游戲
if (e.key == 'Enter' &&
    game_state != 'Play') {
    document.querySelectorAll('.pipe_sprite')
            .forEach((e) => {
    e.remove();
    });
    bird.style.top = '40vh';
    game_state = 'Play';
    message.innerHTML = '';
    score_title.innerHTML = 'Score : ';
    score_val.innerHTML = '0';
    play();
}
});

到這里就完成了。

到此這篇關(guān)于基于JS實現(xiàn)Flappy Bird游戲的示例代碼的文章就介紹到這了,更多相關(guān)JS Flappy Bird游戲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js中的 || 與 && 運算符詳解

    js中的 || 與 && 運算符詳解

    這篇文章主要介紹了js中的 || 與 && 運算符詳解,需要的朋友可以參考下
    2018-05-05
  • 微信小程序使用input組件實現(xiàn)密碼框功能【附源碼下載】

    微信小程序使用input組件實現(xiàn)密碼框功能【附源碼下載】

    這篇文章主要介紹了微信小程序使用input組件實現(xiàn)密碼框功能,涉及input組件布局設(shè)置相關(guān)操作技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下
    2017-12-12
  • layui添加動態(tài)菜單與選項卡 AJAX請求的例子

    layui添加動態(tài)菜單與選項卡 AJAX請求的例子

    今天小編就為大家分享一篇layui添加動態(tài)菜單與選項卡 AJAX請求的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • bootstrap導(dǎo)航、選項卡實現(xiàn)代碼

    bootstrap導(dǎo)航、選項卡實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了bootstrap導(dǎo)航、選項卡的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JavaScript實現(xiàn)Tab欄切換特效

    JavaScript實現(xiàn)Tab欄切換特效

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)Tab欄切換特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 詳解Python中l(wèi)ogging日志模塊在多進程環(huán)境下的使用

    詳解Python中l(wèi)ogging日志模塊在多進程環(huán)境下的使用

    許多應(yīng)用程序中都會有日志模塊,用于記錄系統(tǒng)在運行過程中的一些關(guān)鍵信息,以便于對系統(tǒng)的運行狀況進行跟蹤。這篇文章給大家主要介紹了在Python中l(wèi)ogging日志模塊在多進程環(huán)境下的使用,需要的朋友可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • js判斷文件是否為utf-8編碼的方法

    js判斷文件是否為utf-8編碼的方法

    使用FileReader以utf-8格式讀取文件,根據(jù)文件內(nèi)容是否包含亂碼字符,來判斷文件是否為utf-8,本文就詳細的介紹一下使用,感興趣的小伙伴們可以參考一下
    2021-06-06
  • JS上傳前預(yù)覽圖片實例

    JS上傳前預(yù)覽圖片實例

    上傳圖片對圖片進行一下預(yù)覽,可以了解圖片上傳后大概會是什么樣子,此功能用js實現(xiàn),然后在fileupload控件的change事件中調(diào)用,這樣當用fileupload選擇完圖片以后,圖片就會自動顯示出來了。功能很簡單,卻很實用。
    2013-03-03
  • TypeScript中Array(數(shù)組)聲明與簡單使用方法

    TypeScript中Array(數(shù)組)聲明與簡單使用方法

    這篇文章主要給大家介紹了關(guān)于TypeScript中Array(數(shù)組)聲明與簡單使用的相關(guān)資料,TypeScript Array(數(shù)組)數(shù)組對象是使用單獨的變量名來存儲一系列的值,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • js繪制圓形和矩形的方法

    js繪制圓形和矩形的方法

    這篇文章主要介紹了js繪制圓形和矩形的方法,涉及javascript鼠標事件及頁面元素樣式的相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08

最新評論