通过特定定制环绕世界边缘
Wrap around edge of world with specific customization
我一直在四处寻找最好的方法来为身体包裹世界的边缘。
我设法使用这个主题来做到这一点:
How do I make a Box2D wrap around world?
使用 SetTransform() 我可以让它出现在另一边 X/Z。
现在假设我有一个 object 例如一个简单的盒子 10x10。
如果盒子的一半超出上 Y 边缘,我希望超出的部分出现在下方,而盒子的另一部分在上部仍然可见,留在那儿。
总而言之,我想要一个“真正的环绕边缘,就像以前在旧游戏中所做的那样。
我希望我已经足够清楚了...
编辑:
我添加了一张图片来解释我的意思:
谢谢
我没有使用过 Box2d,但我之前在 Processing 中解决了这个问题,希望逻辑可以轻松翻译
在 Processing 中,矩形被绘制为 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
}
最后我用谷歌搜索了一下,在 Unity 上找到了这篇文章:
我在 Box2D 上创建了 8 个按照文章中定义定位的鬼体。
在 Box2D 步骤中,我添加了一些逻辑来检查我的原始 body 的位置。
当它走到边缘时,幽灵 Body 出现在另一边。当原始 Body 使用录音机时,它也有效。每条边上会出现4个鬼体
我一直在四处寻找最好的方法来为身体包裹世界的边缘。 我设法使用这个主题来做到这一点: How do I make a Box2D wrap around world? 使用 SetTransform() 我可以让它出现在另一边 X/Z。
现在假设我有一个 object 例如一个简单的盒子 10x10。 如果盒子的一半超出上 Y 边缘,我希望超出的部分出现在下方,而盒子的另一部分在上部仍然可见,留在那儿。 总而言之,我想要一个“真正的环绕边缘,就像以前在旧游戏中所做的那样。 我希望我已经足够清楚了...
编辑:
我添加了一张图片来解释我的意思:
谢谢
我没有使用过 Box2d,但我之前在 Processing 中解决了这个问题,希望逻辑可以轻松翻译
在 Processing 中,矩形被绘制为 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
}
最后我用谷歌搜索了一下,在 Unity 上找到了这篇文章:
我在 Box2D 上创建了 8 个按照文章中定义定位的鬼体。
在 Box2D 步骤中,我添加了一些逻辑来检查我的原始 body 的位置。 当它走到边缘时,幽灵 Body 出现在另一边。当原始 Body 使用录音机时,它也有效。每条边上会出现4个鬼体