Compare commits

...

2 Commits

Author SHA1 Message Date
97dbe0ed3b Forgot about these two, oops 2025-06-20 19:32:14 +01:00
ac3702747c Re-based to follow thee new new base game 2025-06-20 19:31:09 +01:00
3 changed files with 21 additions and 75 deletions

View File

@ -1,39 +1,42 @@
from PIL import Imgae
import logging import logging
import pygame import pygame
#import NoPELib import gameUtils
#import PDOLib import NoPELib
class Game: class Game(gameUtils.Game):
def __init__(self, surface, size): def __init__(self, *args, **kwargs):
""" """
Ran when the game starts. Ran when the game starts.
Args: You have access to the following variables:
surface (pygame.Surface): The surface you draw to. self.surf (pygame.Surface): This is the surface you draw onto.
size (list[int, int]): The size of the surface. self.pm (NoPELib.PlayerManager): This is where your players are stored.
self.cfg (dict): Everything from the `game.toml` file. You can access it like this: self.details['title']
""" """
pygame.init() # Don't remove this. It does important things. :3
self.surface = surface super().__init__(*args, **kwargs)
self.size = size
def onEvent(self, event): def onEvent(self, event):
""" """
Ran when an event is fired. Ran when an event is fired.
Args: Args:
event (pygame.Event): The event that was fired event (pygame.Event): The event that was fired.
""" """
pass pass
def draw(self): def update(self):
""" """
Ran once per frame, put your drawing code in here Ran once per frame, put your drawing code and any
game logic that should be ran once per frame in here.
""" """
pass pass
def close(self): def close(self):
""" """
Ran when the game closes Ran when the game closes.
""" """
pass pass

View File

@ -1,58 +0,0 @@
# Import the game code
import __init__
import argparse
import tomllib
import pathlib
import pygame
import os
# Store the current working directory
# This is used to revert the cd change
originalCWD = os.getcwd()
# Get the path of the game
basePath = pathlib.Path(__file__).parent.resolve()
# Set the current working directory
# to the base path of the game
os.chdir(basePath)
# Load the game.toml data
with open('game.toml', 'r') as f:
gameData = tomllib.loads(f.read())
# Parse command line arguments
parser = argparse.ArgumentParser(prog=gameData['name'])
parser.add_argument('-sw', '--width', type=int, default=1280)
parser.add_argument('-sh', '--height', type=int, default=720)
parser.add_argument('-f', '--fullscreen', action='store_true')
args = parser.parse_args()
# Initialise screen
flags = 0
if args.fullscreen: flags |= pygame.FULLSCREEN
screen = pygame.display.set_mode((args.width, args.height), flags)
pygame.display.set_caption(gameData['name'])
# Initialise game
game = __init__.Game(screen, screen.size)
# Set to False when the game should exit
run = True
while run:
# Event loop
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
game.onEvent(event)
# Draw loop
game.draw()
# Clean up
os.chdir(originalCWD)
game.close()
pygame.quit()

View File

@ -1,3 +1,4 @@
#../NoPELib/ ../GameUtils/
#../PDOLib/ ../NoPELib/
../PDOLib/
pygame-ce pygame-ce