我想让标记图标出现在光标的位置并停留在那儿,但是我一直在解决标记图标的问题,总是跟随光标的位置,并且在不按下Z键时消失了] >
因为我已经知道问题是每帧的图钉和光标位置都在更新,所以我想问一下如何使标记图标静态,以便将其放置在那个位置并且不会移动光标周围。
这是我的标记放置代码:
def drop_mark(self, screen, cursorx, cursory): Mark = pygame.image.load("Pin.Png").convert_alpha() if pygame.key.get_pressed()[pygame.K_z]: markx = cursorx marky = cursory screen.blit(Mark, (markx, marky))
这是该函数在代码中的使用:
def main():
screen = pygame.display.set_mode((848, 480))
clock = pygame.time.Clock()
CursorSprite = pygame.image.load("WorldMapReticle.png").convert_alpha()
WorldMapCursor = cursor(CursorSprite, 0, 0)
while True:
events = pygame.event.get()
for e in events:
if e.type == pygame.QUIT:
return
createScreen(screen)
WorldMapCursor.render(screen)
WorldMapCursor.move_right()
WorldMapCursor.move_left()
WorldMapCursor.move_down()
WorldMapCursor.move_up()
WorldMapCursor.drop_mark(screen, WorldMapCursor.x, WorldMapCursor.y)
pygame.display.flip()
clock.tick(60)
if __name__ == '__main__':
main()
我想让标记图标出现在光标的位置并停留在那儿,但是我一直在解决标记图标的问题,总是跟随着光标的位置,然后...
WorldMapCursor
是类cursor
的实例。您根本不需要cursorx
和cursory
参数,因为WorldMapCursor
具有属性x
和y
,并且可以通过任何实例方法中的self.x
和self.y
来访问它们:(请参见Method Objects,Instance Objects和instance attribute)markx
和marky
,您所需要做的就是在函数中定义它们。然后更新这些变量一次。就个人而言,我不会将if pygame.key.get_pressed()[pygame.K_z]:
放到函数中,但要这样做,我将执行以下操作: