python - TypeError:无效的矩形赋值,怎么了?
问题描述
我尝试用宇宙飞船的精灵构建一个游戏,但是当我运行代码时,我得到一个错误 - TypeError: invalid rect assignment
。我不明白我做错了什么。请帮帮我。
import pygame
pygame.init()
size = (600, 600)
Spaceship_position = [260, 510]
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Spaceships")
icon = pygame.image.load("D:\\Yahav\\Cyber\\Cyber_Images\\icon.png")
pygame.display.set_icon(icon)
screen.fill((0, 0, 0))
pygame.display.flip()
class Spaceship(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load("D:\\Yahav\\Cyber\\Cyber_Images\\spaceship.png")
self.rect = self.image.get_rect()
self.rect.bottom = (100, 100)
all_sprites = pygame.sprite.Group()
spaceship = Spaceship()
all_sprites.add(spaceship)
def main():
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
all_sprites.update()
all_sprites.draw(screen)
main()
我需要做什么?
解决方案
问题是由线路引起的
self.rect.bottom = (100, 100)
rect.bottom
是矩形的底部。因此,您为虚拟属性分配了一个值rect.bottom
:
self.rect.bottom = 100
如果要设置左下角,则必须分配一个元组:
self.rect.bottomleft = (100, 100)
Rect 对象有几个可用于移动和对齐 Rect 的虚拟属性:
x,y top, left, bottom, right topleft, bottomleft, topright, bottomright midtop, midleft, midbottom, midright center, centerx, centery size, width, height w,h
所有这些属性都可以分配给:
rect1.right = 10 rect2.center = (20,30)
推荐阅读
- neo4j - Neo4j Aura 和 uuid 问题
- sql - 修改键上的 SQL 连接表
- node.js - 当我尝试获取单元格的值时,Sheets API values.get 偶尔会返回 Loading...
- javascript - 提交+模态框:不触发提交按钮?
- node.js - ssh2 npm 包的“connect”客户端方法中的“authHandler”有哪些示例?
- firebase - 如何允许一名管理员用户编写 Firebase 数据库?在不更改以下所有其他规则的情况下
- snowflake-cloud-data-platform - 雪花,INFORMATION_SCHEMA.TABLE_STORAGE_METRICS 视图,延迟?
- python - Python,Selenium 动作链执行额外任务
- javascript - 当我尝试从 react native 将图像上传到 firebase 存储时,图像不会上传
- python - 如何在熊猫中转换表格?