如何解决python - 如何将对象移动到特定坐标python pygame?
我希望能够将此形状放在屏幕上的任何位置。
例如,我的游戏会生成狗。如果玩家只有一只狗,我希望第一个生成的狗在顶部。如果他们有两个,我希望新的在第一个下面。等等。
我使用 Python 和 PyGame,但我可以导入不同的模块。
这是我目前的游戏代码:
#initialise
import pygame
pygame.init()
#colours
black = (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,5) #back
pygame.draw.line(gamedisplay,(580,450),5) #tail
pygame.draw.line(gamedisplay,(480,330),500),5) #back leg
pygame.draw.line(gamedisplay,(450,5) #back paw
pygame.draw.line(gamedisplay,350),(200,5) #belly
pygame.draw.line(gamedisplay,5) #front leg
pygame.draw.line(gamedisplay,(170,5) #front paw
pygame.draw.line(gamedisplay,300),5) #front leg
pygame.draw.circle(gamedisplay,(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,(580,450),(480,330)]
pygame.draw.lines(gameDisplay,black,False,points,5)
使用 List comprehensions 生成一个带有转换坐标的新列表:
def draw_lines(surf,color,trans_x,trans_y,width=0):
trans_points = [(trans_x + p[0],trans_y + p[1]) for p in points]
pygame.draw.lines(surf,trans_points,width)
draw_lines(gameDisplay,100,5)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。