A lot of times when something doesn't work, I like to use the print function to see what the heck is going on. When I print the thing_h, I see, it stays at 100. The i can trace it back the the things function. May want to take a look at it. Anyways here you go, this code is kinda sloppy, Sentdex makes good tutorials, except his one in pygame is not all that great.
I'd suggest following the tutorials this forum has. They teach pygame better then the tutorial you are watching.
import pygame import time import random pygame.init() car_width = 99 display_width = 800 display_height = 600 black = (0,0,0) white = (255,255,255) red = (255,0,0) blue = (0,0,255) green = (0,255,0) dark_green = (0,150,0) gameDisplay = pygame.display.set_mode((display_width,display_height)) pygame.display.set_caption("A bit racey") clock = pygame.time.Clock() carImg = pygame.image.load("racecar.png") carImg = pygame.transform.scale(carImg, (100, 90)) #-------------------------------------------------------------------- def things(thingx, thingy, thingw, thingh, color): pygame.draw.rect(gameDisplay, color, [thingx, thingy, thingw, thingh]) #-------------------------------------------------------------------- def text_objects(text, font, color): textSurface = font.render(text, True, color) return textSurface, textSurface.get_rect() def crash(): message_display("You Crashed!") def message_display(text): largeText = pygame.font.Font("freesansbold.ttf" ,115) TextSurf, TextRect = text_objects(text, largeText, red) TextRect.center = ((display_width/2), (display_height/2)) gameDisplay.blit(TextSurf, TextRect) pygame.display.update() time.sleep(2) game_loop() def car(x,y): gameDisplay.blit(carImg,(x,y)) return def game_loop(): x = (display_width * 0.45) y = (display_height * 0.8) x_change = 0 #-------------------------------------------------------------------- thing_width = 100 thing_height = 100 thing_startx = random.randrange(0, display_width - thing_width) thing_starty = -600 thing_speed = 7 #-------------------------------------------------------------------- gameExit = False while not gameExit: print(thing_height) 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.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: x_change = 0 x += x_change gameDisplay.fill(white) #-------------------------------------------------------------------- things(thing_startx, thing_starty, thing_width, thing_height, dark_green) thing_starty += thing_speed #-------------------------------------------------------------------- car(x,y) crashed = False 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 - thing_width) #-------------------------------------------------------------------- pygame.display.update() clock.tick(60) game_loop() pygame.quit() quit()
I'd suggest following the tutorials this forum has. They teach pygame better then the tutorial you are watching.