首页 > 解决方案 > 如何在 PyGame 中创建一个矩形作为精灵

问题描述

我只是想在 pygame 中创建一个矩形作为变量,但它显示了一个错误。我真的不知道如何解决它。谁能帮我?编码:

import pygame as py

screen = py.display.set_mode((1200, 700))
screen.fill((0, 0, 0))
rocket = py.draw.rect((screen), (225, 225, 225), (600, 350))
py.display.flip()

错误:

Traceback (most recent call last):
  File "C:\Users\user\Desktop\Python\Project files\shooter_game.py", line 24, in <module>
    rocket = py.draw.rect((screen), (225, 225, 225), (600, 350))
TypeError: Rect argument is invalid

标签: pythonpygamepython-3.8

解决方案


的第三个参数pygame.draw.rect()必须是一个大小为 4 的元组。元组指定一个具有位置和大小的矩形:

py.draw.rect((screen), (225, 225, 225), (0, 0, 600, 350))

py.draw.rect((screen), (225, 225, 225), (600, 350, 20, 20)) 

pygame.draw.rect()不生成pygame.Surface对象。该操作在表面上绘制一个矩形并返回一个pygame.Rect对象。
如果你想生成一个可以是一个表面的矩形对象,blit那么你必须生成一个具有统一颜色的对象:pygame.Surfacefill()

rocket = py.Surface((20, 20))
rocket.fill((225, 225, 225))
screen.blit(rocket, (600, 350))

推荐阅读