Форум сайта python.su
Хочу переместить мышкой спрайт на экране, управлять элементом мышкой а не клавишами и чтобы новые координаты присваивались к элементу
Офлайн
получайте координаты от мышки и вносите их при обновлении спрайта
pygame.mouse.get_pos() # получение координат мыши
Отредактировано Romissevd (Янв. 29, 2017 20:00:15)
Офлайн
RomissevdКоординаты получить это хорошо, но вот как же осуществить перенос? Натолкните на мысль, пожалуйста
получайте координаты от мышки и вносите их при обновлении спрайта
Офлайн
pygame.display.set_mode([500, 500]) img = pygame.image.load("path/to/image.png").convert() pos = pygame.mouse.get_pos() screen.blit(img, [pos[0], pos[1]])
Офлайн
RomissevdЭто ведь просто копирование изображения. Нет ли функции обратной “blit”, что при втором клике первая картинка исчезала на первых координатах и соответственно на новом клике появлялась?
counter = 0 pygame.init() screen = pygame.display.set_mode((DISPLAY_WIDTH,DISPLAY_HEIGHT)) img = pygame.image.load("alienBeige.png").convert() run = True while run: for event in pygame.event.get(): if event.type == pygame.QUIT: run = False if event.type == pygame.MOUSEBUTTONDOWN: counter+=1 if event.button == 1: if counter%2 != 0: pos = pygame.mouse.get_pos() screen.blit(img, [pos[0], pos[1]]) else: screen.fill(BLACK) pygame.display.flip() pygame.quit()
Офлайн
Почему копирование? Это рисование объекта, на другой областиblit().
Не пойму зачем Вы делите перемещение на два клика. Можно в один вот так:
counter = 0 pygame.init() screen = pygame.display.set_mode((DISPLAY_WIDTH,DISPLAY_HEIGHT)) img = pygame.image.load("alienBeige.png").convert() run = True while run: for event in pygame.event.get(): if event.type == pygame.QUIT: run = False if event.type == pygame.MOUSEBUTTONDOWN: if event.button == 1: pos = pygame.mouse.get_pos() screen.fill(BLACK) screen.blit(img, [pos[0], pos[1]]) pygame.display.flip() pygame.quit()
Отредактировано Romissevd (Янв. 30, 2017 17:57:09)
Офлайн
RomissevdПонял, благодарю за помощь!
Почему копирование? Это рисование объекта, на другой областиblit().Не пойму зачем Вы делите перемещение на два клика. Можно в один вот так:
Офлайн