pygame screem size - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: pygame screem size (/thread-38498.html) Pages:
1
2
|
pygame screem size - Yegor123 - Oct-21-2022 Im making my first pygame and Im having toruble with screen size whenever i Hit run I cant see my player hes like hidden underneath the map Here is an image of the screen [attachment=2054] import pygame from pygame.locals import * pygame.init() screen_width = 1000 screen_height = 1000 screen = pygame.display.set_mode((screen_width,screen_height), pygame.RESIZABLE) pygame.display.set_caption('Platformer') #define game variables tile_size = 50 #load images bg_img = pygame.image.load("sky.png") sun_img = pygame.image.load("sun.png") class Player(): def __init__(self, x, y): img = pygame.image.load("guy1.png") self.image = pygame.transform.scale(img, (50, 90)) self.rect = self.image.get_rect() self.rect.x = x self.rect.y = y self.vel_y = 0 self.jumped = False def update(self): dx = 0 dy = 0 #draw player onto the screen key = pygame.key.get_pressed() if key[pygame.K_SPACE] and self.jumped == False: self.vel_y = -15 self.jumped = True if key[pygame.K_SPACE] == False: self.jumped = False if key[pygame.K_LEFT]: dx -= 5 if key[pygame.K_RIGHT]: dx += 5 #add gravity self.vel_y += 1 if self.vel_y > 10: self.vel_y = 10 dy += self.vel_y #check for collision #update player coordinates self.rect.x += dx self.rect.y += dy if self.rect.bottom > screen_height: self.rect.bottom = screen_height dy = 0 screen.blit(self.image, self.rect) class World(): def __init__(self, data): self.tile_list = [] #load images dirt_img = pygame.image.load("dirt.png") grass_img = pygame.image.load("grass.png") row_count = 0 for row in data: col_count = 0 for tile in row: if tile == 1: img = pygame.transform.scale(dirt_img, (tile_size, tile_size)) img_rect = img.get_rect() img_rect.x = col_count * tile_size img_rect.y = row_count * tile_size tile = (img, img_rect) self.tile_list.append(tile) if tile == 2: img = pygame.transform.scale(grass_img, (tile_size, tile_size)) img_rect = img.get_rect() img_rect.x = col_count * tile_size img_rect.y = row_count * tile_size tile = (img, img_rect) self.tile_list.append(tile) col_count += 1 row_count += 1 def draw(self): for tile in self.tile_list: screen.blit(tile[0], tile[1]) world_data = world_data = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1], [1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 2, 2, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 7, 0, 5, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 1], [1, 7, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 7, 0, 0, 0, 0, 1], [1, 0, 2, 0, 0, 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 2, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 2, 2, 2, 2, 1], [1, 0, 0, 0, 0, 0, 2, 2, 2, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ] player = Player(100, screen_height - 130) world = World(world_data) run = True while run: for event in pygame.event.get(): if event.type == pygame.QUIT: run = False screen.blit(bg_img, (0,0)) screen.blit(sun_img, (100,100)) world.draw() player.update() pygame.display.update() pygame.quit() RE: pygame screem size - deanhystad - Oct-21-2022 What is the size of your display? It doesn't look 1000x1000. I ran your game and your screenshot looks like it is missing several dirt/grass blocks at the bottom of the screen. RE: pygame screem size - Yegor123 - Oct-22-2022 (Oct-21-2022, 04:13 AM)deanhystad Wrote: What is the size of your display? It doesn't look 1000x1000. I ran your game and your screenshot looks like it is missing several dirt/grass blocks at the bottom of the screen.The size display screen is (1920 x 1000) Yeah Idk why Im missing those blocks RE: pygame screem size - deanhystad - Oct-22-2022 If your screen is 1000 high, the largest pygame window is less because of the window frame. RE: pygame screem size - Yegor123 - Oct-22-2022 (Oct-22-2022, 06:24 AM)deanhystad Wrote: If your screen is 1000 high, the largest pygame window is less because of the window frame. Ok so how do I Change my world Data List too fit my screen RE: pygame screem size - deanhystad - Oct-22-2022 What have you tried? RE: pygame screem size - Yegor123 - Oct-23-2022 (Oct-22-2022, 10:09 PM)deanhystad Wrote: What have you tried?I have tried using Pygame.RESIZABLE and ive tried to watch videos on it couldnt find anything. And ive tried too take away rows from the list but nothing has worked yet RE: pygame screem size - deanhystad - Oct-23-2022 It is probably easiest to make it fixed size and smaller. RE: pygame screem size - Yegor123 - Oct-23-2022 (Oct-23-2022, 01:46 AM)deanhystad Wrote: It is probably easiest to make it fixed size and smaller.How do I do that RE: pygame screem size - deanhystad - Oct-23-2022 Set the screen height smaller? That's probably not what you are asking. If the screen is smaller, you'll have to do something with the world. Either have fewer rows (and maybe fewer columns if you want to maintain the aspect ratio), or make the tiles smaller. I think fewer rows is easiest to try. Just delete one or two. Probably not the first or the last. |