Laya 一个子弹飞行类的脚本模板

12 篇文章 2 订阅
7 篇文章 0 订阅
import Script3D = Laya.Script3D;
import Vector3 = Laya.Vector3;
import Sprite3D = Laya.Sprite3D;

/**炮弹基类 */
export default class ShellBase extends Script3D {

    /**炮弹模型 */
    protected _sprite3D:Sprite3D;
    /**子弹的飞行速度 m/s*/
    protected _speed:number = 5;
    /**子弹的生命周期 ms*/
    protected _lifeTime:number = 2000;
    /**计时器 */
    protected _timer:number = 0;
    /**子弹的飞行方向 */
    protected _direction:Vector3 = new Vector3(1, 1, 1);
    /**最短距离 防穿透 单位m  一般该值 >= 飞行速度 / 最高帧数 */
    protected _minDistance:number = 0.4;

    constructor() {
        super();

        // if(direction) {
        //     Vector3.normalize(direction, this._direction);
        // } else {
        //     console.error("direction 参数为null或未定义!");
        // }
    }

    onStart() {
        this._sprite3D = this.owner as Sprite3D;
    }

    onUpdate() {
        let delta:number = Laya.timer.delta;
        if( delta > 500) return;

        this.move();

        this._timer += delta;
        if(this._timer >= this._lifeTime) {
            this._sprite3D.destroy(); // 删除
        }
    }

    /**移动 */
    protected move(): void {
        let translation: Vector3 = new Vector3();
        Vector3.scale(this._direction, this._speed * Laya.timer.delta / 1000, translation);
        this._sprite3D.transform.translate(translation, false);
    }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值