def test_draw(self): layer = TileLayer(10, 5) tile = Tile(10) layer.set_tile(0, 0, tile) layer.set_tile(0, 4, tile) layer.set_tile(9, 0, tile) layer.set_tile(9, 4, tile) self.layer.set_tile(10, 5, Tile(5)) self.layer.draw(0, 0, layer) self.assertEqual(self.layer.get_tile(0, 0).index, 10) self.assertEqual(self.layer.get_tile(0, 4).index, 10) self.assertEqual(self.layer.get_tile(9, 0).index, 10) self.assertEqual(self.layer.get_tile(9, 4).index, 10) self.assertEqual(self.layer.get_tile(10, 5).index, 5) # assert offset self.layer.draw(5, 3, layer) self.assertEqual(self.layer.get_tile(5, 3).index, 10) self.assertEqual(self.layer.get_tile(5, 7).index, 10) self.assertEqual(self.layer.get_tile(14, 3).index, 10) self.assertEqual(self.layer.get_tile(14, 7).index, 10) self.assertEqual(self.layer.get_tile(10, 5).index, 0) # assert clamping self.layer.draw(49, 48, layer) self.assertEqual(self.layer.get_tile(49, 48).index, 10) self.assertEqual(self.layer.get_tile(49, 49).index, 0)
def txt2map(txt, gamelayer, tilelayer): size = txt.readline().split() width = tilelayer.width = gamelayer.width = int(size[0]) height = tilelayer.height = gamelayer.height = int(size[1]) for y in range(0, height): row = txt.readline().rstrip('\n') x = 0 for c in row: t = Tile() t.index = rgb2tile(txt2rgb(c)) tilelayer.set_tile(x, y, t) t.index = rgb2game(txt2rgb(c)) gamelayer.set_tile(x, y, t) x += 1
def img2map(img, gamelayer, tilelayer): width, height = img.size tilelayer.width = gamelayer.width = width tilelayer.height = gamelayer.height = height for y in range(0, height): for x in range(0, width): rgb = img.getpixel((x, y)) tileidx = rgb2tile(rgb) gameidx = rgb2game(rgb) t = Tile() t.index = tileidx tilelayer.set_tile(x, y, t) t.index = gameidx gamelayer.set_tile(x, y, t)
def test_set_tile(self): tile = Tile(20) for i in range(5): self.layer.set_tile(40 + i, 0, tile) self.assertEqual(self.layer.tiles[40 + i], tile) for i in range(10): self.layer.set_tile(40 + i, 10, tile) self.assertEqual(self.layer.tiles[540 + i], tile) self.assertRaises(ValueError, self.layer.set_tile, 50, 49, tile) self.assertRaises(ValueError, self.layer.set_tile, -1, 49, tile) self.assertRaises(ValueError, self.layer.set_tile, 49, 50, tile) self.assertRaises(ValueError, self.layer.set_tile, 49, -1, tile)
def setUp(self): self.layer = TileLayer() tile = Tile(1) self.layer.set_tile(20, 0, tile) self.layer.set_tile(20, 1, tile) for i in range(5): self.layer.tiles[40 + i] = tile for i in range(10): self.layer.tiles[240 + i] = tile for i in range(6): self.layer.tiles[295 + i * 50] = tile self.layer.tiles[2402] = tile self.layer.tiles[2403] = tile self.layer.tiles[2452] = tile
print(TML_DIR) map_path = os.sep.join([TML_DIR, '/maps/dm1']) t = Teemap(map_path) pickups = { 'shotgun': 0, 'grenade': 0, 'rifle': 0, 'ninja': 0, 'health': 0, 'armor': 0, 'solid': 0, 'air': 0, 'death': 0, 'nohook': 0, } for tile in t.gamelayer.tiles: for key, value in pickups.iteritems(): if tile.index == TILEINDEX[key]: pickups[key] += 1 for k, v in pickups.iteritems(): print '{value:3}x {key}'.format(value=v, key=k) t.gamelayer.tiles[0] = Tile(3) # set first tile x/y 0/0 to unhook t.gamelayer.set_tile(2, 0, Tile(2)) # zilli dreghun stinkt c: print("should be air(0): " + str(t.gamelayer.get_tile(5, 6))) print("should be shield(197): " + str(t.gamelayer.get_tile(3, 7))) print("should be spawn(192): " + str(t.gamelayer.get_tile(10, 10))) t.save('tml_map')