способ порождать машину на указанных полосах и повторять функцию - PullRequest
2 голосов
/ 25 апреля 2020

Я делаю игру по вождению на лейн, используя 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...