Mar-19-2020, 09:26 PM
Guys I have a problem is doing the boundaries of my pygame
I am trying to get the character not go above the pygame window
The code in the bottom is my game and all the way at the bottom is where I am trying to do the boundaries I got the sides but I can't manage to get the top and bottom.
I am trying to get the character not go above the pygame window
The code in the bottom is my game and all the way at the bottom is where I am trying to do the boundaries I got the sides but I can't manage to get the top and bottom.
import pygame, sys from pygame.locals import * import random pygame.init() width, height = 640,480 hbox = 20 vbox = 20 controls =[False, False, False, False] playerpos =[100,100] red = (255, 0, 0) green = (0, 255, 0) blue = (0, 0, 255) screen=pygame.display.set_mode((width, height)) rect = pygame.Rect(300, 220, hbox, vbox) player = pygame.image.load("resources/images/pac.png") grass = pygame.image.load("resources/images/grass.png") coin = pygame.image.load("resources/images/coin.png") player = pygame.transform.scale(player, (30,30)) coin = pygame.transform.scale(coin, (20,20)) l = random.randint(0,480) k = random.randint(0,640) n = random.randint(480,640) walls = ( pygame.Rect(0, 0, 640, 10), pygame.Rect(0, 0, 10, 480), pygame.Rect(630, 0, 10, 480), pygame.Rect(0, 470, 640, 10), ) bar = ( pygame.Rect(230, 170, 160, 10), pygame.Rect(230, 170, 10, 140), pygame.Rect(230, 310, 160, 10), pygame.Rect(390, 170, 10, 150), ) while 1: screen.fill(0) moved = None for x in range(width//grass.get_width()+1): for y in range(height//grass.get_height()+1): screen.blit(grass,(x*100,y*100)) screen.blit(player, playerpos) screen.blit(coin, (l,k)) for wall in walls: pygame.draw.rect(screen, pygame.Color("red"), wall) for bars in bar: pygame.draw.rect(screen, pygame.Color("red"), bars) pygame.display.flip() for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key==K_w: controls[0]=True elif event.key==K_a: controls[1]=True elif event.key==K_s: controls[2]=True elif event.key==K_d: controls[3]=True if event.type == pygame.KEYUP: if event.key==pygame.K_w: controls[0]=False elif event.key==pygame.K_a: controls[1]=False elif event.key==pygame.K_s: controls[2]=False elif event.key==pygame.K_d: controls[3]=False if controls[0]: playerpos[1]-=2 print(playerpos[0],",",playerpos[1]) #sleep(1) elif controls[2]: playerpos[1]+=2 print(playerpos[0],",",playerpos[1]) if controls[1]: playerpos[0]-=2 print(playerpos[0],",",playerpos[1]) elif controls[3]: playerpos[0]+=2 print(playerpos[0],",",playerpos[1]) if playerpos>=[600,0]: controls[3] = False elif playerpos<=[10,0]: controls[1] = False elif playerpos<=[0,-440]: controls[2] = False if event.type==pygame.QUIT: pygame.quit() exit(0)