1

我目前正在用 pygame 制作游戏。目前我的游戏有一个问题。

  1. 屏幕的滚动很好,但是一旦图像在第二次后完全滚动(第一次工作正常)屏幕blit变得很奇怪,游戏中的所有精灵都会在之前的位置留下大量的痕迹(检查截图)。这仅仅是因为出于某种奇怪的原因,变量“ x ”在第二次超过屏幕宽度后不会被重置回 0,它在第一次等于 1384 之后重置,但在第二次之后不会重置。

任何帮助是极大的赞赏。

http://pastebin.com/ub6gi8Zn(pastebin 代码不见了)

在背景重复两次之前,Blit 工作正常 在背景重复两次之前,Blit 工作正常 **SCREENSHOT**

gyazo.com/aa5626d4927b0b9299ce2ec42c9ba501 - 在背景重复两次之后 - 抱歉不能添加超过 2 个链接

4

1 回答 1

1

问题是您没有清除屏幕缓冲区。

也就是说,精灵和背景只是被重新绘制在它们自己之上,因为您没有擦除上次在屏幕上绘制这些精灵的像素!

我以前从未使用过 pygame,但这是一个一般的图形编程问题,我尝试查找,您正在寻找的功能似乎是screen.fill(some_color). 你用给定的颜色填充整个屏幕,这样最后绘制的帧的输出就会消失。

顺便说一句,这也是因为您的“背景”没有填满屏幕的整个区域。

于 2013-10-26T23:33:53.700 回答