60 lines
1.5 KiB
Python
60 lines
1.5 KiB
Python
import curses
|
|
|
|
# Import my own libraries
|
|
from state import State
|
|
gamestate = State()
|
|
gamestate.load()
|
|
|
|
from render import Render
|
|
|
|
# -- Initialize --
|
|
stdscr = curses.initscr()
|
|
curses.noecho()
|
|
curses.cbreak()
|
|
stdscr.keypad(1)
|
|
stdscr.notimeout(1)
|
|
|
|
# Clear and refresh the screen for a blank canvas
|
|
stdscr.clear()
|
|
stdscr.refresh()
|
|
|
|
height, width = stdscr.getmaxyx()
|
|
|
|
curses.start_color()
|
|
curses.init_pair(1, curses.COLOR_GREEN, curses.COLOR_BLACK) # Neutral Land
|
|
curses.init_pair(2, curses.COLOR_BLUE, curses.COLOR_BLACK) # Neutral Sea
|
|
curses.init_pair(3 , curses.COLOR_RED, curses.COLOR_BLACK) # Hostile
|
|
curses.init_pair(7, curses.COLOR_BLACK, curses.COLOR_BLACK) # Outside of the map
|
|
|
|
#stdscr = Render.renderScreen(stdscr, gamestate, 40, 12)
|
|
stdscr = Render.renderScreen(stdscr, gamestate, 75, 25)
|
|
|
|
k = 0
|
|
map_focus_x = round(gamestate.metadata['width']/2)
|
|
map_focus_y = round(gamestate.metadata['height']/2)
|
|
while (k != ord('q')):
|
|
|
|
if k == curses.KEY_DOWN:
|
|
map_focus_y = map_focus_y + 1
|
|
elif k == curses.KEY_UP:
|
|
map_focus_y = map_focus_y - 1
|
|
elif k == curses.KEY_RIGHT:
|
|
map_focus_x = map_focus_x + 1
|
|
elif k == curses.KEY_LEFT:
|
|
map_focus_x = map_focus_x - 1
|
|
|
|
map_focus_x = max(0, map_focus_x)
|
|
map_focus_x = min(gamestate.metadata['width'], map_focus_x)
|
|
|
|
map_focus_y = max(0, map_focus_y)
|
|
map_focus_y = min(gamestate.metadata['height'], map_focus_y)
|
|
|
|
stdscr = Render.renderScreen(stdscr, gamestate, map_focus_x, map_focus_y)
|
|
|
|
k = stdscr.getch()
|
|
|
|
stdscr.keypad(0)
|
|
curses.echo()
|
|
curses.nocbreak()
|
|
curses.endwin()
|