pyglet を使用して Python プログラムを作成しています。ソース コードは、私のラップトップ以外のどのコンピューターでも問題なく動作します。私のラップトップは、AMD グラフィックス カードを搭載した唯一のラップトップでもあります: HD4250 です。その Xubuntu 13.04 AMD64、およびグラフィックス ドライバーは X11 オープン ソースのものです。これはどのように見えるかです:
コンストラクターに clear ステートメントを追加すると、画面は適切にビルドされますが、信じられないほど遅くなります。30 秒ごとに最大 2 回更新され、入力にほとんど反応しません。どうすればこれを修正できますか?
OpenGL が問題ではないようです。Qt OpenGL (C++ も) を使用する場合、このような問題はまったくありません。
いくつかの(うまくいけば関連する)コード:
def draw(self):
pyglet.text.Label('Start Screen',
font_name='Arial',
font_size=16,
x=self.window.get_size()[0]/2, y=self.window.get_size()[1]-20,
anchor_x='center', anchor_y='center').draw()
pyglet.text.Label('This side is looking at the enemy',
font_name='Arial',
font_size=16,
x=self.window.get_size()[0]/2, y=self.window.get_size()[1]-60,
anchor_x='center', anchor_y='center').draw()
pyglet.text.Label(self.bottumText,
font_name='Arial',
font_size=16,
x=self.window.get_size()[0]/2, y=20,
anchor_x='center', anchor_y='center').draw()
for y in range(0, len(self.fields)):
for field in self.fields[y]:
if (field.selected):
glColor3f(self.color[0], self.color[1], self.color[2])
# glColor3f(1, 0, 1)
else:
glColor3f(1, 1, 1)
# Draw center
# self.drawCircle(field.x, field.y, 5, [1, 1, 1])
# # Draw top side
pyglet.graphics.draw(2, pyglet.gl.GL_LINES, ('v2i',
(field.x + field.size, field.y + field.size,
field.x - field.size, field.y + field.size)))
# Draw down side
pyglet.graphics.draw(2, pyglet.gl.GL_LINES, ('v2i',
(field.x + field.size, field.y - field.size,
field.x - field.size, field.y - field.size)))
# Draw left side
pyglet.graphics.draw(2, pyglet.gl.GL_LINES, ('v2i',
(field.x - field.size, field.y - field.size,
field.x - field.size, field.y + field.size)))
# Draw right side
pyglet.graphics.draw(2, pyglet.gl.GL_LINES, ('v2i',
(field.x + field.size, field.y - field.size,
field.x + field.size, field.y + field.size)))