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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
[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() |