Beispiel #1
0
 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)
Beispiel #2
0
 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()
Beispiel #3
0
    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()
Beispiel #4
0
    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!")