所以我在这里有了这个脚本,并且我得到这个错误的'列表'对象没有属性'get_rect',我不确定如何解决此问题
error 'list' object has no attribute 'get_rect'
这是将我的播放器图像移到我的方形点击框中
def draw(self):
self.topleft = (self.x,self.y)
player_rect = rights.get_rect(center = self.rect.center)
player_rect.centerx += 0 # 10 is just an example
player_rect.centery += 0 # 15 is just an example
这是我的播放器类,我在下面存储代码
# my players class
class player:
def __init__(self,x,y,height,width,color):
self.x = x
self.y = y
self.height = height
self.width = width
self.color = color
self.isJump = False
self.JumpCount = 10
self.fall = 0
self.speed = 5
self.standingleft =[pygame.image.load("s1.png"),
pygame.image.load("s2.png"),
pygame.image.load("s3.png"),
pygame.image.load("s4.png"),
pygame.image.load("s5.png"),
pygame.image.load("s6.png"),
pygame.image.load("s7.png"),
pygame.image.load("s8.png"),
pygame.image.load("s9.png"),
pygame.image.load("s10.png"),
pygame.image.load("s11.png"),
pygame.image.load("s12.png"),
pygame.image.load("s13.png"),
pygame.image.load("s14.png"),
pygame.image.load("s15.png")]
self.standingright = [pygame.image.load("d1.png"),
pygame.image.load("d2.png"),
pygame.image.load("d3.png"),
pygame.image.load("d4.png"),
pygame.image.load("d5.png"),
pygame.image.load("d6.png"),
pygame.image.load("d7.png"),
pygame.image.load("d8.png"),
pygame.image.load("d9.png"),
pygame.image.load("d10.png"),
pygame.image.load("d11.png"),
pygame.image.load("d12.png"),
pygame.image.load("d13.png"),
pygame.image.load("d14.png"),
pygame.image.load("d15.png")]
self.rights = [pygame.image.load("L1.png"),
pygame.image.load("L2.png"),
pygame.image.load("L3.png"),
pygame.image.load("L4.png"),
pygame.image.load("L5.png"),
pygame.image.load("L6.png"),
pygame.image.load("L7.png"),
pygame.image.load("L8.png"),
pygame.image.load("L9.png"),
pygame.image.load("L10.png"),
pygame.image.load("L11.png"),
pygame.image.load("L12.png"),
pygame.image.load("L13.png"),
pygame.image.load("L14.png"),
pygame.image.load("L15.png")]
self.lefts = [pygame.image.load("e1.png"),
pygame.image.load("e2.png"),
pygame.image.load("e3.png"),
pygame.image.load("e4.png"),
pygame.image.load("e5.png"),
pygame.image.load("e6.png"),
pygame.image.load("e7.png"),
pygame.image.load("e8.png"),
pygame.image.load("e9.png"),
pygame.image.load("e10.png"),
pygame.image.load("e11.png"),
pygame.image.load("e12.png"),
pygame.image.load("e13.png"),
pygame.image.load("e14.png"),
pygame.image.load("e15.png")]
self.left_index = 0
self.right_index = 0
self.stand_index = 0
self.anim_index = 0
self.direction = "left"
self.direction = "right"
self.direction = "standright"
self.rights = [pygame.transform.scale(image,(image.get_width()-400,image.get_height()-400)) for image in self.rights]
self.lefts = [pygame.transform.scale(image,(image.get_width()-10,image.get_height()-10)) for image in self.lefts]
self.standingright = [pygame.transform.scale(image,(image.get_width()-10,image.get_height()-10)) for image in self.standingright]
self.standingleft = [pygame.transform.scale(image,(image.get_width()-10,image.get_height()-10)) for image in self.standingleft]
self.rect = pygame.Rect(x,y,height,width)
def draw(self):
self.topleft = (self.x,self.y)
player_rect = rights.get_rect(center = self.rect.center)
player_rect.centerx += 0 # 10 is just an example
player_rect.centery += 0 # 15 is just an example
window.blit(heart, player_rect)
if self.direction == "right":
window.blit(self.right[self.anim_index],self.rect)
self.anim_index += 1
if self.anim_index == len(self.right):
self.anim_index = 0
玩家类玩家类玩家类玩家类玩家类玩家类玩家类玩家类
[所有图像都按比例缩放为相同大小
pygame.transform.scale(image,(image.get_width()-400,image.get_height()-400))
因此,您可以从一个代表性的曲面对象获得尺寸。使用列表中的第一个表面获取尺寸(rights[0]
):
player_rect = rights.get_rect(center = self.rect.center)
player_rect = right[0].get_rect(center = self.rect.center)
您没有指出错误所在的行,但是我可以猜测这是此行。
player_rect = rights.get_rect(center = self.rect.center)
该错误是相对可解释的。 “'列表'对象没有属性'get_rect'”。表示尝试在列表上调用get_rect(),而不是像具有get_rect()的表面那样的对象。
[rights
图像/表面的列表,您正在该列表上调用get_rect(),而不是在列表中的其中之一上调用它。