添加扭矩与固定角度2D字符

本文关键字:2D 字符 添加 | 更新日期: 2023-09-27 18:09:08

这几天我一直在纠结这个问题,所以我希望你们能帮忙。

我正在制作一款2D游戏,我希望我的角色在冰上跑得太久时滑倒、向后倒并撞到头部。我的目标是,如果你在冰上长时间按住奔跑按钮,他就会向后滑,伤到自己。我用的是playmaker,不过我懂一点c#编程。

我尝试的第一件事是制作一个动画浮动,随着时间的推移增加Z轴的旋转,但这出现了严重的错误,使角色到处跳跃/跳过/故障。

我想到的第二件事是添加2D扭矩,使他开始向后滑动,但他保持相同的旋转与fixedAngle true。

所以当他在冰上时,fixedAngle为假,但当我开始奔跑时,他立即向前或向后摔倒。我把重心放在正中间,所以只要他不动,他就能站得很好。

有谁知道达到我想要的效果的方法吗?这是我的第一款游戏,我是个新手,所以希望有一个更简单/正确的方法来处理这个问题。我可能做错了,所以任何正确方向的指导都将非常感谢。

添加扭矩与固定角度2D字符

从你的语言来看,你似乎想要追踪玩家在冰上奔跑的时间。

如果你想将此绑定到运行键处于下,则在按钮处于下时启动计时器,并在一定时间后触发"滑倒"事件。

如果你想将此与玩家停留在冰面上的时间联系起来,那么当玩家到达冰面时启动计时器,并在一定时间后触发"滑倒"事件。

如果你想有一个视觉倾斜,将时间增量与对象的角度联系起来。设定一个角度来触发"滑倒"事件。

Update(){
    if(this.running && _terrainAtPos == <Ice> && isGrounded){
        transform.Rotate(0,0,3*Time.deltaTime);
        if(tranform.rotation.z > 180){
            //do falling event
        }
    }
}

编辑:以上不是工作示例。我只是想说明一下。