Top.Mail.Ru
Ответы

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

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

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

Этот код моя игра, запустите ее и вы все поймете( только не забудьте вставить картинки !)

По дате
По рейтингу
Аватар пользователя
Знаток

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