Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
pygame screem size
#1
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    

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()
Reply
#2
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.
Reply
#3
(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
Reply
#4
If your screen is 1000 high, the largest pygame window is less because of the window frame.
Reply
#5
(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
Reply
#6
What have you tried?
Reply
#7
(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
Reply
#8
It is probably easiest to make it fixed size and smaller.
Reply
#9
(Oct-23-2022, 01:46 AM)deanhystad Wrote: It is probably easiest to make it fixed size and smaller.
How do I do that
Reply
#10
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.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  My pygame screen size Yegor123 2 1,264 Nov-06-2022, 12:36 AM
Last Post: Yegor123
  size of set vs size of dict zweb 0 2,154 Oct-11-2019, 01:32 AM
Last Post: zweb
  CSV file created is huge in size. How to reduce the size? pramoddsrb 0 10,496 Apr-26-2018, 12:38 AM
Last Post: pramoddsrb
  Pygame*import pygame ImportError: No module named pygame CASPERHANISCH 1 9,763 Jun-05-2017, 09:50 PM
Last Post: nilamo

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020