Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 29, 2017 19:29:37

gogame
Зарегистрирован: 2017-01-26
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как в Pygame осуществить перенос картинки на экране?

Хочу переместить мышкой спрайт на экране, управлять элементом мышкой а не клавишами и чтобы новые координаты присваивались к элементу

Офлайн

#2 Янв. 29, 2017 19:59:58

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Как в Pygame осуществить перенос картинки на экране?

получайте координаты от мышки и вносите их при обновлении спрайта

 pygame.mouse.get_pos() # получение координат мыши

Отредактировано Romissevd (Янв. 29, 2017 20:00:15)

Офлайн

#3 Янв. 29, 2017 22:22:06

gogame
Зарегистрирован: 2017-01-26
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как в Pygame осуществить перенос картинки на экране?

Romissevd
получайте координаты от мышки и вносите их при обновлении спрайта
Координаты получить это хорошо, но вот как же осуществить перенос? Натолкните на мысль, пожалуйста
Если координаты такие то и это клик мышки то присваивать новые координаты картинке? Но как же тогда взять её

Офлайн

#4 Янв. 29, 2017 22:35:14

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Как в Pygame осуществить перенос картинки на экране?

 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]])

Офлайн

#5 Янв. 30, 2017 17:19:07

gogame
Зарегистрирован: 2017-01-26
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как в Pygame осуществить перенос картинки на экране?

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()

Офлайн

#6 Янв. 30, 2017 17:56:42

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Как в Pygame осуществить перенос картинки на экране?

Почему копирование? Это рисование объекта, на другой области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)

Офлайн

#7 Янв. 31, 2017 08:41:33

gogame
Зарегистрирован: 2017-01-26
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как в Pygame осуществить перенос картинки на экране?

Romissevd
Почему копирование? Это рисование объекта, на другой областиblit().Не пойму зачем Вы делите перемещение на два клика. Можно в один вот так:
Понял, благодарю за помощь!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version