如何在2D场景内实现3D跳跃?
godot吧
全部回复
仅看楼主
level 4
1397788208 楼主
我以为这是很常见的教程发现根本就没有,只找到一个用C写的。
效果类似共龙快打,或者DNF里的跳跃。
尝试写了一下问题很多,实现不了,
现在找不到合适教程,我的4.2版本里官方演示里也没有合适的demo
求助有没有合适的教程?
2024年05月14日 01点05分 1
level 2
你只能用3d开发,但是相机用2d视角。
2024年05月14日 03点05分 2
@378374573 好吧[黑线]
2024年05月14日 03点05分
level 8
实体在原地,动画往上跳
2024年05月14日 04点05分 3
level 4
1397788208 楼主
当一回伸手党吧,我写不出来,真心求助一下[汗]
2024年05月15日 02点05分 4
level 9
这和引擎没关系,哪怕不用引擎用纯c写一个,跳跃也只是Y轴的移动,需要一个tag记录是跳跃还是只是往上移动,往上走时改变y,跳跃改成改变AnimateSprite节点的动画上移 主要问题是需要区分处理跳跃的碰撞和y轴移动的碰撞
2024年05月16日 00点05分 5
好的好的谢谢,目前已经部分解决
2024年05月16日 02点05分
level 7
我做过个小demo,跳跃的本质就是位置变化和腾空嘛,一个用动画,一个记录变量在碰撞时检测
2024年05月16日 23点05分 6
level 1
父节点A模拟xz 脚底阴影
子节点B模拟y高度 人物
物理碰撞盒子需要自己计算
还有种方式就是物理系统用3D
然后把3d坐标映射成2D坐标 xz换成父节点A的xy坐标(z转y可以按比例缩减,更符合视觉),y换成子节点B的y坐标
直接3d场景,人物用sprite3d最省事,都是现成的
2024年05月17日 09点05分 7
@幻影炎尘 父节点是没有跳跃功能的,用来模拟地面的上下左右移动。跳跃的时候只修改子节点Y坐标,默认子节点Y=0的时候站在地面,小于0代表在空中(godot中-y表示向上)
2024年06月26日 08点06分
大佬这么处理有些问题,如果向上跳父子节点都要向上移动,但是父节点会带动子节点移动,这个有没有什么好的处理方案呢
2024年06月26日 07点06分
@贴吧用户_J71RVyS036 我的意思是,在空中调整位置,相当于是向上跳了几个身位的距离,所以空中父节点也是要向y轴移动的,但是这个时候又会破坏子节点的跳跃
2024年06月26日 08点06分
@幻影炎尘 父节点下会挂一个影子sprite表示落地点,就算空中移动,人物和地面影子相对距离视觉上是没问题的,人物落地后一定是在影子上,如果没有影子视觉表现会奇怪
2024年06月26日 08点06分
level 4
也可以只改变碰撞检测的位置。提前保存跳跃前和跳跃过程的碰撞位置,当玩家处于跳跃状态的时候,碰撞检测区域设置为跳跃过程时应该处于的位置,跳跃结束后恢复。
2024年05月25日 03点05分 8
level 1
我也有相同的问题,楼主目前是怎么处理的
2024年06月26日 07点06分 9
明天晚上我找找,问题解决了,很方便的解决办法
2024年06月27日 08点06分
level 4
我的想法是:用animationplayer做一个角色腾空而起并落地的动画,并在这段时间内,角色碰撞关闭,结束后重新开始碰撞。
2024年06月27日 06点06分 10
level 1
听我的。在你的人物节点外再包一层节点,用它的y轴作为Z轴,再写一个函数控制人物再这个节点y轴的上下移动作为重力。
2024年07月04日 03点07分 11
level 9
楼主解决了吗?用的是哪个方案
2024年07月04日 09点07分 12
能祭奠一下我的数据么……我现在很难受,固态硬盘炸了……数据全军覆没……
2024年07月04日 10点07分
2024年07月04日 11点07分
level 7
最简单的是3d,固定相机视角,就算是用图片也能实现
2d得自己写碰撞算法
2024年07月04日 10点07分 13
level 9
【Unity3D 2.5D人物移动跳跃教程-哔哩哔哩】 网页链接
这个视频讲了一种思路,分享给大家学习下
2024年07月04日 12点07分 14
1