Example #1
0
class JamMode(JamModeUpdate, GameMode):
    def __init__(self):
        GameMode.__init__(self)

        self.camera = Camera((700,400), (), 10, 100)
        self.court = Court()
        self.entities = []

        self.physics = CapsuleManager(Court.getBounds())
        self.totalTime = 0
        self.font = pygame.font.SysFont(None, 36)
        self.score = [0, 0]


    def init(self):

        self.player = self.addEntity(Baller(Vec3d(0, 0, 0)))
        self.computer = self.addEntity(Baller(Vec3d(5, 0, 0)))
        self.computer.input = AIController(self.computer)
        self.computer.color = 0x00AAFF
        self.computer.net = 1

        self.ball = self.addEntity(Ball(Vec3d(0, 0, 0)))


    def goal(self, net, points):
        self.score[(net + 1) / 2] += points


    def addEntity(self, entity):
        self.physics.addCapsule(entity.capsule)
        self.entities.append(entity)
        entity.register(self)
        return entity


    def draw(self, canvas):
        self.court.draw(self.camera, canvas)

        self.entities = sorted(self.entities, key=lambda entity: -entity.pos.z)
        for entity in self.entities:
            entity.draw(canvas, self.camera.toScreen(entity.pos), self.camera.getDepthModifier(entity.pos))

        text = self.font.render("%d:%d" % (self.score[1], self.score[0]), False, (0, 0, 0))
        canvas.blit(text, (340, 15))