Wieczne początki z Pythonem i programowaniem
Chciałem w ramach treningu napisać kod który wyświetla dwa kwadraty. Poruszamy jednym z nich (niebieskim) wokół zielonego tak aby kwadrat sterowany przez użytkownika nie „wchodził” na zielony. Tu pojawia się moje pytanie. Chciałem to zrobić jak poniżej. Przy tym kodzie współrzędna x obu kwadratów, po ich zetknięciu jest jednak przy każdym obiegu pętli zdarzeń while taka sama. Niebieski kwadrat po zetknięciu z zielonym nie przesuwa się w lewo i prawo.
czy da się stworzyć taki warunek if aby dało się przesunąć kwadrat niebieski w prawo, za zielony kwadrat ( przy użyciu
if event.key==pygame.K_UP:
lub cofnąć go w lewo.
Z góry dziękuję za pomoc. Pozdrawiam
import pygame
from sys import exit
pygame.init()
screen=pygame.display.set_mode((800,400))
pygame.display.set_caption('Square')
clock=pygame.time.Clock()
GREEN=(0,255,0)
BLUE=(0,0,255)
green_square_x_pos=500
green_square_y_pos=100
blue_square_x_pos=250
blue_square_y_pos=100
while True:
for event in pygame.event.get():
if event.type==pygame.QUIT:
pygame.quit()
exit()
if event.type==pygame.KEYDOWN:
if event.key==pygame.K_LEFT:
if(square_green.left==square_blue.right):
blue_square_x_pos==green_square_x_pos
else:
blue_square_x_pos-=2
if event.key==pygame.K_RIGHT:
if(square_blue.right==square_green.left):
blue_square_x_pos==green_square_x_pos
else:
blue_square_x_pos+=2
screen.fill((0,0,0))
square_green=pygame.draw.rect(screen,GREEN,(green_square_x_pos,green_square_y_pos,100,100))
square_blue=pygame.draw.rect(screen,BLUE,(blue_square_x_pos,blue_square_y_pos,100,100))
pygame.display.update()
clock.tick(60)