Я делаю игру по вождению на лейн, используя pygame. Мне нужен способ вызывать вражескую машину на указанных линиях и повторять эту функцию, чтобы противник мог появляться, пока не обнаружит столкновение. Я использую очень плохой метод, чтобы порождать вражескую машину, мне нужна помощь, чтобы это исправить. У меня есть три полосы, и я указал координаты, которые работают на моем компьютере. Мне нужен способ порождать 2 машины на 2 отдельных дорожках или 1 машину, что происходит случайным образом.
import pygame
import random
pygame.init()
screen = pygame.display.set_mode((500, 800))
pygame.display.set_caption("road game")
# background
background = pygame.image.load('roadgame.png')
# player
playerimg = pygame.image.load('player.png')
playerx = 220
playery = 660
playerx_change = 0
# enemy or car
num_of_car = 2
cary = 10
car_state = "parked"
car_change = -5
index = random.randint(0,2)
inde = index
randx = [312, 215, 120]
for i in randx:
carx = randx[inde]
carimg = pygame.image.load('mycar.png')
# functions
def player(x, y):
screen.blit(playerimg, (x, y))
def car(x, y):
screen.blit(carimg, (x, y))
#enemy movement
def carmove(x, y):
global car_state
if car_state == "parked":
screen.blit(carimg, (x + 0, y + 10))
# car_state = "moving"
# game loop
running = True
while running:
screen.fill((0, 0, 0))
screen.blit(background, (0, 0))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
playerx_change = -2
if event.key == pygame.K_RIGHT:
playerx_change = +2 # right = +
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
playerx_change = 0
playerx += playerx_change
# boundaries for player
if playerx <= 114:
playerx = 114
elif playerx >= 325:
playerx = 325
if car_state == "parked":
carmove(carx, cary)
cary -= car_change
if cary == 600:
car_state ="parked"
# updates
carmove(carx, cary)
car(carx, cary)
player(playerx, playery)
pygame.display.update()