我一直在四处寻找能够为身体包裹世界边缘的最佳方法。 我设法使用这个主题来做到这一点: How do I make a Box2D wrap around world? 使用SetTransform()我可以使它出现在另一个X / Z端。
现在让我说我有一个对象,例如一个简单的盒子10x10。 如果盒子的一半超出上Y边缘,我希望超出的部分出现在下方,而上部仍然可见的盒子的另一部分留在那里。 总而言之,我想要一个真正的环绕式边缘,就像在旧游戏中一样。 我希望我足够清楚......
编辑: 我添加了一张图片来解释我的意思:
由于
答案 0 :(得分:0)
我没有使用过Box2d但我在处理之前已经解决了这个问题,希望逻辑能够轻松转换
在处理中,矩形在位置rect(x, y, rectangleWidth, rectangleHeight)
处绘制为x
,y
代表矩形的左上角。矩形的宽度和高度分别从x
和y
这个想法是正常绘制矩形,除非底部离开视口的底边(因为矩形的高度指向基于y
)。如果矩形不在视口的下边缘,那么您将绘制两个部分矩形
在下面的代码中,height
是视口的高度
if (y < height-10)
rect(x, y, 10, 10); // Normal condition, entire rectangle
else {
rect(x, 0, 10, 10-(height-y)); // Top partial rectangle
rect(x, y, 10, height-y); // Bottom partial rectangle
}
答案 1 :(得分:0)
最后我用Google搜索了一篇关于Unity的文章:
在Box2D上,我创建了8个鬼体,它们按照文章中的定义进行了定位。
在Box2D步骤中,我添加了一些逻辑来检查原始身体的位置。 当它到达边缘时,Ghost Body出现在另一边。当原始的身体进入一个角落时它也起作用。每个边缘都会出现4个鬼体。