[英]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.