我用很多瓷砖精灵和一个玩家精灵制作了一个2D项目。我正试图让相机跟随播放器,而且大多数情况下它都在工作。但是,有一个问题:
如果你去地图的边缘,它会正常滚动,但它不是黑色背景,而是显示地图边缘上的精灵副本而不是背景(黑色)。如果我将一些正方形留空,则会出现同样的问题,当我移动时,它会显示之前存在的磁贴副本。
相机的工作原理如下:
sprite.visible = 1
,为所有其他精灵做sprite.visible = 0
sprite.rect
设置为coords - offset
flip()
,因为相机每回合移动一次,所以每个回合都需要更新整个屏幕)所有DirtySprites
都有dirty = 2
。
有谁知道为什么它会在边缘而不是背景上显示精灵的副本?
帮助将不胜感激!
答案 0 :(得分:1)
除非您手动清除屏幕表面,否则翻转不会改变其内容。
因此,如果你忽略了画到某个位置,它将保持不变。
如果你想摆脱这种通常被称为“镜子大厅”的效果,你必须跟踪屏幕的哪些部分尚未被绘制,并自己绘制。
在地图的轮廓周围定义背景精灵并阻止相机远离太远可能更容易。
由于您使用“脏/干净”方法仅重新绘制已更改的内容,因此在绘制框架之前,您将无法选择仅填充整个屏幕表面,因为这会覆盖任何保持不变的内容。最后一帧。