예제 #1
0
파일: test_items.py 프로젝트: chaosk/tml
    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)
예제 #2
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
예제 #3
0
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)
예제 #4
0
파일: test_items.py 프로젝트: chaosk/tml
 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)
예제 #5
0
파일: test_items.py 프로젝트: chaosk/tml
 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
예제 #6
0
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')