摘要:入口文件整個(gè)微信小游戲?qū)嶋H上是運(yùn)行在微信框架中一個(gè)原生中,沒(méi)有瀏覽器頁(yè)面環(huán)境如這就是為什么有一個(gè)模擬瀏覽器環(huán)境的適配器,啟動(dòng)時(shí)小游戲框架運(yùn)行,然后在中基本上都是對(duì)微信小游戲的調(diào)用及原生的操作了。
了解微信小游戲
官方文檔有詳細(xì)的介紹
小游戲的文件結(jié)構(gòu) 我們以新建一個(gè)官方示例說(shuō)明如圖 最外層除了readme外 有3個(gè)文件
game.js 程序入口
game.json小游戲配置文件
project.config.json 項(xiàng)目設(shè)置文件
具體配置可以查看官方文檔,只有這幾個(gè)文件需要按照文件名格式來(lái)寫(xiě),其他文件的內(nèi)容和
這個(gè)文件是官方示例中用于模擬瀏覽器環(huán)境的適配器,如有需要可以自己寫(xiě),我們這里沿用這個(gè)。
入口文件 game.js
import "./js/libs/weapp-adapter" import "./js/libs/symbol" import Main from "./js/main" new Main()
整個(gè)微信小游戲?qū)嶋H上是運(yùn)行在微信框架中一個(gè)原生canvas中,沒(méi)有瀏覽器頁(yè)面環(huán)境如document(這就是為什么有一個(gè)模擬瀏覽器環(huán)境的適配器),啟動(dòng)時(shí)小游戲框架運(yùn)行g(shù)ame.js,然后在main.js中基本上都是對(duì)微信小游戲api的調(diào)用及原生canvas的操作了。如果之前使用過(guò)原生canvas或者其他canvas庫(kù)的同學(xué) 馬上就可以上手開(kāi)發(fā)0成本,官方開(kāi)發(fā)工具也有es6=》es5的轉(zhuǎn)換所以如果項(xiàng)目比較小都不用其他東西,直接文本編輯器修改 保存 查看 即可。
開(kāi)工音頻使用原來(lái)的代碼
幀定時(shí)也使用wx的回調(diào)函數(shù)
window.requestAnimationFrame( this.TimerHandel.bind(this), canvas )
引入一個(gè)canvas2d庫(kù)createjs中的ease 和一個(gè)自己寫(xiě)的工具庫(kù)
import "./js/libs/weapp-adapter" import "./js/libs/ease" import "./js/plugin/Math" import Main from "./js/main" window.main = new Main();
保留原來(lái)的觸摸移動(dòng)飛機(jī)并且新增重力感應(yīng)移動(dòng)飛機(jī)
this.initEvent(); wx.startAccelerometer({ success:()=>{console.log("開(kāi)始監(jiān)聽(tīng)加速計(jì)")}}); wx.onAccelerometerChange((res)=>{ this.player.speedx = Math.floor(res.x*100)/10; this.player.speedy = Math.floor(-res.y * 100)/10; })
其他全部刪除 基于create.js庫(kù)重寫(xiě);所有子彈繼承一個(gè)父類
export default class Bullet_Super { constructor(cantiner, SHOOT_FRAME = 10,sprite_sheet) { this.cantiner = cantiner; this.shoot_frame = SHOOT_FRAME; this.list = []; this.deletelist = []; this.y = 0; this.x = 0; this.spriteSheet = new createjs.SpriteSheet(sprite_sheet); } outOfScreen(s, test) { if (test) { if (s.y > window.innerHeight + 100 || s.x > window.innerWidth + 100 || s.x < -100) { this.deletelist.push(s); s.visible = false; return false; } } return true; } createSprite(anime, option, die_option) { let isnew = true; let sprite = this.deletelist.length > 0 ? (isnew = false, this.deletelist.shift()) : new createjs.Sprite(this.spriteSheet, anime); sprite.isdie = false; sprite.dieing_frame=0; sprite.diecount = 0; Object.assign(sprite, option); sprite.die = sprite.die || (() => { sprite.isdie = true; Object.assign(sprite, die_option); }); !isnew ? (sprite.visible = true, sprite.gotoAndPlay(anime)) : this.cantiner.addChild(sprite); this.list.push(sprite); } update(timeFunc, dieFunc, diedFunc, test) { this.list = this.list.filter((s) => { if (s.isdie) { s.diecount++; dieFunc(s); if (s.diecount > (s.dieing_frame)) { diedFunc(s); this.deletelist.push(s); s.visible = false; return false; } return true; } timeFunc(s); return this.outOfScreen(s, test); }); } }
之后就是實(shí)現(xiàn)各種彈幕,計(jì)分顯示等
具體移步github https://github.com/lichffffd/we...
b站演示https://www.bilibili.com/vide...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/107311.html
摘要:于是準(zhǔn)備在這里總結(jié)下用開(kāi)發(fā)游戲的經(jīng)驗(yàn),大致講一下這個(gè)游戲是怎么開(kāi)發(fā)出來(lái)的,代碼比較長(zhǎng)就不貼在這里了。為本游戲的證物系統(tǒng),管理證物的顯示,指證等。 概述 大約兩年前接觸了python,然后就愛(ài)上了這個(gè)語(yǔ)言。然后就想用它寫(xiě)游戲,很快就找到了pygame這個(gè)庫(kù),但是pygame貌似十分冷門(mén),網(wǎng)上教程也比較少,好在還有個(gè)文檔來(lái)參考。于是胡亂搞了很久,前后搞了彈幕射擊類(模擬東方project系...
摘要:微信支付,支付寶支付,銀聯(lián)支付三大支付總結(jié)支付寶植入總結(jié)支付寶的植基于和百度地圖的組件庫(kù)基于百度地圖封裝的組件庫(kù),使用這個(gè)庫(kù)最好需要先了解和百度地圖。 Commento - 多說(shuō) & Disqus 開(kāi)源替代品 Commento - 多說(shuō) & Disqus 開(kāi)源替代品 anime.js 簡(jiǎn)單入門(mén)教程 強(qiáng)大輕量的動(dòng)畫(huà)庫(kù) anime.js 入門(mén)教程 來(lái)自B站的開(kāi)源的MagicaSakura源...
摘要:微信支付,支付寶支付,銀聯(lián)支付三大支付總結(jié)支付寶植入總結(jié)支付寶的植基于和百度地圖的組件庫(kù)基于百度地圖封裝的組件庫(kù),使用這個(gè)庫(kù)最好需要先了解和百度地圖。 Commento - 多說(shuō) & Disqus 開(kāi)源替代品 Commento - 多說(shuō) & Disqus 開(kāi)源替代品 anime.js 簡(jiǎn)單入門(mén)教程 強(qiáng)大輕量的動(dòng)畫(huà)庫(kù) anime.js 入門(mén)教程 來(lái)自B站的開(kāi)源的MagicaSakura源...
摘要:手把手教你做個(gè)人火的時(shí)候,隨便一個(gè)都能賺的盆滿缽滿,但是,個(gè)人沒(méi)有服務(wù)端,沒(méi)有美工,似乎就不能開(kāi)發(fā)了,真的是這樣的嗎秘密花園經(jīng)典的中文手冊(cè)。涵蓋前端知識(shí)體系知識(shí)結(jié)構(gòu)圖書(shū)推薦以及入門(mén)視頻教程,全的簡(jiǎn)直不要不要的了。 JavaScript 實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制指定區(qū)域文本 html5 的 webAPI 接口可以很輕松的使用短短的幾行代碼就實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制區(qū)域文本的功能,不需要依賴 flash。...
閱讀 3496·2021-10-18 13:30
閱讀 2951·2021-10-09 09:44
閱讀 1969·2019-08-30 11:26
閱讀 2299·2019-08-29 13:17
閱讀 765·2019-08-29 12:17
閱讀 2253·2019-08-26 18:42
閱讀 478·2019-08-26 13:24
閱讀 2960·2019-08-26 11:39