3D小游戏(three)-Block跟随动画实现

Block跟随动画

  1. block/base.js

import { customAnimation } from '../../libs/animation'

export default class BaseBlock{

constructor(type){

this.type = type//cuboid||culinder

this.height = blockConf.height

this.width = blockConf.width

//Block跳跃变形

this.status = 'stop'

this.scale = 1

}

_shrink () {//Block收缩

const DELTA_SCALE = 0.005

const MIN_SCALE = 0.55

this.scale -= DELTA_SCALE

this.scale = Math.max(MIN_SCALE, this.scale)

if (this.scale <= MIN_SCALE) {

this.status = 'stop'

return

}

this.instance.scale.y = this.scale

const deltaY = this.height * DELTA_SCALE / 2

this.instance.position.y -= deltaY

}

rebound () {//还原

this.status = 'stop'

this.scale = 1

customAnimation.to(this.instance.scale, 0.5, { ease: 'Elastic.easeOut', y: 1 })

customAnimation.to(this.instance.position, 0.5, { ease: 'Elastic.easeOut', y: 0})

}

shrink () {

this.status = 'shrink'

}

update () {

if (this.status == 'shrink') {

this._shrink()

}

}

}

  1. game-page.js

addInitBlock中

this.currentBlock = new Cuboid(-15, 0, 0, 'show')

this.scene.instance.add(this.currentBlock.instance)

render中

if (this.currentBlock) {

this.currentBlock.update()

}

touchStartCallback中

this.currentBlock.shrink()

touchEndCallback中

this.currentBlock.rebound()//还原

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值