Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как можно осуществить такую логику на Pygame которая будет выполнять следующее:

Исмаил Юнусов Ученик (90), на голосовании 10 месяцев назад
Как можно осуществить
такую логику на Pygame которая будет следующее: При нажатии на картинку перемещать эту картинку на 100 пикселей вправо, а потом если правая кнопка снова нажмется на картинку то еще раз переместить эту картинку на 100 пикселей влево. Я написал некий код который только перемещает эту картинку 100 пикселей вправо и я не знаю как перемещать ее ещ раз в исходное положение. Надеюсь тут я найду ответ

  
import pygame
pygame.init

dis=pygame.display.set_mode((1000, 700))
legs = pygame.image.load('Legs.png').convert_alpha()
hair = pygame.image.load('Hair.png').convert_alpha()
body = pygame.image.load('Body.png').convert_alpha()
girl = pygame.image.load('girl.png').convert_alpha()
BLACK =(0,0,0)
WHITE = (225,225,225)
BLUE = (0,0,225)
GREEN = (0, 225, 0)
MAGENTA = (225,0,225)
YELLOW = (225,225,0)
pygame.display.set_caption('Lohushka')
dis.fill(WHITE)



#Создание платья №1
body_width = 114
body_height = 196
body_x = 350
body_y = 10
dis.blit(body, (body_x, body_y))
pygame.display.update()

#Создание волос №2
hair_width = 90
hair_height =134
hair_x = 350
hair_y =200
dis.blit(hair, (hair_x, hair_y))
pygame.display.update()
#Создание ног №3
legs_width = 84
legs_height = 59
legs_x = 350
legs_y = 400
dis.blit(legs, (legs_x, legs_y))
dis.blit(girl, (100, 50))
pygame.display.update()



#ОСновная логика игры(Выборка)
game_over= False
while not game_over:
for event in pygame.event.get():
if event.type==pygame.QUIT:
game_over=True


elif event.type == pygame.MOUSEBUTTONDOWN:

mouse_x, mouse_y = pygame.mouse.get_pos()
for i in range(3):

if body_x <= mouse_x <= body_x + body_width and body_y <= mouse_y <= body_y + body_height:

dis.blit(body, (130, 130))
pygame.display.update()

elif hair_x <= mouse_x <= hair_x + hair_width and hair_y <= mouse_y <= hair_y + hair_height:
dis.blit(hair, (145, 25))
pygame.display.update()

elif legs_x <= mouse_x <= legs_x + legs_width and legs_y <= mouse_y <= legs_y + legs_height:
dis.blit(legs, (143, 425))
pygame.display.update()


pygame.display.update()

pygame.quit()
quit()
Этот код моя игра, запустите ее и вы все поймете( только не забудьте вставить картинки !)
Голосование за лучший ответ
6evermir Знаток (315) 11 месяцев назад
import pygame
pygame.init()

dis = pygame.display.set_mode((1000, 700))
legs = pygame.image.load('Legs.png').convert_alpha()
hair = pygame.image.load('Hair.png').convert_alpha()
body = pygame.image.load('Body.png').convert_alpha()
girl = pygame.image.load('girl.png').convert_alpha()
BLACK = (0, 0, 0)
WHITE = (225, 225, 225)
BLUE = (0, 0, 225)
GREEN = (0, 225, 0)
MAGENTA = (225, 0, 225)
YELLOW = (225, 225, 0)
pygame.display.set_caption('Lohushka')
dis.fill(WHITE)


# Создание платья №1
body_width = 114
body_height = 196
body_x = 350
body_y = 10
dis.blit(body, (body_x, body_y))
pygame.display.update()

# Создание волос №2
hair_width = 90
hair_height = 134
hair_x = 350
hair_y = 200
dis.blit(hair, (hair_x, hair_y))
pygame.display.update()

# Создание ног №3
legs_width = 84
legs_height = 59
legs_x = 350
legs_y = 400
dis.blit(legs, (legs_x, legs_y))
dis.blit(girl, (100, 50))
pygame.display.update()

move_right = False # добавляем флаг перемещения вправо

# Основная логика игры(Выборка)
game_over = False
while not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True

elif event.type == pygame.MOUSEBUTTONDOWN:
mouse_x, mouse_y = pygame.mouse.get_pos()

if body_x <= mouse_x <= body_x + body_width and body_y <= mouse_y <= body_y + body_height:
# если флаг True, перемещаем картинку влево
if move_right:
body_x -= 100
move_right = False
# иначе перемещаем картинку вправо
else:
body_x += 100
move_right = True

dis.fill(WHITE) # очищаем экран
dis.blit(body, (body_x, body_y))
dis.blit(hair, (hair_x, hair_y))
dis.blit(legs, (legs_x, legs_y))
dis.blit(girl, (100, 50))
pygame.display.update()

elif hair_x <= mouse_x <= hair_x + hair_width and hair_y <= mouse_y <= hair_y + hair_height:
dis.blit(hair, (145, 25))
pygame.display.update()

elif legs_x <= mouse_x <= legs_x + legs_width and legs_y <= mouse_y <= legs_y + legs_height:
dis.blit(legs, (143, 425))
pygame.display.update()

pygame.display.update()

pygame.quit()
quit()
Исмаил ЮнусовУченик (90) 11 месяцев назад
Это же просто мой код ?!!
Похожие вопросы