This is where I'm going to start with.

Hey!

Some time ago I used to practice coding by creating a few games using Python and pygame.

I did so using some how-to videos on Youtube.

Here's a racing game I tried putting together.

There's still some weirdness on how it behaves, but I guess it's almost OK.

I need to figure out how to make the steering not continue to the right after the direction button has been released.

But what I'd really like to do is re-create this game on Godot. It looks like Godot is very easy, so it'll likely not take very long.

Here's the code for the game:


import pygame
import time
import random

pygame.init()

display_width = 1024
display_height = 768

black = (0,0,0)
white = (255,255,255)
red = (255,0,0)
green = (0,255,0)
blue = (0,0,255)

car_width = 73

gameDisplay = pygame.display.set_mode((display_width,display_height))
pygame.display.set_caption("Kilpa-ajo")
clock = pygame.time.Clock()

carImg = pygame.image.load('race car.png')

icon = pygame.image.load("racecar32.png")
pygame.display.set_icon(icon)


def things(thingx, thingy, thingw, thingh, colour):
    pygame.draw.rect(gameDisplay, colour, [thingx, thingy, thingw, thingh])

def car(x,y):
    gameDisplay.blit(carImg, (x,y))

def text_objects(text, font):
    textSurface = font.render(def text, True, red)
    return textSurface, textSurface.get_rect()

message_display(text):
    largeText = pygame.font.Font('freesansbold.ttf', 115)
    TextSurf, TextRect = text_objects(text, largeText)
    TextRect.center = ((display_width/2),(display_height/2))
    gameDisplay.blit(TextSurf, TextRect)

    pygame.display.update()

    time.sleep(2)

    game_loop()

def crash():
    message_display('You crashed!')

def game_loop():
    x = (display_width * 0.45)
    y = (display_height * 0.8)

    x_change = 0

    thing_startx = random.randrange(0, display_width)
    thing_starty = -600
    thing_speed = 7
    thing_width = 100
    thing_height = 100

    gameExit = False

    while not gameExit:

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    x_change = -5
                elif event.key == pygame.K_RIGHT:
                    x_change = 5

            if event.type == pygame.KEYUP:
                if event.type == pygame.K_RIGHT or event.key == pygame.K_LEFT:
                    x_change = 0

        x += x_change

        gameDisplay.fill(white)

        #thingx, thingy, thingw, thingh, colour

        things(thing_startx, thing_starty, thing_width, thing_height, black)
        thing_starty += thing_speed

        car(x,y)

        if x > display_width - car_width or x < 0:
            crash()

        if thing_starty > display_height:
            thing_starty = 0 - thing_height
            thing_startx = random.randrange(0, display_width)

        if y < thing_starty+thing_height:

            if x > thing_startx and x < thing_startx + thing_width or x+car_width > thing_startx and x + car_width < thing_startx + thing_width:
                crash()


        pygame.display.update()
        clock.tick(120)

game_loop()
pygame.quit()
quit()

It might have been smarter to not write the game inside the loop, but call the game from inside the loop instead. Well, maybe I'll do that the next time.

Retracting that. I had named the definition game_loop, so it wasn't actually in the loop, it was just the running part of the game that was called again every time it was stopped.

I really need to warm up my coding skills. I was a beginner before and I feel more like a beginner right now. I can't even read the code I wrote years ago. πŸ˜…

See ya later!

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center