Python SFML window 几秒钟后变暗
Python SFML window goes dark after a few seconds
所以我正在学习 Python 并且想尝试一些图形,所以我正在尝试 SFML。我写了下面的程序,一切看起来都很好,但是 window 在大约 6 秒后变成黑白(但它一直在绘制精灵)。我是不是漏掉了导致 window 变为 "inactive" 的东西?
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()
您必须轮询事件。否则 window 将不会响应您的 window 经理并被视为无响应(通常以不同的方式绘制,例如变暗或变亮)。
我从未使用过 SFML 绑定(因此这可能包含错误),但您很可能需要这样的东西:
while w.is_open:
while w.poll_event(e):
# handle events here
i += .1
# Here follows your code as-is
w.display()
所以我正在学习 Python 并且想尝试一些图形,所以我正在尝试 SFML。我写了下面的程序,一切看起来都很好,但是 window 在大约 6 秒后变成黑白(但它一直在绘制精灵)。我是不是漏掉了导致 window 变为 "inactive" 的东西?
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()
您必须轮询事件。否则 window 将不会响应您的 window 经理并被视为无响应(通常以不同的方式绘制,例如变暗或变亮)。
我从未使用过 SFML 绑定(因此这可能包含错误),但您很可能需要这样的东西:
while w.is_open:
while w.poll_event(e):
# handle events here
i += .1
# Here follows your code as-is
w.display()