def __init__(self, base, mapNo): self.isListening = False # Holds rigid bodies, joints, controls global params self.world = OdeWorld() self.world.setGravity(0, 0, -9.8) st = SurfaceType() st.load(self.world) del st self.contactgroup = OdeJointGroup() self.space = OdeHashSpace() self.space.setAutoCollideWorld(self.world) self.space.setAutoCollideJointGroup(self.contactgroup) self.space.setCollisionEvent(EventType.ODE_COLLISION) base.accept(EventType.ODE_COLLISION, self.onCollision) self.ball = Ball(self.world, self.space, "Johanneksen pallo") self.level = Level(self, mapNo) self.player = Player("Johannes") self.camera = Camera(base, self.ball)
def test_wawes(self): Orc._velocity = 1 path = [Vector(1, 0), Vector(2, 0)] towers = [Vector(0, 0)] waves = [WavePart([Orc] * 2, Vector(0, 0), path)] level = Level(100, towers, WavesManager(waves, preparation_duration=0, unit_interval=2), '') game = Game(levels=iter((level,))) game.current_level.tick() orcs = self._find(Orc) self.assertEqual(1, len(orcs)) game.current_level.tick() orcs = self._find(Orc) self.assertEqual(1, len(orcs)) game.current_level.tick() orcs = self._find(Orc) self.assertEqual(1, len(orcs))
def levels(): path = [ Vector(320, 600), Vector(320, 420), Vector(290, 360), Vector(211, 338), Vector(170, 293), Vector(168, 244), Vector(212, 180), Vector(318, 170), Vector(385, 178), Vector(477, 162), Vector(588, 237), Vector(710, 255) ] towers = [ Vector(465, 222), Vector(178, 392), Vector(254, 295), Vector(241, 417), Vector(248, 234), Vector(323, 234), Vector(387, 138), Vector(586, 161) ] waves = [ WavePart([Orc] * 3 + [Shaman] * 2, Vector(310, 630), path), WavePart([Bandit] * 15, Vector(310, 630), path, unit_interval=15), WavePart([Orc, Orc, Shaman] * 4, Vector(310, 630), path) ] yield Level(100, towers, WavesManager(waves), 'res/maps/level1.png') path = [ Vector(700, 390), Vector(527, 392), Vector(493, 491), Vector(438, 517), Vector(377, 488), Vector(346, 393), Vector(221, 380), Vector(166, 319), Vector(202, 272), Vector(267, 266), Vector(389, 288), Vector(452, 256), Vector(426, 176), Vector(321, 147), Vector(308, -10) ] towers = [ Vector(438, 458), Vector(437, 396), Vector(299, 442), Vector(247, 330), Vector(305, 218), Vector(379, 232), Vector(390, 122) ] waves = [ WavePart([Orc] * 3 + [Shaman] * 2, Vector(710, 390), path), WavePart([Bandit] * 15, Vector(710, 390), path, unit_interval=15), WavePart([Orc, Orc, Shaman] * 4, Vector(710, 390), path) ] yield Level(200, towers, WavesManager(waves), 'res/maps/level2.png') path1 = [ Vector(309, 148), Vector(472, 155), Vector(577, 186), Vector(625, 281), Vector(592, 383), Vector(461, 490), Vector(397, 514), Vector(402, 624) ] path2 = [ Vector(309, 148), Vector(144, 281), Vector(110, 370), Vector(150, 452), Vector(244, 503), Vector(397, 514), Vector(402, 624) ] towers = [ Vector(400, 470), Vector(318, 470), Vector(243, 448), Vector(199, 406), Vector(192, 346), Vector(213, 305), Vector(92, 251), Vector(511, 382), Vector(547, 322), Vector(551, 263), Vector(495, 215), Vector(414, 206), Vector(325, 211), Vector(474, 110), Vector(586, 128) ] waves = [ WavePart([Orc] * 3 + [Shaman] * 2, Vector(300, -20), path1), WavePart([Bandit] * 15, Vector(300, -20), path2, unit_interval=15), WavePart([Orc, Orc, Shaman] * 4, Vector(300, -20), path1) ] yield Level(200, towers, WavesManager(waves), 'res/maps/level3.png')