javaScript實(shí)現(xiàn)游戲倒計(jì)時(shí)功能
本文實(shí)例為大家分享了js實(shí)現(xiàn)游戲倒計(jì)時(shí)的具體代碼,供大家參考,具體內(nèi)容如下
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
button:hover {
cursor: pointer;
}
</style>
<script>
//1.獲取游戲的總時(shí)間
//2.游戲開(kāi)始的時(shí)間
//3.游戲進(jìn)行時(shí)
//4. 游戲進(jìn)行時(shí) - 游戲開(kāi)始時(shí)間 = 玩家游戲時(shí)長(zhǎng)
//5. 游戲總時(shí)間 - 玩家游戲時(shí)長(zhǎng) = 游戲倒計(jì)時(shí)
var zt;
var startBtn;
var djs_span;
var game_time; //游戲總時(shí)長(zhǎng)
var game_start; //游戲開(kāi)始時(shí)間
var game_djs; //游戲倒計(jì)時(shí)
var id; //計(jì)時(shí)器id
var isZT = false; //判斷是否為暫停,false表示未點(diǎn)擊暫停
var zt_time; //暫停時(shí)的倒計(jì)時(shí)值
var jx_id; //繼續(xù)游戲的倒計(jì)時(shí)id
window.onload = function() {
//開(kāi)始游戲
startBtn = document.getElementById("start");
//暫停游戲
zt = document.getElementById("zt");
//游戲倒計(jì)時(shí)
djs_span = document.getElementById("djs");
//開(kāi)始游戲
startBtn.onclick = function() {
clearTimeout(jx_id);
if(isZT) {
var reset = confirm("您的游戲正在進(jìn)行中,確定要重新開(kāi)始嗎?");
if(reset) {
zt.textContent = "暫停游戲";
isZT = false;
} else {
return;
}
}
//獲取游戲總時(shí)長(zhǎng)
game_time = document.getElementById("time").value * 60; //把所獲取的游戲總時(shí)長(zhǎng)變成秒
//記錄游戲開(kāi)始時(shí)間
game_start = new Date();
//禁用開(kāi)始按鈕
startBtn.disabled = true;
djs();
}
//停止游戲
document.getElementById("stop").onclick = function() {
game_stop();
//還原開(kāi)始按鈕
startBtn.disabled = false;
}
//暫停游戲
zt.onclick = function() {
game_zt();
if(isZT) {
//點(diǎn)擊繼續(xù)按鈕
zt.textContent = "暫停游戲";
isZT = false;
//禁用開(kāi)始按鈕
startBtn.disabled = true;
//記錄繼續(xù)游戲開(kāi)始時(shí)間
game_start = new Date();
game_jx();
} else {
//點(diǎn)擊暫停按鈕
zt.textContent = "繼續(xù)游戲";
isZT = true;
//還原開(kāi)始按鈕
startBtn.disabled = false;
zt_time = game_djs;
game_zt();
}
}
}
//倒計(jì)時(shí)方法
function djs() {
//獲取游戲進(jìn)行時(shí)
var playing = new Date();
game_djs = game_time - parseInt((playing - game_start) / 1000); //
djs_span.innerHTML = game_djs;
id = setTimeout("djs()", 1000); //步長(zhǎng)
//游戲結(jié)束
if(game_djs < 1) {
clearTimeout(id);
alert("游戲結(jié)束");
}
}
//暫停游戲
function game_zt() {
clearTimeout(id);
clearTimeout(jx_id);
}
//繼續(xù)游戲
function game_jx() {
//獲取游戲進(jìn)行時(shí)
var playing = new Date();
game_djs = zt_time - parseInt((playing - game_start) / 1000); //
djs_span.innerHTML = game_djs;
jx_id = setTimeout("game_jx()", 1000); //步長(zhǎng)
//游戲結(jié)束
if(game_djs < 1) {
clearTimeout(jx_id);
alert("游戲結(jié)束");
}
}
//停止游戲
function game_stop() {
clearTimeout(id);
clearTimeout(jx_id);
game_djs = 0;
djs_span.innerHTML = game_djs;
}
</script>
</head>
<body>
游戲總時(shí)長(zhǎng):<input id="time" type="text" size="5px" value="1" />分鐘 </br>
倒計(jì)時(shí):<span id="djs"></span> 秒 </br>
<button id="start">開(kāi)始游戲</button>
<button id="zt">暫停游戲</button>
<button id="stop">停止游戲</button>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JS實(shí)現(xiàn)倒計(jì)時(shí)圖文效果
- Javascript實(shí)現(xiàn)時(shí)間倒計(jì)時(shí)功能
- Javascript實(shí)現(xiàn)秒表倒計(jì)時(shí)功能
- JS 倒計(jì)時(shí)實(shí)現(xiàn)代碼(時(shí)、分,秒)
- JS實(shí)現(xiàn)倒計(jì)時(shí)(天數(shù)、時(shí)、分、秒)
- 簡(jiǎn)單易用的倒計(jì)時(shí)js代碼
- js代碼實(shí)現(xiàn)點(diǎn)擊按鈕出現(xiàn)60秒倒計(jì)時(shí)
- js幾秒以后倒計(jì)時(shí)跳轉(zhuǎn)示例
- 2種簡(jiǎn)單的js倒計(jì)時(shí)方式
- JavaScript實(shí)現(xiàn)新年倒計(jì)時(shí)效果
相關(guān)文章
微信/支付寶小程序?qū)崿F(xiàn)彈窗動(dòng)畫(huà)縮放到某個(gè)位置的示例代碼
本文詳細(xì)介紹了如何使用HTML、CSS和JavaScript實(shí)現(xiàn)動(dòng)畫(huà)函數(shù),包括參數(shù)設(shè)置和動(dòng)畫(huà)過(guò)程中的狀態(tài)管理,文章還涉及了如何獲取DOM元素、設(shè)置動(dòng)畫(huà)開(kāi)始和結(jié)束的回調(diào)函數(shù),感興趣的朋友跟隨小編一起看看吧2024-10-10
微信小程序頁(yè)面跳轉(zhuǎn)功能之從列表的item項(xiàng)跳轉(zhuǎn)到下一個(gè)頁(yè)面的方法
這篇文章主要介紹了微信小程序頁(yè)面跳轉(zhuǎn)功能之從列表的item項(xiàng)跳轉(zhuǎn)到下一個(gè)頁(yè)面的方法,結(jié)合具體實(shí)例形式總結(jié)分析了微信小程序頁(yè)面跳轉(zhuǎn)及列表item項(xiàng)跳轉(zhuǎn)頁(yè)面的相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
Chrome不支持showModalDialog模態(tài)對(duì)話框和無(wú)法返回returnValue問(wèn)題的解決方法
上個(gè)禮拜修改測(cè)試一個(gè)后臺(tái)管理項(xiàng)目,在測(cè)試與各個(gè)瀏覽器兼容性的時(shí)候,發(fā)現(xiàn)在chrome瀏覽器下showModalDialog方法顯示的并不是模態(tài)對(duì)話框,就像新打開(kāi)一個(gè)頁(yè)面一樣,父窗口仍然可以隨意獲取焦點(diǎn),并可以打開(kāi)多個(gè)窗體,而且返回值returnValue也無(wú)法返回,一直是undefined2016-10-10
JavaScript學(xué)習(xí)筆記之獲取當(dāng)前目錄的實(shí)現(xiàn)代碼
用來(lái)獲取當(dāng)前目錄的js代碼,需要的朋友可以參考下,主要利用了split函數(shù)。2010-12-12
js跳轉(zhuǎn)頁(yè)面方法實(shí)現(xiàn)匯總
js跳轉(zhuǎn)頁(yè)面的方法有很多,本文搜集整理了一些,個(gè)人感覺(jué)還不錯(cuò),希望對(duì)大家有所幫助2014-02-02
Google Map V3 綁定氣泡窗口(infowindow)Dom事件實(shí)現(xiàn)代碼
無(wú)法在infowindow里面添加的div進(jìn)行綁定事件處理,官方的API,發(fā)現(xiàn)了google.maps.InfoWindow下面的Events里面有個(gè)domready事件2013-04-04
JavaScript實(shí)現(xiàn)前端實(shí)時(shí)搜索功能
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)前端實(shí)時(shí)搜索功能 ,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
JS學(xué)習(xí)筆記之?dāng)?shù)組去重實(shí)現(xiàn)方法小結(jié)
這篇文章主要介紹了JS學(xué)習(xí)筆記之?dāng)?shù)組去重實(shí)現(xiàn)方法,結(jié)合實(shí)例形式總結(jié)分析了javascript數(shù)組去重的5種常見(jiàn)實(shí)現(xiàn)方法及相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
怎么使用javascript深度拷貝一個(gè)數(shù)組
一般情況下,使用 “=” 可以實(shí)現(xiàn)賦值。但對(duì)于數(shù)組、對(duì)象、函數(shù)等這些引用類型的數(shù)據(jù),這個(gè)符號(hào)就不好使了。下面我們來(lái)詳細(xì)學(xué)習(xí)下吧2019-06-06

