我在做一个叫星际道奇的游戏,我在做一个激光从船上射击
飞船坐标与鼠标坐标相同,我希望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位置为15
我不清楚没有图像的运动。你知道吗
当你发射子弹/激光时,通常会“产生”一个物体。在LMB上(火是可以的),然后生成
Laser(pos=event.pos)
。它将记住起始位置,并将每隔Laser.update()
增长一次,直到死亡。如果是精灵,你就做self.kill()
。你知道吗相关问题 更多 >
编程相关推荐