more render improve :D
This commit is contained in:
parent
af941dc848
commit
200a0a4996
4 changed files with 18 additions and 10 deletions
3
g.py
3
g.py
|
|
@ -37,6 +37,9 @@ sdl_window: tcod.sdl.video.Window
|
||||||
sdl_renderer: tcod.sdl.render.Renderer
|
sdl_renderer: tcod.sdl.render.Renderer
|
||||||
"""The SDL renderer"""
|
"""The SDL renderer"""
|
||||||
|
|
||||||
|
target_texture: tcod.sdl.render.Texture
|
||||||
|
"""The final texture that is rendered"""
|
||||||
|
|
||||||
atlas: tcod.render.SDLTilesetAtlas
|
atlas: tcod.render.SDLTilesetAtlas
|
||||||
"""The tileset atlas"""
|
"""The tileset atlas"""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,10 @@ from tcod.console import Console
|
||||||
from tcod.event import Event, Quit
|
from tcod.event import Event, Quit
|
||||||
from tcod.event import wait as wait_for_event
|
from tcod.event import wait as wait_for_event
|
||||||
import tcod.event
|
import tcod.event
|
||||||
|
import tcod.render
|
||||||
|
import tcod.sdl
|
||||||
|
import tcod.sdl.render
|
||||||
|
import tcod.sdl.video
|
||||||
|
|
||||||
import g
|
import g
|
||||||
|
|
||||||
|
|
@ -62,13 +66,16 @@ def main_draw() -> None:
|
||||||
# g.sdl_renderer.copy(g.console_render.render(g.background))
|
# g.sdl_renderer.copy(g.console_render.render(g.background))
|
||||||
# g.foreground.blit(g.background, fg_alpha=1.0, bg_alpha=0.0)
|
# g.foreground.blit(g.background, fg_alpha=1.0, bg_alpha=0.0)
|
||||||
bg_tex = g.console_render1.render(g.background)
|
bg_tex = g.console_render1.render(g.background)
|
||||||
|
|
||||||
bg_tex.blend_mode = 1
|
bg_tex.blend_mode = 1
|
||||||
fg_tex = g.console_render2.render(g.foreground)
|
fg_tex = g.console_render2.render(g.foreground)
|
||||||
fg_tex.blend_mode = 1
|
fg_tex.blend_mode = 1
|
||||||
with g.sdl_renderer.set_render_target(bg_tex):
|
with g.sdl_renderer.set_render_target(g.target_texture):
|
||||||
|
g.sdl_renderer.clear()
|
||||||
|
g.sdl_renderer.copy(bg_tex)
|
||||||
g.sdl_renderer.copy(fg_tex)
|
g.sdl_renderer.copy(fg_tex)
|
||||||
|
|
||||||
g.sdl_renderer.copy(bg_tex)
|
g.sdl_renderer.copy(g.target_texture)
|
||||||
g.sdl_renderer.present()
|
g.sdl_renderer.present()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,9 @@ def _draw_entity(entity: tcod.ecs.Entity, camera_pos, camera_radius_x, camera_ra
|
||||||
map_pos = world_pos_to_map_pos(pos)
|
map_pos = world_pos_to_map_pos(pos)
|
||||||
if g.world[None].components[Map].fov[map_pos.y, map_pos.x]:
|
if g.world[None].components[Map].fov[map_pos.y, map_pos.x]:
|
||||||
graphic = entity.components[Graphic]
|
graphic = entity.components[Graphic]
|
||||||
g.foreground.rgba[["ch", "fg"]][screen_pos.y + camera_radius_y, screen_pos.x + camera_radius_x] = graphic.ch, graphic.fg
|
r,gg,b,a = graphic.fg
|
||||||
|
fg = (r,gg,b,255)
|
||||||
|
g.foreground.rgba[["ch", "fg"]][screen_pos.y + camera_radius_y, screen_pos.x + camera_radius_x] = graphic.ch, fg
|
||||||
|
|
||||||
|
|
||||||
@attrs.define()
|
@attrs.define()
|
||||||
|
|
|
||||||
10
main.py
10
main.py
|
|
@ -24,18 +24,14 @@ def main() -> None:
|
||||||
g.screens = [MainMenu()]
|
g.screens = [MainMenu()]
|
||||||
g.background = tcod.console.Console(80, 35)
|
g.background = tcod.console.Console(80, 35)
|
||||||
g.foreground = tcod.console.Console(80, 35)
|
g.foreground = tcod.console.Console(80, 35)
|
||||||
|
w, h = g.background.width * g.tileset.tile_width, g.background.height * g.tileset.tile_height
|
||||||
win = tcod.sdl.video.new_window(
|
win = tcod.sdl.video.new_window(w,h, flags=tcod.lib.SDL_WINDOW_RESIZABLE)
|
||||||
g.background.width * g.tileset.tile_width,
|
|
||||||
g.background.height * g.tileset.tile_height,
|
|
||||||
flags=tcod.lib.SDL_WINDOW_RESIZABLE,
|
|
||||||
)
|
|
||||||
|
|
||||||
g.sdl_window = win
|
g.sdl_window = win
|
||||||
|
|
||||||
|
|
||||||
g.sdl_renderer = tcod.sdl.render.new_renderer(g.sdl_window, target_textures=True)
|
g.sdl_renderer = tcod.sdl.render.new_renderer(g.sdl_window, target_textures=True)
|
||||||
|
g.target_texture = g.sdl_renderer.new_texture(w, h, access=tcod.sdl.render.TextureAccess.TARGET)
|
||||||
g.atlas = tcod.render.SDLTilesetAtlas(g.sdl_renderer, g.tileset)
|
g.atlas = tcod.render.SDLTilesetAtlas(g.sdl_renderer, g.tileset)
|
||||||
|
|
||||||
g.console_render1 = tcod.render.SDLConsoleRender(atlas=g.atlas)
|
g.console_render1 = tcod.render.SDLConsoleRender(atlas=g.atlas)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue