User Tools

Site Tools


p5bg:bullet_game

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
p5bg:bullet_game [2024/08/31 01:52] appledogp5bg:bullet_game [2024/09/11 06:42] (current) – removed appledog
Line 1: Line 1:
-= Bullet Game 
-Bullet Game is our near-end stage pygame 2d game framework example. We've already done at least 6 or 7 other games using pygame. So this will document the patterns we have learned. 
  
-We began by "just writing" a game, then the second part was refactoring the game. I wanted to make refactoring it's own project. What are the goals of this refactoring? 
- 
-* Refactoring 
-** Encapsulation 
-** Light Commentary (code commentary) ex. IN and OUT for functions. 
- 
-The primary goal is encapsulation. So, we're going to break up the old main into several new classes. 
- 
-== Screen and Window 
-The first thing we always do is have a Screen class and a Window class. The Screen class defines things like WIDTH and HEIGHT, and the Window class holds the pygame screen and other pygame initialization. 
- 
-Initially, this code would appear at the start of a main.py. Later we moved it into class Game's __init__. However, to keep things clean we made it into it's own class. 
- 
-=== class Screen: 
-<Code:Python> 
-</Code> 
- 
-=== class Window: 
-| def __init__ | This calls pygame.init(). See [[main]] | 
-| setLogo | this sets the little icon in the corner of the screen. It's the icon for the desktop, usually. Normally we don't care about this. | 
-| setCaption | This will set the title of the window. Usually the name of the program or game. | 
-| setFont | This will probably be moved to it's own Font class later. That way we can have multiple fonts if we want and it keeps the code a bit cleaner. | 
- 
-==== full code 
-<Code:Python> 
-import pygame 
- 
-class Window: 
-    def __init__(self): 
-        pygame.init() 
- 
-    def setLogo(self, filename): 
-        self.logo = pygame.image.load(filename) 
-        pygame.display.set_icon(self.logo) 
-        return self.logo 
- 
-    def setCaption(self, cap): 
-        pygame.display.set_caption(cap) 
- 
-    def setSize(self, width, height): 
-        self.width = width 
-        self.height = height 
-        self.size = (width, height) 
-        self.screen = pygame.display.set_mode(self.size) 
-        return self.screen 
- 
-    def setFont(self, filename, size): 
-        pygame.font.init() 
-        self.font = pygame.font.Font(filename, size) 
- 
-        font_width, font_height = self.font.size("@") 
-        self.fontwidth = font_width 
-        self.fontheight = size 
- 
-        return self.font</Code> 
p5bg/bullet_game.1725069178.txt.gz · Last modified: 2024/08/31 01:52 by appledog

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki