Python Forum
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.