一、動畫
- 需要新增加動畫的地方有三處:1)新生成數字塊時;2)數字塊合併時;3)顯示排行榜時。可參考cc.tween官方文檔。
- 新生成數字塊時。修改
game.js
的addBlock()方法
。
addBlock() {
...
if (locations.length == 0) {
...
} else {
...
cc.tween(block)
.to(ANIMATION_DURATION, { scale: 0.75 })
.to(ANIMATION_DURATION, { scale: 1 }, { easing: 'backOut' })
.start();
...
}
},
- 數字塊合併時。修改
moveDirection(direction)方法
。
moveDirection(direction) {
...
let move = (x, y, callback) => {
...
if (condition || this.data[x][y] == 0) {
...
} else if (this.data[destX][destY] == 0) {
...
} else if (this.data[destX][destY] == this.data[x][y]) {
cc.tween(this.blocks[destX][destY])
.to(ANIMATION_DURATION, { scale: 1.25 })
.to(ANIMATION_DURATION, { scale: 1 }, { easing: 'backOut' })
.start();
...
} else {
...
}
};
...
},
- 顯示排行榜時。修改
showRanks()方法
。
showRanks() {
...
cc.tween(this.rankBox)
.to(ANIMATION_DURATION, { scale: 1.05 })
.to(ANIMATION_DURATION, { scale: 1 }, { easing: 'backOut' })
.start();
},
- 實際預覽後,發現效果不佳會產生卡頓的感覺,修改將這三個動畫封裝爲一個函數
showAnimation(object)
,並修改MOVE_DURATION
的值。
const MOVE_DURATION = 0.02;
...
showAnimation(object) {
cc.tween(object)
.to(0.06, { scale: 1.1 })
.to(0.06, { scale: 1 })
.start();
},
- 在微信開發者工具中預覽可得。
二、音效
- 下載點擊音效,拷貝至
assets\sound目錄
下,在restartButton
下新建一個clickSound節點
,添加AudioSource組件
,將click.mp3
拖至Clip
欄。
- 在
restartButton
中將Button組件
中的Click Event
改爲1
,cc.Node選擇clickSound節點
,組件爲cc.AudioSource
,方法爲play
。
- 其他按鈕同理,但實際預覽過程中,返回按鈕並不能聽到聲音。原因是聲音事件還沒有觸發,相關
box
的active爲false
了,因此修改AudioSource
相關代碼。
- 在
properties
中添加clickSound
,並與Canvas
綁定,在按鈕觸發的相關方法中調用play()方法
即可。
properties: {
...
clickSound: cc.AudioSource,
},
...
restart() {
...
this.clickSound.play();
},