国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

通過(guò)寫(xiě)一個(gè)簡(jiǎn)單的東方系彈幕入門(mén)微信小游戲

Harpsichord1207 / 2959人閱讀

摘要:入口文件整個(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

相關(guān)文章

  • 使用pygame開(kāi)發(fā)游戲發(fā)布+小總結(jié)

    摘要:于是準(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系...

    songze 評(píng)論0 收藏0
  • 第三方庫(kù)

    摘要:微信支付,支付寶支付,銀聯(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源...

    seanHai 評(píng)論0 收藏0
  • 第三方庫(kù)

    摘要:微信支付,支付寶支付,銀聯(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源...

    gityuan 評(píng)論0 收藏0
  • 前端基礎(chǔ)入門(mén)

    摘要:手把手教你做個(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。...

    shinezejian 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<