我正在制作一款名为 StarDodger 的游戏,我正在制作激光从船上射击
船舶坐标与鼠标坐标相同,我希望 lser inamge 从船舶坐标开始,然后让激光停留在 x 坐标并垂直移动
问题是当我尝试获取坐标时,它们会在每一秒都发生变化,因为游戏正在循环中更新
所以当我按下鼠标按钮和laser = True时我需要一种方法来获取坐标并将这些坐标保存到一个变量中,直到我再次按下它才会改变
这是发射激光的方法:
def laser_shoot(self):
self.laser_img = pygame.image.load('rec/game/laser.png')
self.laser_img_r = self.laser_img.get_bounding_rect()
self.mouse_pos = pygame.mouse.get_pos()
self.mouse_x, self.mouse_y = self.mouse_pos
self.laser_img_r.y+=15
(self.laser_x, self.laser_y) = (self.mouse_x,self.laser_img_r.y)
screen.blit(self.laser_img,(self.laser_x, self.laser_y))
激光只发射if self.laser == True and pygame.mouse.get_pressed()[0]:
它现在所做的是获取鼠标的 x 和 y 坐标,然后在鼠标 x 坐标上闪烁激光,并使 y 坐标为 15,而不是在每次游戏循环时循环并将激光 y pos 更改为 15