0

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_clipandの使い方がわかりませんrepaint_rect。助けていただければ幸いです。

4

0 に答える 0