摘要:小游戲篇一組詞游戲項(xiàng)目功能簡(jiǎn)介詞庫(kù)功能,項(xiàng)目文件里配有格式的中文常用詞組詞庫(kù),每次隨機(jī)抽取詞語進(jìn)行游戲匹配消除功能,自動(dòng)在詞庫(kù)中匹配選中詞語并進(jìn)行消除選中動(dòng)畫以及消除動(dòng)畫,均由生成爆炸動(dòng)畫智能提醒系統(tǒng),秒之后未作操作可提示單詞過關(guān)判定核心代
H5小游戲 篇一 組詞游戲
項(xiàng)目功能簡(jiǎn)介
詞庫(kù)功能,項(xiàng)目文件里配有csv格式的中文常用詞組詞庫(kù),每次隨機(jī)抽取詞語進(jìn)行游戲
匹配消除功能,自動(dòng)在詞庫(kù)中匹配選中詞語并進(jìn)行消除
選中動(dòng)畫以及消除動(dòng)畫,均由svg生成爆炸動(dòng)畫
智能提醒系統(tǒng),10秒之后未作操作可提示單詞
過關(guān)判定
## 核心代碼展示鏈接描述
https://github.com/fanshyiis/...
獲取詞庫(kù),根據(jù)csv文件
$.ajax({ url: "./js/ck2.csv", dataType: "text" }).done(successFunction); // 回調(diào)函數(shù) function successFunction(data) { var allRows = data.split(/ ? | /); for (var singleRow = 1; singleRow < allRows.length; singleRow++) { if (allRows[singleRow].length === 2) { var m = { a: allRows[singleRow][0], b: allRows[singleRow][2] } dataBase.push(m) } } }
隨機(jī)抽取函數(shù)
會(huì)根據(jù)數(shù)組的長(zhǎng)度獲取隨機(jī)數(shù)據(jù)
function getArrayItems(arr, num) { //新建一個(gè)數(shù)組,將傳入的數(shù)組復(fù)制過來,用于運(yùn)算,而不要直接操作傳入的數(shù)組; var temp_array = new Array(); for (var index in arr) { temp_array.push(arr[index]); } //取出的數(shù)值項(xiàng),保存在此數(shù)組 var return_array = new Array(); for (var i = 0; i0) { //在數(shù)組中產(chǎn)生一個(gè)隨機(jī)索引 var arrIndex = Math.floor(Math.random()*temp_array.length); //將此隨機(jī)索引的對(duì)應(yīng)的數(shù)組元素值復(fù)制出來 return_array[i] = temp_array[arrIndex]; //然后刪掉此索引的數(shù)組元素,這時(shí)候temp_array變?yōu)樾碌臄?shù)組 temp_array.splice(arrIndex, 1); } else { //數(shù)組中數(shù)據(jù)項(xiàng)取完后,退出循環(huán),比如數(shù)組本來只有10項(xiàng),但要求取出20項(xiàng). break; } } return return_array;
}
svg動(dòng)畫渲染插件
function clear(id) { document.getElementById(id).innerHTML = "" console.log(id,"-----------------") bodymovin.loadAnimation({ container: document.getElementById(id), // 渲染動(dòng)畫的 dom 元素 renderer: "svg", loop: false, autoplay: true, path: "./js/data.json" }) }
var vue = new Vue({ el: "#vue", data: { windowBg: false, restart: false, passNum: cn, pass: 1, grid: 9, allText: null, gridList: [], text: "春天里柳樹發(fā)芽百花", one: null, two: null, reData: null, timeDuring: 0 }, methods: { // 重置函數(shù) reStart () { this.restart = true setTimeout(function () { vue.restart = false }, 800) this.playAudio("restart") this.passNum = cn this.gridList = JSON.parse(JSON.stringify(this.reData)) }, playAudio (val) { var x = document.getElementById(val) x.load() x.play() }, setTime () { this.timeDuring++ if (this.timeDuring === 10) { this.tip() } console.log(this.timeDuring) setTimeout(function () { vue.setTime() }, 1000) }, tip () { let a = "" console.log(choose) this.gridList.map(val => { if (!val.r && val.f) { a = a + val.f } }) let b = null choose.map(val => { if (a.indexOf(val.a) !== -1 && a.indexOf(val.b) !== -1) { b = val.a } }) if (!b) { this.getNextPass() } if (this.one) { this.choose(this.one, "t") } this.gridList.map(val => { if (!val.r && val.f === b) { this.one = null this.choose(val, "t") } }) console.log(a) }, // 選擇函數(shù) choose (item, type) { if (type !== "t") { this.timeDuring = 0 } if (!item.f) { return false } if (this.one && item.x === this.one.x && item.y === this.one.y) { this.playAudio("touchCard") item.choose = !item.choose this.one = null return false } else { this.playAudio("touchCard") item.choose = !item.choose if (this.one) { this.two = item // font() // 模擬消除 // 加上timeout效果更好 var _this = this setTimeout(function () { _this.clearText() }, 300) } else { this.one = item // font() } } }, // 消除邏輯 clearText () { var r = false dataBase.map(val =>{ if (val.a === this.one.f && val.b === this.two.f) { r = true } }) if (!r) { this.gridList.map(val => { if (val.x === this.two.x && val .y === this.two.y) { val.choose = false this.playAudio("error") } if (val.x === this.one.x && val .y === this.one.y) { val.choose = false } }) this.two = false this.one = false return false } this.gridList.map(val => { if (val.x === this.one.x && val .y === this.one.y) { clear(val.x + "" + val.y) setTimeout(function () { val.f = "" }, 200) val.r = true } if (val.x === this.two.x && val .y === this.two.y) { clear(val.x + "" + val.y) setTimeout(function () { val.f = "" }, 200) val.r = true this.playAudio("success") } }) this.passNum-- console.log(this.passNum) if (this.passNum === 0) { this.playAudio("next") this.windowBg = true } // this.sound_error = true this.one = null this.two = null }, // 進(jìn)入下一關(guān) getNextPass () { this.one = false this.timeDuring = 0 this.windowBg = false cn = cn + 2, this.pass++ this.passNum = cn getDataBase() setTimeout(function () { font() }, 1000) }, //初始化函數(shù) start () { this.gridList = [] for (var i = 0; i < this.grid; i++) { for (var j = 0; j < this.grid; j++) { this.gridList.push({ x: i, y: j, f: "", choose: false, r: false, m: false }) } } var l = [] choose.map(val => { l.push(val.a) l.push(val.b) }) $("#bggg").click() // this.playAudio("bgm") console.log(l) this.allText = l var c = getArrayItems(this.gridList, cn * 2) console.log(c) c.map((val, index) => { val.f = l[index] }) this.reData = JSON.parse(JSON.stringify(this.gridList)) } }, created () { getDataBase() this.setTime() } })
其他函數(shù)就不一一介紹了 上個(gè)圖最后
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/94901.html
摘要:小游戲篇一組詞游戲項(xiàng)目功能簡(jiǎn)介詞庫(kù)功能,項(xiàng)目文件里配有格式的中文常用詞組詞庫(kù),每次隨機(jī)抽取詞語進(jìn)行游戲匹配消除功能,自動(dòng)在詞庫(kù)中匹配選中詞語并進(jìn)行消除選中動(dòng)畫以及消除動(dòng)畫,均由生成爆炸動(dòng)畫智能提醒系統(tǒng),秒之后未作操作可提示單詞過關(guān)判定庫(kù)描述 H5小游戲 篇一 組詞游戲 項(xiàng)目功能簡(jiǎn)介 詞庫(kù)功能,項(xiàng)目文件里配有csv格式的中文常用詞組詞庫(kù),每次隨機(jī)抽取詞語進(jìn)行游戲 匹配消除功能,自動(dòng)在詞...
摘要:之前寫過一篇天學(xué)通前端開發(fā),內(nèi)容主要講的就是前端學(xué)習(xí)路徑,今天再來寫一篇零基礎(chǔ)的學(xué)習(xí)路徑,希望能幫編程零基礎(chǔ)的前端愛好者指明方向。十框架三選一,零基礎(chǔ)的初學(xué)者強(qiáng)烈推薦,如果是后臺(tái)轉(zhuǎn)前端推薦,如果技術(shù)型前端,推薦。 之前寫過一篇26天學(xué)通前端開發(fā),內(nèi)容主要講的就是前端學(xué)習(xí)路徑,今天再來寫一篇零基礎(chǔ)的JavaScript學(xué)習(xí)路徑,希望能幫編程零基礎(chǔ)的前端愛好者指明方向。 一、開發(fā)環(huán)境和Ja...
摘要:據(jù)不完全統(tǒng)計(jì),這五年中,白鷺引擎累計(jì)運(yùn)轉(zhuǎn)的游戲和微信小游戲的流水?dāng)?shù)據(jù)約為億。 我們的引擎架構(gòu)師做某一沙龍活動(dòng)的演講速記,純純的干貨,分享給大家。 王澤:各位開發(fā)者下午好!我叫王澤,是白鷺引擎的首席架構(gòu)師。 今天給大家分享的題目是《重度H5游戲性能優(yōu)化技巧》。之所以決定用這個(gè)題目,是因?yàn)槲易罱鼛字茉趶V深一帶拜訪了很多使用白鷺引擎的開發(fā)者,發(fā)現(xiàn)特別是在廣州一帶,大部分開發(fā)者都在做重度H5游...
摘要:眼下小游戲特別火,不少團(tuán)隊(duì)也陸續(xù)啟動(dòng)了微信小游戲的項(xiàng)目,并于立項(xiàng)前期進(jìn)行技術(shù)預(yù)研究。但從微信官方文檔看卻能發(fā)現(xiàn)不少坑。對(duì)微信小游戲和瀏覽器之間的運(yùn)行環(huán)境差異無感知,非常友好。微信小程序要求開發(fā)者的服務(wù)器支持協(xié)議。 眼下小游戲特別火,不少團(tuán)隊(duì)也陸續(xù)啟動(dòng)了微信小游戲的項(xiàng)目,并于立項(xiàng)前期進(jìn)行技術(shù)預(yù)研究。但從微信官方文檔看 , 卻能發(fā)現(xiàn)不少坑。 一、運(yùn)行環(huán)境的坑 1.API兼容性 1.1、網(wǎng)絡(luò)...
閱讀 1775·2021-10-19 13:30
閱讀 1348·2021-10-14 09:48
閱讀 1541·2021-09-22 15:17
閱讀 2012·2019-08-30 15:52
閱讀 3281·2019-08-30 11:23
閱讀 1992·2019-08-29 15:27
閱讀 897·2019-08-29 13:55
閱讀 758·2019-08-26 14:05