我认为您发布的图片不正确。要获得您发布的图像,您只需在黑色圆环顶部绘制红色条。
我猜你想让左侧的戒指在顶部,而右侧则在顶部,以便在视觉上通过。因为绘制顺序,这在2D中根本就不那么容易。
我有一些你可以探索的建议。
- 始终在条形图的顶部绘制圆环,但是当发生碰撞时,您可以计算条形图重叠的位置,并且不会在该位置绘制像素。您可以使用
Pixmap
进行此类计算。根据图像的大小,计算每个帧可能非常昂贵。
- 更快但稍微更黑的方式可能是在多个图像中分割红色条,如果它的某个部分应该被环形重叠,则首先将其绘制在环之后。根据最终产品中红色条的显示内容以及条形图可能具有的角度,我可以想象这样做是非常棘手的。
- 使用3D进行此操作。您可以在环上设置一个角度很小的广告牌,并将条形锁定在环中心的距离轴上。但是,在某些入口和出口角度,你会得到Z格斗,因为像素与相机的距离相同。这可能是也可能不是显而易见的,我不知道LibGDX将如何处理Z战斗。
我想添加此解决方案:
如果物体将水平穿过环,我建议将精灵环设计为精灵(精灵1和精灵2)
你只需按顺序绘制精灵:
如果物体要垂直穿过戒指,你也可以这样做
PS:如果物体要垂直和水平地通过环,这个解决方案不起作用
希望这是有帮助的
祝你好运