java - Libgdx Sprite 穿过屏幕边缘

标签 java libgdx

我想在我的 Sprite 退出屏幕时实现平滑过渡。这意味着如果我的 Sprite 从左边缘退出屏幕,它应该出现在右边缘。我遇到的主要问题是我不想简单地将 Sprite 的新坐标从一个边缘设置到另一边缘。例如,如果 Sprite 的一半穿过左边缘,则另一半应出现在右边缘(平滑过渡)。任何人都可以针对这个问题提供任何建议吗?

最佳答案

伪代码!

if(sprite.pos.x > screen.width)
{
    sprite.pos.x -= screen.width;
}
else if(sprite.pos.x < 0 - sprite.width)
{
    sprite.pos.x += screen.width;
}

if(sprite.pos.x + sprite.width > screen.width && sprite.pos.x < screen.width)
{
    batch.draw(sprite.texture, sprite.pos.x - screen.width, sprite.pos.y);
} 
else if(sprite.pos.x < 0 && sprite.pos.x + sprite.width > 0)
{
    batch.draw(sprite.texture, sprite.pos.x + screen.width, sprite.pos.y);
}

batch.draw(sprite.texture, sprite.pos.x, sprite.pos.y);

关于java - Libgdx Sprite 穿过屏幕边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28946148/

相关文章:

java - 在java中替换字符串中的数字

java - 在 Action 中检索/更改 url 参数

java - 如果数字前面有 0,则必须在该位置添加空格

java - KryoNet sendToAllTCP 与 sendTCP

java - 未找到字段 : pixelToWorld (com. uwsoft.editor.renderer.data.ProjectInfoVO)

Java:手动展开的循环仍然比原始循环快。为什么?

java - 将 logger.debug ("message: "+ 文本)转换为 logger.debug(消息 : {}", 文本)

java - 将 Libgdx 滚动条添加到 TextArea

java - LibGdx RayCast box2d 调试(屏幕上可见)

java - 当速度 vector 与位置 vector 相加时,速度 vector 趋于无穷大