Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
My pygame screen size
#1
Im making a tile game on pygame and I can only see half my player ive tried just about everything ive changed the world data list and gone through tutorials nothing has really helped

from pickle import FALSE
import pygame

from pygame.locals import *

pygame.init()
Clock = pygame.time.Clock()
fps = 60


infoObject = pygame.display.Info()
screen_width = infoObject.current_w
screen_height = infoObject.current_h

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):
        self.images_right = []
        self.images_left = []
        self.index = 0
        self.count = 0
        for num in range (1,3):
            img_right = pygame.image.load(f'guy{num}.png')
            img_right = pygame.transform.scale(img_right, (40, 80))
            img_left = pygame.transform.flip(img_right, True, False)
            self.images_right.append(img_right)
            self.images_left.append(img_left)
        self.image = self.images_right[self.index]
        self.rect = self.image.get_rect()
        self.rect.x = x
        self.rect.y = y
        self.vel_y = 0
        self.jumped = False
        self.direction = 0

    def update(self):
        dx = 0        
        dy = 0
        walk_cooldown = 15

        #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_RIGHT]:
            dx += 5
            self.count += 1
            self.direction = 1
        if key[pygame.K_LEFT]:
            dx -= 5
            self.count += 1
            self.direction = -1
        if key[pygame.K_LEFT] == False and key[pygame.K_RIGHT] == False:
            self.counter = 0
            self.index = 0
            if self.direction == 1:
                self.image = self.images_right[self.index]
            if self.direction == -1:
                self.image = self.images_left[self.index]

        #handle Animation
        
        if self.count > walk_cooldown:
            self.count = 0
            self.index += 1
            if self.index >= len(self.images_right):
                self.index = 0
            if self.direction == 1:
                self.image = self.images_right[self.index]
            if self.direction == -1:
                self.image = self.images_left[self.index]
           
            



        #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, 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, 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:
    
    Clock.tick(fps)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    if event.type == VIDEORESIZE:
        creen = pygame.display.set_mode((event.w, event.h), pygame.RESIZABLE)


    screen.blit(bg_img, (0,0))
    screen.blit(sun_img, (100,100))
 
    world.draw()
    player.update()
    

    pygame.display.update()

pygame.quit()
Larz60+ write Oct-29-2022, 08:00 PM:
Please post all code, output and errors (it it's entirety) between their respective tags. Refer to BBCode help topic on how to post. Use the "Preview Post" button to make sure the code is presented as you expect before hitting the "Post Reply/Thread" button.

Please, forum rules.

Attached Files

Thumbnail(s)
   
Reply
#2
Where is the player sprite? Where is the bottom of the screen?
Reply
#3
(Oct-30-2022, 12:35 AM)deanhystad Wrote: Where is the player sprite? Where is the bottom of the screen?

I already fixed thanks for replying though
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  pygame screem size Yegor123 11 1,665 Oct-23-2022, 02:33 AM
Last Post: Yegor123
Photo PySimpleGUI Adjust SCREEN size Alcrkai 0 1,785 Jun-30-2022, 11:58 AM
Last Post: Alcrkai
  size of set vs size of dict zweb 0 2,117 Oct-11-2019, 01:32 AM
Last Post: zweb
  wn = turtle.screen() AttributeError: module 'turtle' has no attribute 'screen' Shadower 1 6,127 Feb-06-2019, 01:25 AM
Last Post: woooee
  CSV file created is huge in size. How to reduce the size? pramoddsrb 0 10,435 Apr-26-2018, 12:38 AM
Last Post: pramoddsrb
  Pygame*import pygame ImportError: No module named pygame CASPERHANISCH 1 9,708 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