У меня проблема с движением моей игры в змею. Я нарисовал два прямоугольника, и теперь мне интересно, как я могу заставить эти прямоугольники поворачивать одинаковые координаты. Я уже определил, были первые повороты прямоугольника. Я также хочу, чтобы второй прямоугольник повернулся, когда повернулся первый куб. Вот мой код:
import pygame
import random
pygame.init()
win = pygame.display.set_mode((500, 500))
pygame.display.set_caption("Snake")
class player:
def __init__(self, x, y, width, height, colour, vel):
self.x = x
self.y = y
self.width = width
self.height = height
self.colour = colour
self.vel = vel
class food:
def __init__(self, radius, colour):
self.radius = radius
self.colour = colour
# Variables
run = True
fo = food(10, (100, 0, 0))
man = player(50, 50, 20, 20, (200, 0, 0), 10)
direction = 0
y_food = 100
x_food = 100
y_change = 0
x_change = 0
snake_length = [1,2,3]
y_pos = 0
x_pos= 0
pos_x=50
pos_y =50
while run:
pygame.time.delay(100)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
direction = 0
x_change = -50
y_change = 0
pos_x = man.x
pos_y = man.y
elif keys[pygame.K_RIGHT]:
direction = 1
x_change = 50
y_change = 0
pos_x = man.x
pos_y = man.y
elif keys[pygame.K_UP]:
direction = 2
x_change = 0
y_change = -50
pos_x = man.x
pos_y = man.y
elif keys[pygame.K_DOWN]:
direction = 3
x_change = 0
y_change = 50
pos_x = man.x
pos_y = man.y
x_pos = (pos_x - x_change)
y_pos = (pos_y - y_change)
# head
if direction == 0:
man.x = man.x - man.vel
elif direction == 1:
man.x = man.x + man.vel
elif direction == 2:
man.y = man.y - man.vel
elif direction == 3:
man.y = man.y + man.vel
if y_food - 10 < man.y < y_food + 10:
if x_food < man.x < x_food + 10 or x_food < man.x +20 < x_food + 15:
x_food = random.randint(0, 500)
y_food = random.randint(0, 500)
win.fill((0, 0, 0))
pygame.draw.circle(win, fo.colour, (x_food, y_food), fo.radius)
pygame.draw.rect(win, man.colour, (man.x, man.y, man.width, man.height))
pygame.draw.rect(win, man.colour, (x_pos, y_pos, man.width, man.height))
pygame.display.update()
pygame.quit()