亚洲精品www久久久久久,国产乱码精品一区二区三,另类国产精品一区二区,国产av无码专区亚洲草草,无码日韩精品91超碰,玩弄放荡人妻少妇系列,欧洲美女黑人粗性暴交视频,一区二区三区四区五区自拍

    服務(wù)熱線 400-660-5555 (轉(zhuǎn)1)

    網(wǎng)站建設(shè)

    網(wǎng)站建設(shè)

    站內(nèi)資訊
    網(wǎng)站建設(shè) / 站內(nèi)資訊 / 行業(yè)資訊 / 正文

    微信小游戲體驗之飛機大戰(zhàn)簡單改造

    來源: All文章
    發(fā)布時間:2024-06-06 10:07:12

      微信推出了小程序版小游戲,跳一跳小游戲火爆微信,從此大家就不用去下載小游戲類APP及使用H5小游戲了。直接用微信小程序玩小游戲,有很多好處,中企動力簡單對比了下。

      1、不用擔(dān)心手機中毒,因為小游戲是微信內(nèi)置的,而且必須通過微信官方審核才能上架,所以可以放心地玩。

      2、有好友排行榜,邀好友對戰(zhàn)等功能,更多樂趣。

      3、不需要下載,直接打開使用。

      4、廣告相對較少,估計也是微信審核時的限制,不能影響用戶體驗。

      有這么多好處,完全可以終結(jié)小游戲類APP和H5小游戲,讓這類開發(fā)者轉(zhuǎn)而開發(fā)微信小游戲。

      微信也為開發(fā)者提供了一個簡單的DEMO版飛機大戰(zhàn),雖然簡單,但是可以讓開發(fā)者了解其開發(fā)流程和方法。根據(jù)中企動力了解,其開發(fā)方法跟H5小游戲開發(fā)方式非常相似,因為微信小游戲就是根據(jù)H5內(nèi)核運行,所以H5小游戲開發(fā)人員是很容易轉(zhuǎn)過來,甚至有些H5小游戲開發(fā)引擎直接可以導(dǎo)出。

      第一次使用微信開發(fā)者工具會為你生成一個演示版的飛機大戰(zhàn)小游戲,直接可運行使用,里面還包括一些適配器,方便H5開發(fā)人員,還附有代碼結(jié)構(gòu)圖,如下。

      其運行圖如下。

      筆者看了下源碼,然后覺得沒有難度,就做了一些小改造。

      一、增加級別,級別越高,敵機出現(xiàn)幾率越多,主要修改main.js文件enemyGenerate函數(shù)。

    etenemy_build_speed=60//river新增敵機生成速度越小越快

    etenemy_speed=4//river新增敵機移動速度越大越快

      /**

      *隨著幀數(shù)變化的敵機生成邏輯

      *幀數(shù)取模定義成生成的頻率

      */

      enemyGenerate(){

    etenemy_build_speed_now=enemy_build_speed-this.player.level*2+1

    etenemy_speed_now=enemy_speed

      if(databus.frame%enemy_build_speed_now===0){

    etenemy=databus.pool.getItemByClass('enemy',Enemy)

      enemy.init(enemy_speed_now)

      enemy.shoot(7)//敵機發(fā)射

      databus.enemys.push(enemy)

      }

      }

      二、敵機也可以發(fā)射

      在npc目錄復(fù)制bullet.js函數(shù)為bullet

      2.js作為敵機類,然后在enemy.js敵機類增加敵機射擊函數(shù),然后每次產(chǎn)生敵機的時候射出一個敵機。

      shoot(speed){

    etbullet2=databus.pool.getItemByClass('bullet2',Bullet2)

      bullet

      2.init(

      this.x+this.width/2-bullet

      2.width/2,

      this.y-10,

      speed

      )

      databus.bullets

      2.push(bullet2)

      }

      敵機發(fā)射

      enemyGenerate(){

    etenemy_build_speed_now=enemy_build_speed-this.player.level*2+1

    etenemy_speed_now=enemy_speed

      if(databus.frame%enemy_build_speed_now===0){

    etenemy=databus.pool.getItemByClass('enemy',Enemy)

      enemy.init(enemy_speed_now)

      enemy.shoot(7)//敵機發(fā)射

      databus.enemys.push(enemy)

      }

      }

      三、增加障礙物,戰(zhàn)機碰到gameover

      增加一個za.js類

      importSpritefrom'../base/sprite'

      importDataBusfrom'../databus'

      constBULLET_IMG_SRC='images/za

      1.png'

      constBULLET_WIDTH=64

      constBULLET_HEIGHT=64

      constscreenWidth=window.innerWidth

      constscreenHeight=window.innerHeight

      const__={

      speed:Symbol('speed')

      }

    etdatabus=newDataBus()

      functionrnd(start,end){

      returnMath.floor(Math.random()*(end-start)+start)

      }

      exportdefaultclassZaextendsSprite{

      constructor(){

      vari=rnd(1,4)

      console.log(i)

      varimg='images/za'+i+'.png'

      super(img,BULLET_WIDTH,BULLET_HEIGHT)

      }

      init(speed){

      this.x=rnd(0,window.innerWidth-BULLET_WIDTH)

      this.y=-this.height

      this[__.speed]=speed

      this.visible=true

      }

      //每一幀更新位置

      update(){

      //console.log(this.y)

      this.y+=this[__.speed]

      //console.log(this.y)

      //超出屏幕外回收自身

      //sconsole.log(this.height)

      if(this.y=screenHeight)

      databus.removeZas(this)

      }

      }

      然后在main.js函數(shù)里隨機生成

      //生成障礙物

      zaGenerate(){

      if(databus.frame%za_build_speed===0){

    etza=databus.pool.getItemByClass('za',Za)

      za.init(za_speed)

      //console.log(za)

      databus.zas.push(za)

      }

      }

      最后在碰撞函數(shù)里增加邏輯

      //障礙物跟我方飛機相撞

      for(leti=0,il=databus.zas.length;iil;i++){

    etza=databus.zas[i]

      if(this.player.isCollideWith(za)){

      databus.gameOver=true

      break

      }

      }

      四、增加補給,當(dāng)飛機獲得補給后,火力增加一個,過一段時間消失。

      增加一個bullet_add.js函數(shù),其生成邏輯和碰撞邏輯類似

      importSpritefrom'../base/sprite'

      importDataBusfrom'../databus'

      constBULLET_IMG_SRC='images/bullet.png'

      constBULLET_WIDTH=32

      constBULLET_HEIGHT=60

      constscreenWidth=window.innerWidth

      constscreenHeight=window.innerHeight

      const__={

      speed:Symbol('speed')

      }

    etdatabus=newDataBus()

      functionrnd(start,end){

      returnMath.floor(Math.random()*(end-start)+start)

      }

      exportdefaultclassButtetAddextendsSprite{

      constructor(){

      super(BULLET_IMG_SRC,BULLET_WIDTH,BULLET_HEIGHT)

      }

      init(speed){

      this.x=rnd(0,window.innerWidth-BULLET_WIDTH)

      this.y=-this.height

      this[__.speed]=speed

      this.visible=true

      }

      //每一幀更新位置

      update(){

      //console.log(this.y)

      this.y+=this[__.speed]

      //console.log(this.y)

      //超出屏幕外回收自身

      //sconsole.log(this.height)

      if(this.y=screenHeight)

      databus.removeBulletAdds(this)

      }

      }

      這里就不詳細講解了。

    * 文章來源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系客服刪除處理。
    在線 咨詢

    添加動力小姐姐微信

    微信 咨詢

    電話咨詢

    400-660-5555 (轉(zhuǎn)1)

    我們聯(lián)系您

    電話 咨詢
    微信掃碼關(guān)注動力小姐姐 X
    qr
    主站蜘蛛池模板: 真实的国产乱xxxx| 久久精品国产99国产精品| 亚洲中文字| 福清市| 日本精品不卡一二三区| 亚洲人成电影在线播放| 国产精品一级a视频| A毛片终身免费观看网站| 久久这里只精品热免费99| 亚洲午夜成人精品电影在线观看| 国产AV大陆精品一区二区三区| 国产精品三级国产电影| gogogo在线播放中国| av不卡一区| 尹人久久| 在线观看中文字幕| 亚欧乱色| 欧美freesex10一|3| 90后极品粉嫩小泬20p| 日本国产精品第一页久久| 国产全肉乱妇杂乱视频| 国产成人8X人网站视频| 欧美日本精品一本二本三区| 91精品91久久久久久| 欧洲熟妇色xxxx欧美老妇老头多毛| 久久久久人妻精品一区三寸蜜桃| 4480yy亚洲午夜私人影院剧情| 国产精品毛片一区二区| 真实国产老熟女粗口对白| 999精品免费视频| 久久99精品久久久久久琪琪| 亚洲乱码一二三四区国产| 亚洲人成人77777网站| 我要看免费一级毛片| 日本精品一区二区| 天天爽欧美| 国产日韩欧美亚洲精品中字| 久久精品熟女亚洲av艳妇| 久久精品导航| 欧美深度肠交惨叫| 亚洲熟少妇一区二区三区|