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
#2
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.
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.
Reply


Messages In This Thread
RE: pygame.draw.rect function stretches across the screen instead of moving - by SheeppOSU - Jun-11-2019, 08:03 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  pygame full screen help corsasri 2 2,740 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 952 Apr-30-2023, 10:11 PM
Last Post: deanhystad
  [PyGame] Rect object penetrates wall on one side Jan_97 4 2,462 Dec-30-2021, 11:08 PM
Last Post: Jan_97
  [PyGame] printing integers on pygame.draw.rect Shyckh 1 2,475 Aug-22-2020, 11:44 AM
Last Post: metulburr
  [PyGame] Pygame : clearing a screen issue Reldaing 4 6,027 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,282 Mar-07-2020, 12:32 PM
Last Post: Kris1996
  rect object not loading BlueClaw 2 4,107 Dec-11-2019, 04:25 PM
Last Post: BlueClaw
  [PyGame] How to Display pygame on SSD1351 screen kalihotname 0 1,831 Nov-11-2019, 07:32 AM
Last Post: kalihotname
  Pygame sprite not moving michael1789 1 2,782 Nov-10-2019, 03:54 AM
Last Post: michael1789
  moving bullets up the screen using y-coordinate allusernametaken 4 2,528 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