LayeredDirty スプライト グループのスプライトの静的背景の上に pygame でボックスを描画しようとしています。
if e.type == MOUSEMOTION:
if 1 in e.buttons:
# redraw the old box's background
self.layered_group.repaint_rect(self._draw_box)
# update the box size
self._draw_box.width += e.rel[0]
self._draw_box.height += e.rel[1]
pygame.draw.rect(self.surface, RED, self._draw_box)
これは私にエラーを与えます:
File "/usr/lib/python2.7/dist-packages/pygame/sprite.py", line 1036, in repaint_rect
self.lostsprites.append(screen_rect.clip(self._clip))
TypeError: Argument must be rect style object
なしでこれを行うrepaint_rect
と、ボックスは正しく描画されますが、背景は更新されません。
を追加するself.layered_group.set_clip(self._draw_box)
と、エラーはなくなりますが、何も描画されません:
if e.type == MOUSEMOTION:
if 1 in e.buttons:
# redraw the old box's background
self.layered_group.set_clip(self._draw_box)
self.layered_group.repaint_rect(self._draw_box)
self.layered_group.set_clip()
# update the box size
self._draw_box.width += e.rel[0]
self._draw_box.height += e.rel[1]
pygame.draw.rect(self.surface, RED, self._draw_box)
set_clip
andの使い方がわかりませんrepaint_rect
。助けていただければ幸いです。