簡體   English   中英

我使用pygame.rect.move是否有問題?

[英]Is there an issue with my use of pygame.rect.move?

我正在使用pygame.rect.move()將按鈕移動到實例化的某個位置。 然后從存在的對象列表中調用菜單按鈕,並在每一幀中調用所有需要調用的功能。 該按鈕不會移動。

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次。 同樣的問題。

m在圖像導入結束時不使用.convert(),因為它會破壞圖像。

用什么方式? 您可能需要Alpha版本http://www.pygame.org/docs/ref/surface.html#pygame.Surface.convert_alpha

我不使用精靈,因為我想要更多控制。

您可以從Sprite派生,然后可以添加所需的任何內容,但仍使用sprite.Group

關於名稱的旁注,菜單將包含按鈕。 但是從菜單派生的按鈕沒有任何意義。

move()返回已移動的新rect, move_ip()修改現有rect。

或者您可以使用rect屬性

def setpos(self):
    self.r.topleft = self.p

您在用這段代碼做什么?

    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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM