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 O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.