gpt4 book ai didi

python - 我使用 pygame.rect.move 有问题吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:56:39 25 4
gpt4 key购买 nike

我正在使用pygame.rect.move()将按钮移动到实例化时的某个位置。然后从对象列表到存在的 blit,调用菜单按钮以及每帧需要调用的所有函数。按钮不动。

矩形应该完全适合按钮。

我对pygame.rect.move()的使用是否不正确?

这是类(class):

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(),因为它会破坏图像。
我没有使用 Sprite ,因为我想要更多的控制。
我还编写了测试程序,似乎有效,并且我已经将主菜单按钮类重写了3次。同样的问题。

最佳答案

m not using .convert() at the end of an image import because it breaks the images.

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

I'm not using sprites because I want more control.

您可以从 Sprite 派生,然后您可以添加任何您想要的内容,但仍然使用 sprite.Group

关于名称的旁注,菜单将包含按钮。但是从菜单派生的按钮没有意义。

move() 返回已移动的新矩形,move_ip() 修改现有矩形。

或者您可以使用 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

关于python - 我使用 pygame.rect.move 有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17122938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com