さて、私は Pyglet で小さなゲーム/プロトタイプを作成しています。イベントについて混乱しています。ゲームはうまく動作しません.プロファイリングによりon_draw()
、pyglet.clock.schedule_interval()
. on_draw()
が現在、手に入れることができるすべての CPU を使用している理由が正確にはわかりません。さらにプロファイリングを行うと、100 個のスプライトを描画するのに、必要以上に多くの CPU が必要であることがわかります (CPU を使用する必要があるのか、GPU のみを使用する必要があるのかさえわかりません)。
- はデフォルトで何
on_draw()
をしますか? 無駄な余分なものを避けることができますか? schedule_interval()
トリガーしないようにするにはどうすればよいon_draw()
ですか?- 効果的な描画/ブリッティング方法はありますか?
いくつかのコード:
screen = pyglet.window.Window(800, 600, vsync=False, caption="Project")
tileimage = pyglet.image.create(50, 50, pyglet.image.SolidColorImagePattern((0, 255, 0, 255)))
class tileclass(pyglet.sprite.Sprite):
def __init__(self, x, y):
pyglet.sprite.Sprite.__init__(self, tileimage)
self.x = x
self.y = y
self.rect = pygame.Rect(self.x - self.width / 2, self.y - self.height / 2, self.width, self.height)
self.image.anchor_x = self.width // 2
self.image.anchor_y = self.height // 2
tiles = []
x = 25
y = 25
for i in range(100):
tiles.append(tileclass(x, y))
if x == 475:
x = 25
y+=50
else:
x+=50
@screen.event
def on_draw():
screen.clear()
for t in tiles:
t.draw()
fps.draw()
pyglet.clock.schedule_interval(update, 1/60) #Logic stuff
ありがとう。