Python Forum
[PyGame] pygame.draw.rect function stretches across the screen instead of moving
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[PyGame] pygame.draw.rect function stretches across the screen instead of moving
#1
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()


    
    
Reply


Messages In This Thread
pygame.draw.rect function stretches across the screen instead of moving - by BubblesTheGiraffe - Jun-11-2019, 06:21 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  pygame full screen help corsasri 2 2,871 Mar-20-2024, 07:35 AM
Last Post: reginarodriguez
  [PyGame] When I hit the space bar from the home screen, it sends me to the game over screen JesusisKing 1 1,003 Apr-30-2023, 10:11 PM
Last Post: deanhystad
  [PyGame] Rect object penetrates wall on one side Jan_97 4 2,551 Dec-30-2021, 11:08 PM
Last Post: Jan_97
  [PyGame] printing integers on pygame.draw.rect Shyckh 1 2,523 Aug-22-2020, 11:44 AM
Last Post: metulburr
  [PyGame] Pygame : clearing a screen issue Reldaing 4 6,163 Jun-23-2020, 09:10 AM
Last Post: JudyLarose
  [PyGame] pygame, help with making a function to detect collision between player and enemy. Kris1996 3 3,346 Mar-07-2020, 12:32 PM
Last Post: Kris1996
  rect object not loading BlueClaw 2 4,156 Dec-11-2019, 04:25 PM
Last Post: BlueClaw
  [PyGame] How to Display pygame on SSD1351 screen kalihotname 0 1,882 Nov-11-2019, 07:32 AM
Last Post: kalihotname
  Pygame sprite not moving michael1789 1 2,846 Nov-10-2019, 03:54 AM
Last Post: michael1789
  moving bullets up the screen using y-coordinate allusernametaken 4 2,596 Nov-10-2019, 02:34 AM
Last Post: allusernametaken

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020