Jun-11-2019, 06:21 PM
(This post was last modified: Jun-11-2019, 06:21 PM by BubblesTheGiraffe.)
The title basically says it all, I'm currently getting started with pygame and whenever I use the draw rect function and try to move the rectangle it stretches instead. I put comments in my code wherever code related to the rectangles is.
[python] 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, thingy]) #-------------------------------------------------------------------- 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_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.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: x_change = 0 if event.type == pygame.KEYDOWN: if event.key == pygame.K_a: x_change = -5 elif event.key == pygame.K_d: x_change = 5 if event.type == pygame.KEYUP: if event.key == pygame.K_a or event.key == pygame.K_d: 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) #-------------------------------------------------------------------- pygame.display.update() clock.tick(60) quit() pygame.quit() return game_loop()