Найти - Пользователи
Полная версия: Как в Pygame осуществить перенос картинки на экране?
Начало » Python для экспертов » Как в Pygame осуществить перенос картинки на экране?
1
gogame
Хочу переместить мышкой спрайт на экране, управлять элементом мышкой а не клавишами и чтобы новые координаты присваивались к элементу
Romissevd
получайте координаты от мышки и вносите их при обновлении спрайта
 pygame.mouse.get_pos() # получение координат мыши
gogame
Romissevd
получайте координаты от мышки и вносите их при обновлении спрайта
Координаты получить это хорошо, но вот как же осуществить перенос? Натолкните на мысль, пожалуйста
Если координаты такие то и это клик мышки то присваивать новые координаты картинке? Но как же тогда взять её
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]])
gogame
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()
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:
            if event.button == 1:
                pos = pygame.mouse.get_pos()
                screen.fill(BLACK)
                screen.blit(img, [pos[0], pos[1]])
    pygame.display.flip()
pygame.quit()
gogame
Romissevd
Почему копирование? Это рисование объекта, на другой областиblit().Не пойму зачем Вы делите перемещение на два клика. Можно в один вот так:
Понял, благодарю за помощь!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB