Pixi.js 與 DragonBones

動(dòng)畫

游戲是用 Pixi.js 寫的,動(dòng)畫是用 DragonBones 制作的。

最開始的想法是這個(gè)簡(jiǎn)單的動(dòng)畫,完全可以用代碼寫。后來發(fā)現(xiàn)動(dòng)畫雖然不復(fù)雜完全用程序控制還是有一定代碼量的,所以就用了 DragonBones,也算是嘗試新事物。

動(dòng)畫的制作過程就不贅述了,也沒什么技術(shù)含量,這里附上導(dǎo)出資源。

說一說在 Pixi.js 里怎么用。

首先是加載資源。

loader
  .add('orad_ske.json')
  .add('orad_tex.json')
  .add('orad_tex.png')
  .load(() => {
    // todo...
  })

動(dòng)畫資源加載完成之后,就是使用了,使用需要用到 DragonBones 的 JS Runtime。

官方庫(kù)要改一下用起來才順手,也可以用我的小改動(dòng)版。

npm i dragonbones.js

用起來也很簡(jiǎn)單。

const
  factory = dragonBones.PixiFactory.factory,
  {resources} = loader

factory.parseDragonBonesData(resources['orad_ske.json'].data)
factory.parseTextureAtlasData(
  resources['orad_tex.json'].data,
  resources['orad_tex.png'].texture
)

const anime = factory.buildArmatureDisplay('root')
// 事件幀
anime.armature.eventDispatcher.addDBEventListener('frameEvent', async ({name}) => {
  if (name !== 'meet:end') return
  anime.animation.play('love')
  await delay(3)
  anime.animation.play('snatch')
})
anime.animation.play('meet')
anime.position.set(screen.width >> 1, screen.height + 200 >> 1)
stage.addChild(anime)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,631評(píng)論 1 32
  • 中午一點(diǎn)睡覺,睡前早早換睡衣,還把醒來穿的衣服疊的整整齊齊媽媽注意到你今天把衣服疊的好整齊,起來穿的時(shí)候一定充滿喜...
    亞娜蝴蝶號(hào)閱讀 236評(píng)論 0 0
  • 文 / 長(zhǎng)木云伊 時(shí)間過得很快,轉(zhuǎn)眼一個(gè)月過去了。這個(gè)月里我從一個(gè)新人進(jìn)化到略了解公司文化的新員工,有些感悟,寫在...
    莫嗔堂堂主閱讀 334評(píng)論 0 0
  • 有一種病,說重不重,說輕不輕,就是拖延癥。說嚴(yán)重呢,好像也沒有,就是事情要拖到最后一天完成,說不嚴(yán)重吧,這病也會(huì)耽...
    燕子大眼睛閱讀 200評(píng)論 0 0
  • 文/飯老大 不知道為什么,最近總感覺肩膀好重,就像背著一個(gè)人一樣。 “冷,你早上背的是誰?”在太陽剛剛破過濃霧透射...
    飯老大閱讀 348評(píng)論 0 0

友情鏈接更多精彩內(nèi)容