def update(): global DRAW_CALLS for call in DRAW_CALLS[:constants.MAX_DRAW_CALLS_PER_FRAME]: _draw_list = list(call) if not _draw_list: continue for draw in _draw_list: surface_name, x, y, c, fore_color, back_color = draw _set_char(surface_name, x, y, c, fore_color=fore_color, back_color=back_color) DRAW_CALLS = DRAW_CALLS[constants.MAX_DRAW_CALLS_PER_FRAME:] tcod.console_set_default_background(0, tcod.dark_gray) tcod.console_fill_char(0, SCREEN['c']) tcod.console_fill_background(0, SCREEN['b'][0], SCREEN['b'][1], SCREEN['b'][2]) tcod.console_fill_foreground(0, SCREEN['f'][0], SCREEN['f'][1], SCREEN['f'][2]) _clear_screen() cleanup()
def on_scroll(): if not var.player.level.outside: return _map = var.player.level.color_map libtcod.console_fill_background(var.view, _map[0][var.camera[1]:var.camera[1]+var.window_size[1],var.camera[0]:var.camera[0]+var.window_size[0]], _map[1][var.camera[1]:var.camera[1]+var.window_size[1],var.camera[0]:var.camera[0]+var.window_size[0]], _map[2][var.camera[1]:var.camera[1]+var.window_size[1],var.camera[0]:var.camera[0]+var.window_size[0]])
def _draw_view(view): if view['light_buffer']: tcod.console_fill_foreground( view['console'], numpy.subtract( numpy.add( numpy.subtract(view['col_buffer'][0][0], RGB_LIGHT_BUFFER[0]), view['light_buffer'][0]), view['light_buffer'][1]).clip(0, 255), numpy.subtract( numpy.add( numpy.subtract(view['col_buffer'][0][1], RGB_LIGHT_BUFFER[1]), view['light_buffer'][0]), view['light_buffer'][1]).clip(0, 255), numpy.subtract( numpy.add( numpy.subtract(view['col_buffer'][0][2], RGB_LIGHT_BUFFER[2]), view['light_buffer'][0]), view['light_buffer'][1]).clip(0, 255)) tcod.console_fill_background( view['console'], numpy.subtract( numpy.add( numpy.subtract(view['col_buffer'][1][0], RGB_LIGHT_BUFFER[0]), view['light_buffer'][0]), view['light_buffer'][1]).clip(0, 255), numpy.subtract( numpy.add( numpy.subtract(view['col_buffer'][1][1], RGB_LIGHT_BUFFER[1]), view['light_buffer'][0]), view['light_buffer'][1]).clip(0, 255), numpy.subtract( numpy.add( numpy.subtract(view['col_buffer'][1][2], RGB_LIGHT_BUFFER[2]), view['light_buffer'][0]), view['light_buffer'][1]).clip(0, 255)) else: tcod.console_fill_foreground(view['console'], view['col_buffer'][0][0], view['col_buffer'][0][1], view['col_buffer'][0][2]) tcod.console_fill_background(view['console'], view['col_buffer'][1][0], view['col_buffer'][1][1], view['col_buffer'][1][2]) tcod.console_fill_char(view['console'], view['char_buffer'][0])
def _draw_view(view): if view['light_buffer']: tcod.console_fill_foreground(view['console'], numpy.subtract(numpy.add(numpy.subtract(view['col_buffer'][0][0],RGB_LIGHT_BUFFER[0]),view['light_buffer'][0]),view['light_buffer'][1]).clip(0,255), numpy.subtract(numpy.add(numpy.subtract(view['col_buffer'][0][1],RGB_LIGHT_BUFFER[1]),view['light_buffer'][0]),view['light_buffer'][1]).clip(0,255), numpy.subtract(numpy.add(numpy.subtract(view['col_buffer'][0][2],RGB_LIGHT_BUFFER[2]),view['light_buffer'][0]),view['light_buffer'][1]).clip(0,255)) tcod.console_fill_background(view['console'], numpy.subtract(numpy.add(numpy.subtract(view['col_buffer'][1][0],RGB_LIGHT_BUFFER[0]),view['light_buffer'][0]),view['light_buffer'][1]).clip(0,255), numpy.subtract(numpy.add(numpy.subtract(view['col_buffer'][1][1],RGB_LIGHT_BUFFER[1]),view['light_buffer'][0]),view['light_buffer'][1]).clip(0,255), numpy.subtract(numpy.add(numpy.subtract(view['col_buffer'][1][2],RGB_LIGHT_BUFFER[2]),view['light_buffer'][0]),view['light_buffer'][1]).clip(0,255)) else: tcod.console_fill_foreground(view['console'], view['col_buffer'][0][0], view['col_buffer'][0][1], view['col_buffer'][0][2]) tcod.console_fill_background(view['console'], view['col_buffer'][1][0], view['col_buffer'][1][1], view['col_buffer'][1][2]) tcod.console_fill_char(view['console'], view['char_buffer'][0])
def test_console_fill(console): width = libtcodpy.console_get_width(console) height = libtcodpy.console_get_height(console) fill = [i % 256 for i in range(width * height)] libtcodpy.console_fill_background(console, fill, fill, fill) libtcodpy.console_fill_foreground(console, fill, fill, fill) libtcodpy.console_fill_char(console, fill) # verify fill bg, fg, ch = [], [], [] for y in range(height): for x in range(width): bg.append(libtcodpy.console_get_char_background(console, x, y)[0]) fg.append(libtcodpy.console_get_char_foreground(console, x, y)[0]) ch.append(libtcodpy.console_get_char(console, x, y)) assert fill == bg assert fill == fg assert fill == ch
def test_console_fill_numpy(console): width = libtcodpy.console_get_width(console) height = libtcodpy.console_get_height(console) fill = numpy.zeros((height, width), dtype=numpy.intc) for y in range(height): fill[y, :] = y % 256 libtcodpy.console_fill_background(console, fill, fill, fill) libtcodpy.console_fill_foreground(console, fill, fill, fill) libtcodpy.console_fill_char(console, fill) # verify fill bg = numpy.zeros((height, width), dtype=numpy.intc) fg = numpy.zeros((height, width), dtype=numpy.intc) ch = numpy.zeros((height, width), dtype=numpy.intc) for y in range(height): for x in range(width): bg[y, x] = libtcodpy.console_get_char_background(console, x, y)[0] fg[y, x] = libtcodpy.console_get_char_foreground(console, x, y)[0] ch[y, x] = libtcodpy.console_get_char(console, x, y) fill = fill.tolist() assert fill == bg.tolist() assert fill == fg.tolist() assert fill == ch.tolist()
def start_of_frame_terraform(): tcod.console_fill_background(PREFAB_WINDOW,PREFAB_RGB_BACK_BUFFER[0],PREFAB_RGB_BACK_BUFFER[1],PREFAB_RGB_BACK_BUFFER[2]) tcod.console_fill_foreground(PREFAB_WINDOW,PREFAB_RGB_FORE_BUFFER[0],PREFAB_RGB_FORE_BUFFER[1],PREFAB_RGB_FORE_BUFFER[2]) tcod.console_fill_char(PREFAB_WINDOW,PREFAB_CHAR_BUFFER[0]) tcod.console_fill_background(X_CUTOUT_WINDOW,X_CUTOUT_RGB_BACK_BUFFER[0],X_CUTOUT_RGB_BACK_BUFFER[1],X_CUTOUT_RGB_BACK_BUFFER[2]) tcod.console_fill_foreground(X_CUTOUT_WINDOW,X_CUTOUT_RGB_FORE_BUFFER[0],X_CUTOUT_RGB_FORE_BUFFER[1],X_CUTOUT_RGB_FORE_BUFFER[2]) tcod.console_fill_char(X_CUTOUT_WINDOW,X_CUTOUT_CHAR_BUFFER[0]) tcod.console_fill_background(Y_CUTOUT_WINDOW,Y_CUTOUT_RGB_BACK_BUFFER[0],Y_CUTOUT_RGB_BACK_BUFFER[1],Y_CUTOUT_RGB_BACK_BUFFER[2]) tcod.console_fill_foreground(Y_CUTOUT_WINDOW,Y_CUTOUT_RGB_FORE_BUFFER[0],Y_CUTOUT_RGB_FORE_BUFFER[1],Y_CUTOUT_RGB_FORE_BUFFER[2]) tcod.console_fill_char(Y_CUTOUT_WINDOW,Y_CUTOUT_CHAR_BUFFER[0])
def start_of_frame_terraform(): tcod.console_fill_background(PREFAB_WINDOW, PREFAB_RGB_BACK_BUFFER[0], PREFAB_RGB_BACK_BUFFER[1], PREFAB_RGB_BACK_BUFFER[2]) tcod.console_fill_foreground(PREFAB_WINDOW, PREFAB_RGB_FORE_BUFFER[0], PREFAB_RGB_FORE_BUFFER[1], PREFAB_RGB_FORE_BUFFER[2]) tcod.console_fill_char(PREFAB_WINDOW, PREFAB_CHAR_BUFFER[0]) tcod.console_fill_background(X_CUTOUT_WINDOW, X_CUTOUT_RGB_BACK_BUFFER[0], X_CUTOUT_RGB_BACK_BUFFER[1], X_CUTOUT_RGB_BACK_BUFFER[2]) tcod.console_fill_foreground(X_CUTOUT_WINDOW, X_CUTOUT_RGB_FORE_BUFFER[0], X_CUTOUT_RGB_FORE_BUFFER[1], X_CUTOUT_RGB_FORE_BUFFER[2]) tcod.console_fill_char(X_CUTOUT_WINDOW, X_CUTOUT_CHAR_BUFFER[0]) tcod.console_fill_background(Y_CUTOUT_WINDOW, Y_CUTOUT_RGB_BACK_BUFFER[0], Y_CUTOUT_RGB_BACK_BUFFER[1], Y_CUTOUT_RGB_BACK_BUFFER[2]) tcod.console_fill_foreground(Y_CUTOUT_WINDOW, Y_CUTOUT_RGB_FORE_BUFFER[0], Y_CUTOUT_RGB_FORE_BUFFER[1], Y_CUTOUT_RGB_FORE_BUFFER[2]) tcod.console_fill_char(Y_CUTOUT_WINDOW, Y_CUTOUT_CHAR_BUFFER[0])
import libtcodpy as ltc WIDTH = 800 HEIGHT = 600 STR_TITLE = "Libtcod RL" TITLE = bytearray() TITLE.extend(STR_TITLE) ltc.console_init_root(WIDTH, HEIGHT, TITLE) console = ltc.console_new(WIDTH, HEIGHT) ltc.console_blit(console, 0, 0, WIDTH, HEIGHT, 0, 0, 0) # MAIN GAME LOOP ltc.console_flush() ltc.console_fill_background(console, 100, 100, 100) ltc.console_blit(console, 0, 0, WIDTH, HEIGHT, 0, 0, 0) ltc.console_clear(console)
def fill(self, r,g,b): r = np.ones(self.dim) * r g = np.ones(self.dim) * g b = np.ones(self.dim) * b tc.console_fill_background(self.con, r,g,b)
def test_console_fill_errors(console): with pytest.raises(TypeError): libtcodpy.console_fill_background(console, [0], [], []) with pytest.raises(TypeError): libtcodpy.console_fill_foreground(console, [0], [], [])
#move the light around in a circle t += 0.02 lightx = HALF_W + HALF_H * math.cos(t) lighty = HALF_H + HALF_H * math.sin(t) for x in range(SCREEN_W): for y in range(SCREEN_H): #define the brightness of a light in a tile as the inverse of the #squared distance from that tile to the light. sqr_distance = (x - lightx)**2 + (y - lighty)**2 brightness = 5.0 / sqr_distance #convert to 0-255 range brightness = int(brightness * 255) #truncate values outside that range brightness = max(min(brightness, 255), 0) #make a blue light by only setting the blue component and leaving others at 0 B[SCREEN_W * y + x] = brightness #fill the screen with these background colors libtcod.console_fill_background(0, R, G, B) #show FPS libtcod.console_set_foreground_color(0, libtcod.white) libtcod.console_print_right(None, SCREEN_W-1, SCREEN_H-1, libtcod.BKGND_SET, '%3d FPS' % libtcod.sys_get_fps()) libtcod.console_flush()
def draw_target_tile_highlighter(): if (mouse.cx - STAT_PANEL_WIDTH >= 0) and (mouse.cy < MAP_HEIGHT): target = libtcod.console_new(1, 1) libtcod.console_fill_background(target, (220, ), (220, ), (220, )) libtcod.console_blit(target, 0, 0, 1, 1, 0, mouse.cx, mouse.cy, .10, .50)
_RB = zeros((SCREEN_H,SCREEN_W)) _GB = zeros((SCREEN_H,SCREEN_W)) _BB = zeros((SCREEN_H,SCREEN_W)) _RB = add(_RB,255) _GB = add(_GB,255) _BB = add(_BB,255) render = zeros((SCREEN_H,SCREEN_W)) for light in lights: if lights.index(light) == 0: light['x'] -= 0.01 sqr_distance = (x - light['x'])**2 + (y - light['y'])**2 brightness = light['brightness'] / sqr_distance brightness = clip(brightness * 255, 0, 255) _RB = subtract(_RB,brightness).clip(0,255) _GB = subtract(_GB,brightness).clip(0,255) _BB = subtract(_BB,brightness).clip(0,255) _R = subtract(_R,_RB).clip(0,255) _G = subtract(_G,_GB).clip(0,255) _B = subtract(_B,_BB).clip(0,255) libtcod.console_fill_background(0, _R, _G, _B) libtcod.console_fill_foreground(0, _R, _G, _B) print libtcod.sys_get_fps() libtcod.console_flush()
def draw_target_tile_highlighter(): if (mouse.cx - STAT_PANEL_WIDTH >= 0) and (mouse.cy < MAP_HEIGHT): target = libtcod.console_new(1, 1) libtcod.console_fill_background(target, (220,), (220,), (220,)) libtcod.console_blit(target, 0, 0, 1, 1, 0, mouse.cx, mouse.cy, .10, .50)