Baris Guzle Ответов: 2

Добавить старт стоп в автомобиль


<pre>#Wagen Detectie
#Grensdetectie
#Baris Güzle
import pygame

#Kleuren
Zwart = (0,0,0)
Wit = (255,255,255)
Donker_Groen = (0,130,0)
Bruin = (75,35,0)

#Spelgegevens
screen_width = 800 #Schermbreedte
screen_heigth = 600 #Schermhoogte
FPS = 100 #Frames/Seconde

#Cargegevens
car_width = 60
car_heigth = 10
car_wheel = 5
car_speed = 2

car_positionX = screen_width*0.1
car_positionY = screen_heigth*0.9


pygame.init()
gameScreen = pygame.display.set_mode((screen_width,screen_heigth))
pygame.display.set_caption('Car')
game = True
clock = pygame.time.Clock()


    
def car_build(startX, startY):
    x = int (startX)
    y = int (startY)

    #Wielen.Cirkel
    pygame.draw.circle(gameScreen, Zwart, (x-15, y),car_wheel)
    pygame.draw.circle(gameScreen, Zwart, (x+15, y),car_wheel)

    #Lichaam.Rechthoke
    pygame.draw.rect(gameScreen, Bruin,(x-20, y-8, car_width-20, car_heigth))
        


def game_loop():
    carY = car_positionY
    carX = car_positionX
    car_speed = 2
    while game:
        
        gameScreen.fill(Wit)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()
        
        car_build(carX,car_positionY )
        pygame.draw.rect(gameScreen, Donker_Groen, (0,int(carY)+5, screen_width, 15))
        pygame.draw.rect(gameScreen, Zwart, [750,500,10,50])
        pygame.draw.rect(gameScreen, Zwart, [50,500,10,50])    

        pygame.display.update()
        if carX + 10 > 750:
          car_speed =-2
        
        
        if carX < 75:
          car_speed = 2
          
        carX += car_speed
        
        clock.tick (FPS)
#Game
game_loop()


Что я уже пробовал:

I have a school project. So I had to write a program, and I did. But the only thing that I need in my program is a start stop. The car has to stop when I press Space and start when I press for example "B".

2 Ответов

Рейтинг:
2

OriginalGriff

Мы более чем готовы помочь тем, кто застрял, но это не значит, что мы здесь, чтобы сделать все это для вас! Мы не можем сделать всю работу, вам либо платят за это, либо это часть ваших оценок, и было бы совсем несправедливо, если бы мы сделали все это за вас.

Поэтому нам нужно, чтобы вы сделали работу, и мы поможем вам, когда вы застряли. Это не значит, что мы дадим вам пошаговое решение, которое вы можете сдать!
Начните с объяснения, где вы находитесь в данный момент и каков следующий шаг в этом процессе. Затем расскажите нам, что вы пытались сделать, чтобы этот следующий шаг сработал, и что произошло, когда вы это сделали.


Рейтинг:
2

CPallini

Вы знаете, машина останавливается, если car_speed является 0. Он (ре)начинается, если car_speed > 0 Итак, справьтесь с этим pygame.KEYDOWN (или KEYUP) событие, ищущее ' ', 'B' ключи и установите скорость соответствующим образом.
Вам также нужно немного изменить логику в цикле, чтобы справиться с особым случаем остановленного автомобиля (который должен оставаться таковым).


Baris Guzle

Я не совсем понимаю, что вы подразумеваете под "if car_speed> 0", потому что автомобиль никогда не останавливается, поэтому скорость никогда не становится 0, но я также заметил, что скорость автомобиля зависит от FPS, а не от скорости автомобиля

CPallini

Положение x автомобиля зависит от скорости car_speed. Вы никогда не увидите, чтобы машина остановилась, потому что игровой цикл, как он есть, не позволяет машине остановиться.

Baris Guzle

Не могли бы вы мне помочь, что я должен написать в программе? потому что я искал часовых