def __init__(self, batch, groups): pools = { "player": toyblock3.Manager(Player, 4, batch, groups), "platform": toyblock3.Manager(Platform, 64, batch, groups[0]), "bullet": toyblock3.Manager(Bullet, 128, batch, groups[2]), "explosion": toyblock3.Manager(Explosion, 128, batch, groups[3]), "powerup": toyblock3.Manager(Powerup, 32, batch, groups[3]) } super().__init__(pools)
def __init__(self, n_players, start_id): pools = { "player": toyblock3.Manager(Player, n_players), "platform": toyblock3.Manager(Platform, 64), "bullet": toyblock3.Manager(Bullet, 128), "explosion": toyblock3.Manager(Explosion, 128), "powerup": toyblock3.Manager(Powerup, 32) } super().__init__(pools) self.start_id = start_id self.id_generator = None self.regenerate_id()
def test1_manager(self): class IncrementSystem(toyblock3.System): def _update(self, entity): entity.value += 1 increment_system = IncrementSystem() class PrintSystem(toyblock3.System): def _update(self, entity): print(entity, entity.value) print_system = PrintSystem() class Box: DEFAULT_VALUE = 0 SYSTEMS = (increment_system, print_system) def __init__(self, value=0): self.value = value def reset(self): self.value = self.DEFAULT_VALUE print("reset value", self.value) box_manager = toyblock3.Manager(Box, 4, 7) a_box = box_manager() increment_system() print_system() a_box.free() increment_system() print_system()
def test2_free_all(self): class B: SYSTEMS = () def reset(self): pass a_manager = toyblock3.Manager(B, 10) for i in range(7): a_manager() self.assertEqual(len(a_manager.pool.used), 7, "No 7 entities used") a_manager.free_all() self.assertEqual(len(a_manager.pool.used), 0, "No all entities freed")
def test_bullets_freed_in_blastzone(self): self.collided = False self.ManagedBullet = toyblock3.Manager(server.entity.Bullet, 3) bullet = self.ManagedBullet() polytanks.system.collision.register_callbacks( (polytanks.collision.BULLET, polytanks.collision.BLAST_ZONE), end=self._bullet_blastzone ) self._run_once() self.assertTrue(self.ManagedBullet.pool.used, "Bullet is freed!") bullet = self.ManagedBullet() bullet.body.y = -82 self._run_once() self.assertTrue(self.ManagedBullet.pool.used, "Bullet is not freed!")
import toyblock3 import polytanks import polytanks.entity import server.engine import server.entity import server.protocol import server.server import server.gamemode import client.scene import client.client """ Estos son test generales, tanto del servidor como del cliente, para el juego. """ ManagedBlastzone = toyblock3.Manager(polytanks.entity.Blastzone, 1) ManagedBlastzone() SERVER = ("127.0.0.1", 1337) class TestBullets(unittest.TestCase): def test_bullets_freed_in_blastzone(self): self.collided = False self.ManagedBullet = toyblock3.Manager(server.entity.Bullet, 3) bullet = self.ManagedBullet() polytanks.system.collision.register_callbacks( (polytanks.collision.BULLET, polytanks.collision.BLAST_ZONE), end=self._bullet_blastzone ) self._run_once() self.assertTrue(self.ManagedBullet.pool.used, "Bullet is freed!")