Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
assert bck_tilemap[:20, :10] == [
[256, 256, 256, 256, 170, 176, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 171, 173, 177, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 172, 174, 178, 256, 256, 256, 256, 256, 256, 256, 256, 347, 363, 256, 256, 256, 256],
[256, 256, 256, 288, 175, 179, 336, 352, 368, 268, 284, 300, 316, 332, 348, 364, 380, 256, 256, 256],
[256, 257, 273, 289, 305, 321, 337, 353, 369, 269, 285, 301, 317, 333, 349, 365, 381, 256, 256, 256],
[256, 258, 274, 290, 306, 322, 338, 354, 370, 270, 286, 302, 318, 334, 350, 366, 382, 256, 256, 256],
[256, 259, 275, 291, 307, 323, 339, 355, 371, 271, 287, 303, 319, 335, 351, 367, 383, 256, 256, 256],
[256, 256, 276, 292, 308, 324, 340, 356, 372, 272, 320, 260, 261, 262, 361, 182, 346, 256, 256, 256],
[256, 256, 277, 293, 309, 325, 341, 357, 373, 128, 181, 362, 378, 299, 315, 331, 256, 256, 256, 256],
[256, 256, 278, 294, 310, 326, 342, 358, 374, 129, 164, 132, 136, 140, 143, 146, 150, 167, 157, 168]
]
assert isinstance(bck_tilemap.tile(0, 0), Tile)
assert bck_tilemap.tile_identifier(0, 0) == 256
bck_tilemap.use_tile_objects(True)
assert isinstance(bck_tilemap.tile(0, 0), Tile)
assert bck_tilemap.tile_identifier(0, 0) == 256
assert isinstance(bck_tilemap[0, 0], Tile)
assert wdw_tilemap[0, 0] == 256
assert wdw_tilemap[:5, 0] == [256, 256, 256, 256, 256]
assert wdw_tilemap[:20, :10] == [
[256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 230, 224, 236, 228, 256, 241, 242, 224, 240, 242, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 241, 238, 243, 237, 227, 256, 242, 228, 241, 242, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256]
assert bck_tilemap[0, 0] == 256
assert bck_tilemap[:5, 0] == [256, 256, 256, 256, 170]
assert bck_tilemap[:20, :10] == [
[256, 256, 256, 256, 170, 176, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 171, 173, 177, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 172, 174, 178, 256, 256, 256, 256, 256, 256, 256, 256, 347, 363, 256, 256, 256, 256],
[256, 256, 256, 288, 175, 179, 336, 352, 368, 268, 284, 300, 316, 332, 348, 364, 380, 256, 256, 256],
[256, 257, 273, 289, 305, 321, 337, 353, 369, 269, 285, 301, 317, 333, 349, 365, 381, 256, 256, 256],
[256, 258, 274, 290, 306, 322, 338, 354, 370, 270, 286, 302, 318, 334, 350, 366, 382, 256, 256, 256],
[256, 259, 275, 291, 307, 323, 339, 355, 371, 271, 287, 303, 319, 335, 351, 367, 383, 256, 256, 256],
[256, 256, 276, 292, 308, 324, 340, 356, 372, 272, 320, 260, 261, 262, 361, 182, 346, 256, 256, 256],
[256, 256, 277, 293, 309, 325, 341, 357, 373, 128, 181, 362, 378, 299, 315, 331, 256, 256, 256, 256],
[256, 256, 278, 294, 310, 326, 342, 358, 374, 129, 164, 132, 136, 140, 143, 146, 150, 167, 157, 168]
]
assert isinstance(bck_tilemap.tile(0, 0), Tile)
assert bck_tilemap.tile_identifier(0, 0) == 256
bck_tilemap.use_tile_objects(True)
assert isinstance(bck_tilemap.tile(0, 0), Tile)
assert bck_tilemap.tile_identifier(0, 0) == 256
assert isinstance(bck_tilemap[0, 0], Tile)
assert wdw_tilemap[0, 0] == 256
assert wdw_tilemap[:5, 0] == [256, 256, 256, 256, 256]
assert wdw_tilemap[:20, :10] == [
[256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 230, 224, 236, 228, 256, 241, 242, 224, 240, 242, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 241, 238, 243, 237, 227, 256, 242, 228, 241, 242, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
[256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256],
def test_tiles():
pyboy = PyBoy(tetris_rom, window_type="headless", disable_input=True)
pyboy.set_emulation_speed(0)
pyboy.tick()
pyboy.tick()
tile = pyboy.botsupport_manager().tilemap_window().tile(0, 0)
assert isinstance(tile, Tile)
tile = pyboy.botsupport_manager().tile(1)
image = tile.image()
assert isinstance(image, PIL.Image.Image)
ndarray = tile.image_ndarray()
assert isinstance(ndarray, np.ndarray)
assert ndarray.shape == (8, 8, 4)
assert ndarray.dtype == np.uint8
data = tile.image_data()
assert data.shape == (8, 8)
assert [[x for x in y] for y in data
] == [[0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff],
[0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff],
[0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff],
[0xffffffff, 0xff000000, 0xff000000, 0xff000000, 0xff000000, 0xff000000, 0xffffffff, 0xffffffff],
"""
Provides a `pyboy.botsupport.tile.Tile`-object which allows for easy interpretation of the tile data. The
object is agnostic to where it was found in the tilemap. I.e. equal `pyboy.botsupport.tile.Tile`-objects might
be returned from two different coordinates in the tile map if they are shown different places on the screen.
Args:
column (int): Column in this tile map.
row (int): Row in this tile map.
Returns
-------
`pyboy.botsupport.tile.Tile`:
Tile object corresponding to the tile index at the given coordinate in the
tile map.
"""
return Tile(self.mb, self.tile_identifier(column, row))
"""
The Game Boy support sprites of single-height (8x8 pixels) and double-height (8x16 pixels).
In the single-height format, one tile is used. For double-height sprites, the Game Boy will also use the tile
immediately following the identifier given, and render it below the first.
More information can be found in the [Pan Docs: VRAM Sprite Attribute Table
(OAM)](http://bgb.bircd.org/pandocs.htm#vramspriteattributetableoam)
Returns
-------
list:
A list of `pyboy.botsupport.tile.Tile` object(s) representing the graphics data for the sprite
"""
if sprite_height == 16:
self.tiles += [Tile(self.mb, self.tile_identifier + 1)]
self.on_screen = (-sprite_height < self.y < 144 and -8 < self.x < 160)
"""
To disable sprites from being rendered on screen, developers will place the sprite outside the area of the
"""
LCDC = LCDCRegister(self.mb.getitem(LCDC_OFFSET))
sprite_height = 16 if LCDC.sprite_height else 8
self.shape = (8, sprite_height)
"""
Sprites can be set to be 8x8 or 8x16 pixels (16 pixels tall). This is defined globally for the rendering
hardware, so it's either all sprites using 8x16 pixels, or all sprites using 8x8 pixels.
Returns
-------
(int, int):
The width and height of the sprite.
"""
self.tiles = [Tile(self.mb, self.tile_identifier)]
"""
The Game Boy support sprites of single-height (8x8 pixels) and double-height (8x16 pixels).
In the single-height format, one tile is used. For double-height sprites, the Game Boy will also use the tile
immediately following the identifier given, and render it below the first.
More information can be found in the [Pan Docs: VRAM Sprite Attribute Table
(OAM)](http://bgb.bircd.org/pandocs.htm#vramspriteattributetableoam)
Returns
-------
list:
A list of `pyboy.botsupport.tile.Tile` object(s) representing the graphics data for the sprite
"""
if sprite_height == 16:
self.tiles += [Tile(self.mb, self.tile_identifier + 1)]