所以我正在学习Python并想尝试一些图形,所以我试试SFML。我编写了以下程序,一切看起来都不错,但是大约6秒后窗口会变成黑白(但它会不断绘制精灵)。我错过了导致窗口“无效”的东西吗?
from sfml import sf
from math import *
texture = sf.Texture.from_file('gum.png')
sprite = sf.Sprite(texture)
i = 0
w = sf.RenderWindow(sf.VideoMode(1024, 768), "Sprite Test")
w.clear()
w.active = True
while w.is_open:
i += .1
if i == 180:
i = 0
#w.clear()
sprite.position = (cos(i) * i + 500, sin(i) * i + 350)
w.draw(sprite)
w.display()
答案 0 :(得分:1)
你必须轮询事件。否则窗口将不会响应您的窗口管理器并被视为无响应(通常以不同的方式绘制,例如变暗或更亮)。
我从未使用过SFML绑定(所以这可能包含错误),但你很可能需要这样的东西:
while w.is_open:
while w.poll_event(e):
# handle events here
i += .1
# Here follows your code as-is
w.display()