在我尝试创建一个简单的类似Pong的游戏时,我遇到了一个非常奇怪且有时很严重的视觉错误。
当我设置球(一个Flash CS 5.5库MovieClip)在运动中移动屏幕速度相当快,我注意到有时球的边缘会在它移动的方向上被切断一小段时间。
当它发生时,几乎看起来ball
MovieClip的位置略微超出了它自己的边界,因此边界之外的部分无法被绘制。
这是一幅图片,说明了这一点 - 至少对我而言:
您还可以在线查看.swf文件: http://megaswf.com/serve/2099366
一些技术数据:
EnterFrame
事件函数来递增/递减MovieClip的x
和y
位置。x
的{{1}}和y
值没有帮助。也没有将MovieClip
设置为true。世界上有什么可能导致这个问题?
提前致谢。
答案 0 :(得分:1)
在相同的限制条件下,我遇到了同样的问题。当我为游戏添加内容时,这已成为一个问题。 这些选项大大减少了工件:
答案 1 :(得分:0)
我不知道确切的技术原因(我猜它与屏幕刷新率与FPS有关)但我很确定它是一个屏幕工件而不是真正的渲染错误(这是为什么你不能在屏幕截图上得到它)。您可以尝试多种方法来减少效果,例如某种运动模糊:
//on your game loop
mc.filters = [new BlurFilter(Math.abs(speed.x), Math.abs(speed.y),3)];
或者其他视觉调整......但是记住这个事情在黑圈/白背景情况下非常明显,但是在更复杂的情况下,眼睛更宽容。
我不确定是否有技术解决方案(跨机器/操作系统/浏览器可靠),但您也可以尝试使用optimizing your game loop(blitting + stable framerate + updateAfterEvent())等内容。虽然我不确定结果是否会像人们想的那样(我猜它可以帮助一点)。