python-3.x - PyGame - 如何在循环中绘制图像
问题描述
我正在 PyGame 中制作 Brick Breaker 游戏。一切都很好,直到我想用图像交换“矩形砖”。我尝试使用嵌套的 for 循环将它们添加到列表中,然后绘制列表。但是,它们中的每一个都打印在另一个之上。我要改变什么?在此先感谢,这是代码
def create_bricks(self):
self.bricks = []
self.brick = pygame.image.load("brick.png")
self.brick_rect = self.brick.get_rect()
y_pos = 30
for i in range(5):
x_pos = 50
for j in range(8):
self.brick_rect.center = (x_pos, y_pos)
self.bricks.append(self.brick_rect)
x_pos += 60
y_pos += 20
def draw_bricks(self):
for brick in self.bricks:
self.screen.blit(brick, self.brick_rect)
我应该使用 screen.blits 而不是 blit 吗?论据呢?
解决方案
你不断地修改同一个对象的矩形。那是行不通的。
而是创建一个坐标列表,并根据该列表将相同的图像传送到不同的目的地。
推荐阅读
- python - 如何计算 num_fft 值?
- mysql - 如何在续集nodejs中从关联模型中加载没有嵌套对象的属性
- javascript - angular js多文件上传无法使用ngfile上传
- django - 当 proxy_set_header 设置为 $host 时 NGINX 不起作用
- regex - 非捕获组仍在选择元逃生
- java - 给定一组数据,检查它是否是二叉搜索树?
- c# - 剑道网格客户端模板输入隐藏字段单击后变为可编辑
- typo3 - 将变量传递给包含 tx_news 插件的内容对象
- python - 如果满足特定条件,则将字符串与列表列表连接
- heroku - Heroku 不会运行他们的示例 sinatra 应用程序,错误是 bundler: failed to load command: rackup