python - 如何将对象移动到特定坐标python pygame?
问题描述
我有一堆单独的线条,它们构成了“狗”的一个“形状”。
我希望能够将此形状放在屏幕上的任何位置。
例如,我的游戏会生成狗。如果玩家只有一条狗,我希望第一条生成的狗在顶部。如果他们有两个,我希望新的位于第一个之下。等等。
我正在使用 Python 和 PyGame,但我可以导入不同的模块。
到目前为止,这是我的游戏代码:
#initialise
import pygame
pygame.init()
#colours
black = (0, 0, 0)
white = (255, 255, 255)
gameDisplay = pygame.display.set_mode((800, 600))
gameDisplay.fill(white)
#lines (dog)
pygame.draw.line(gameDisplay, black, (195, 250), (500, 250), 5) #back
pygame.draw.line(gameDisplay, black, (500, 250), (580, 450), 5) #tail
pygame.draw.line(gameDisplay, black, (580, 450), (480, 330), 5) #tail
pygame.draw.line(gameDisplay, black, (480, 330), (480, 500), 5) #back leg
pygame.draw.line(gameDisplay, black, (480, 500), (450, 500), 5) #back paw
pygame.draw.line(gameDisplay, black, (450, 500), (450, 350), 5) #back leg
pygame.draw.line(gameDisplay, black, (450, 350), (200, 350), 5) #belly
pygame.draw.line(gameDisplay, black, (200, 350), (200, 500), 5) #front leg
pygame.draw.line(gameDisplay, black, (200, 500), (170, 500), 5) #front paw
pygame.draw.line(gameDisplay, black, (170, 500), (170, 300), 5) #front leg
pygame.draw.circle(gameDisplay, black, (150, 260), 50, 5) #head
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
pygame.display.update()
解决方案
使用pygame.draw.lines
而不是pygame.draw.lines
. pygame.draw.lines
绘制多个连续的直线段。
例如:
points = [(195, 250), (500, 250), (580, 450), (480, 330)]
pygame.draw.lines(gameDisplay, black, False, points, 5)
使用列表推导生成一个带有翻译坐标的新列表:
def draw_lines(surf, color, trans_x, trans_y, points, width=0):
trans_points = [(trans_x + p[0], trans_y + p[1]) for p in points]
pygame.draw.lines(surf, color, False, trans_points, width)
draw_lines(gameDisplay, black, False, 100, 100, points, 5)
推荐阅读
- pygame - 使用 pygame 的多人游戏
- python - ValueError:无法将字符串转换为浮点数:'"""'
- laravel - 前面的欺骗性网站
- python - 如何将用户输入限制为预先指定的单词数?
- pine-script - 布尔值 - 这个栏是从最近的 10 个周期开始的吗?
- ssh - putty 如何在不与用户进行任何交互的情况下运行命令?
- django - 如何在 Django URL 中正确重定向,我在重定向时遇到问题
- python - N阶差和N阶差
- terraform - 使用 Terraform 将 Helm 部署到 GKE 时经常出错
- javascript - 搜索html表格