找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

大佬们这个函数还有优化空间吗

rt,2D人物想设计个在墙上冲刺,比方说扒住左边的墙然后向右边冲刺,扒墙已经做好了。现在用这个wall_dash可以实现但冲刺时来回按左右键会出bug(知道是get_axis的事但不知道有啥更好的方法了。。。)
之前动画直接用AnimatedSprite2D可以直接用.fil_h翻转动画,但后来全改用了AnimationPlayer就不知道怎么改了,佬们有能让它冲刺时不会被左右键影响的方法吗
(graphics是节点,翻转后动画也跟着翻转。 dash_dool = false 到 dash_number += 1 可以忽略)

大佬们这个函数还有优化空间吗-1.jpg
回复

使用道具 举报

大神点评(4)

scale的x为负的话,会被翻译成y为负然后翻转180,如果你反复*-1的话,玩家会飘,所以不要去让x为负不好控制,翻转你就直接让y为-1然后翻转一下就行了
回复 支持 反对

使用道具 举报

另外player不直接管控翻转,需要添加轨道去修改flip_h,或者你脚本直接改也可以
回复 支持 反对

使用道具 举报

艾的民 楼主 昨天 17:57 显示全部楼层
空洞的冲刺,贴墙的时候会无视方向键自动朝墙外冲,
直接检测是否在墙上,用负朝向*速度(扒墙的时候是朝着墙的)
不在墙上就正朝向*速度
奥日的冲刺需要按着离开墙的方向才能冲刺。
direction的值不该是input axis而是scale.y
(这里是characterbody莫名其妙的bug/设计问题,可以通过scale.x=scale.y*input axis,改完之后你会发现角色的scale.x不会变,变的是scale.y)
回复 支持 反对

使用道具 举报

艾的民 楼主 昨天 17:58 显示全部楼层
单独处理方向,比如在地面时才能通过input axis刷新方向,其它情况下方向会保持
回复 支持 反对

使用道具 举报

说点什么

您需要登录后才可以回帖 登录 | 立即注册
HOT • 推荐