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
|
||||
"""The SDL renderer"""
|
||||
|
||||
target_texture: tcod.sdl.render.Texture
|
||||
"""The final texture that is rendered"""
|
||||
|
||||
atlas: tcod.render.SDLTilesetAtlas
|
||||
"""The tileset atlas"""
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,10 @@ from tcod.console import Console
|
|||
from tcod.event import Event, Quit
|
||||
from tcod.event import wait as wait_for_event
|
||||
import tcod.event
|
||||
import tcod.render
|
||||
import tcod.sdl
|
||||
import tcod.sdl.render
|
||||
import tcod.sdl.video
|
||||
|
||||
import g
|
||||
|
||||
|
|
@ -62,13 +66,16 @@ def main_draw() -> None:
|
|||
# g.sdl_renderer.copy(g.console_render.render(g.background))
|
||||
# g.foreground.blit(g.background, fg_alpha=1.0, bg_alpha=0.0)
|
||||
bg_tex = g.console_render1.render(g.background)
|
||||
|
||||
bg_tex.blend_mode = 1
|
||||
fg_tex = g.console_render2.render(g.foreground)
|
||||
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(bg_tex)
|
||||
g.sdl_renderer.copy(g.target_texture)
|
||||
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)
|
||||
if g.world[None].components[Map].fov[map_pos.y, map_pos.x]:
|
||||
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()
|
||||
|
|
|
|||
10
main.py
10
main.py
|
|
@ -24,18 +24,14 @@ def main() -> None:
|
|||
g.screens = [MainMenu()]
|
||||
g.background = tcod.console.Console(80, 35)
|
||||
g.foreground = tcod.console.Console(80, 35)
|
||||
|
||||
win = tcod.sdl.video.new_window(
|
||||
g.background.width * g.tileset.tile_width,
|
||||
g.background.height * g.tileset.tile_height,
|
||||
flags=tcod.lib.SDL_WINDOW_RESIZABLE,
|
||||
)
|
||||
w, h = g.background.width * g.tileset.tile_width, g.background.height * g.tileset.tile_height
|
||||
win = tcod.sdl.video.new_window(w,h, flags=tcod.lib.SDL_WINDOW_RESIZABLE)
|
||||
|
||||
g.sdl_window = win
|
||||
|
||||
|
||||
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.console_render1 = tcod.render.SDLConsoleRender(atlas=g.atlas)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue