1

pygame.rect.move()インスタンス化時にボタンを特定の位置に移動するために使用しています。次に、存在する blit するオブジェクトのリストから、メニュー ボタンが呼び出され、各フレームで呼び出される必要があるすべての関数が呼び出されます。ボタンは動かない。

rect はボタンに完全にフィットする必要があります。

私の使い方はpygame.rect.move()間違っていますか?

クラスは次のとおりです。

class menuButton(mainMenu):
    def setpos(self):
        self.r = self.r.move(self.p)
    def __init__(self,i,e,s,p, ai, ao,sa):
        self.t = "Menu Button"
        self.i = pygame.image.load(i)
        self.r = self.i.get_rect()
        self.e = e
        self.ai = ai
        self.ao = ao
        self.p = p
        self.a = 0
        self.i.set_alpha(sa)
        pygame.transform.scale(self.i,s)
        objects.append(self)
        print "%s has been instantiated." % (self.t)
    def logic(self):
        pass
    def animations(self):
        if self.ai == "FADE_IN":
            if(self.i.get_alpha() < 255):
                self.i.set_alpha(self.i.get_alpha() + 1)

    def update(self):
        self.r = self.i.get_rect()
        r = True
        for obj in objects:
            if isinstance(self,type(obj)) == False:
                r = False
        if r == True:
            if self.a == 0:
                self.setpos()
                print self.r
            self.a += 1
            self.logic()
            self.animations()
            screen.blit(self.i,self.r)
            pygame.display.flip()

画像を壊すため、画像のインポートの最後に .convert() を使用していません。
もっと制御したいので、スプライトは使用していません。
テスト プログラムも作成しましたが、うまくいったようです。また、メイン メニューのボタン クラスを 3 回書き直しました。同じ問題。

4

1 に答える 1