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 as starfield.glsl from the previous chapter
  • The game.atlas texture map hosts ...

Get Kivy Blueprints now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.