I'm relatively new to programming, and even newer to pygame. As a high school IT project, I've decided to create a simple rage platformer game in pygame with a goal to improve my Python skills. I've just started the code after watching a few Clear Code videos (lots of inspiration from him). My main issue I'm running into, regardless of any other bad programming practices or mistakes elsewhere, is that when I blit the surfaces player_surf and background_surf onto the screen, only the bottom one appears when I run the code. I orginally thought it was something wrong with the transparency of the images I was importing, but that wasn't the issue after I fixed that. Then, I thought it might be bliting it off the screen, but if I do them seperately, they work. As I'm extrememly new, I'm not sure what went wrong. I would appreciate any advice.
import pygame
from sys import exit
class GameState():
def __init__(self):
self.state = "cutscene"
def cutscene(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
screen.blit(background_surf, (0, 0))
def main_game(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
screen.blit(player_surf, (screen_x / 2, screen_y / 2))
screen.blit(background_surf, (0, 0))
black = pygame.Color(0, 0, 0)
white = pygame.Color(255, 255, 255)
pygame.init()
screen_x = 800
screen_y = 400
screen = pygame.display.set_mode((screen_x, screen_y))
pygame.display.set_caption("Game")
fps = pygame.time.Clock()
game_state = GameState()
# Background
background_surf = pygame.image.load("Game/Background.png").convert()
background_surf = pygame.transform.smoothscale(background_surf, (screen_x, screen_y))
# Player
player_surf = pygame.image.load("Game/Red_Square.png").convert_alpha()
player_rect = player_surf.get_rect(center=(screen_x / 2, screen_y / 2))
while True:
game_state.main_game()
# game_state.cutscene()
pygame.display.update()
fps.tick(60)