Writing the game
Our application is structured around building blocks described earlier: our root widget is a PSWidget
subclass called Game
and all in-game entities will derive from the Particle
class.
Here is the short and sweet base application:
from kivy.base import EventLoop from kivy.clock import Clock class Game(PSWidget): glsl = 'game.glsl' atlas = 'game.atlas' def initialize(self): pass class GameApp(App): def build(self): EventLoop.ensure_window() return Game() def on_start(self): self.root.initialize() Clock.schedule_interval( self.root.update_glsl, 60 ** -1)
The following are the details about external files referenced here:
The
game.glsl
shader file is the same asstarfield.glsl
from the previous chapterThe
game.atlas
texture map hosts the following textures:star
: This texture resembles a star, similar to the one we've used in the previous projectplayer
: This is a spaceship facing to the right (in the general...