Difference between revisions of "Complete Roguelike Tutorial, using python3+libtcod, part 1 code"
Jump to navigation
Jump to search
Line 7: | Line 7: | ||
== Showing the @ on screen == | == Showing the @ on screen == | ||
<div style="background-color: #EEEEEE; border-style: dotted"><syntaxhighlight lang="python"> | <div style="background-color: #EEEEEE; border-style: dotted"><syntaxhighlight lang="python"> | ||
import libtcodpy as | #!/usr/bin/env python | ||
import libtcodpy as tcod | |||
# | # ###################################################################### | ||
SCREEN_WIDTH = 80 | # Global Game Settings | ||
SCREEN_HEIGHT = 50 | # ###################################################################### | ||
# Size of window | |||
SCREEN_WIDTH = 80 # characters wide | |||
SCREEN_HEIGHT = 50 # characters tall | |||
LIMIT_FPS = 20 # 20 frames-per-second maximum | |||
# Setup Font | |||
font_filename = 'terminal.png' | |||
tcod.console_set_custom_font(font_filename, tcod.FONT_TYPE_GREYSCALE | tcod.FONT_LAYOUT_TCOD) | |||
# Initialize screen | |||
tcod.console_init_root(SCREEN_WIDTH, SCREEN_HEIGHT, 'python/libtcod tutorial', False) | |||
# Set FPS | |||
tcod.sys_set_fps(LIMIT_FPS) | |||
# ###################################################################### | |||
# Game loop | |||
# ###################################################################### | |||
while not tcod.console_is_window_closed(): | |||
tcod.console_set_default_foreground(0, tcod.white) | |||
tcod.console_put_char(0, 1, 1, '@', tcod.BKGND_NONE) | |||
tcod.console_flush() | |||
</syntaxhighlight></div> | </syntaxhighlight></div> | ||
== Moving around == | == Moving around == |
Revision as of 14:44, 16 September 2017
This is part of a series of tutorials; the main page can be found here. |
Showing the @ on screen
#!/usr/bin/env python
import libtcodpy as tcod
# ######################################################################
# Global Game Settings
# ######################################################################
# Size of window
SCREEN_WIDTH = 80 # characters wide
SCREEN_HEIGHT = 50 # characters tall
LIMIT_FPS = 20 # 20 frames-per-second maximum
# Setup Font
font_filename = 'terminal.png'
tcod.console_set_custom_font(font_filename, tcod.FONT_TYPE_GREYSCALE | tcod.FONT_LAYOUT_TCOD)
# Initialize screen
tcod.console_init_root(SCREEN_WIDTH, SCREEN_HEIGHT, 'python/libtcod tutorial', False)
# Set FPS
tcod.sys_set_fps(LIMIT_FPS)
# ######################################################################
# Game loop
# ######################################################################
while not tcod.console_is_window_closed():
tcod.console_set_default_foreground(0, tcod.white)
tcod.console_put_char(0, 1, 1, '@', tcod.BKGND_NONE)
tcod.console_flush()
Moving around
import libtcodpy as libtcod
#actual size of the window
SCREEN_WIDTH = 80
SCREEN_HEIGHT = 50
LIMIT_FPS = 20 #20 frames-per-second maximum
def handle_keys():
global playerx, playery
#key = libtcod.console_check_for_keypress() #real-time
key = libtcod.console_wait_for_keypress(True) #turn-based
if key.vk == libtcod.KEY_ENTER and key.lalt:
#Alt+Enter: toggle fullscreen
libtcod.console_set_fullscreen(not libtcod.console_is_fullscreen())
elif key.vk == libtcod.KEY_ESCAPE:
return True #exit game
#movement keys
if libtcod.console_is_key_pressed(libtcod.KEY_UP):
playery -= 1
elif libtcod.console_is_key_pressed(libtcod.KEY_DOWN):
playery += 1
elif libtcod.console_is_key_pressed(libtcod.KEY_LEFT):
playerx -= 1
elif libtcod.console_is_key_pressed(libtcod.KEY_RIGHT):
playerx += 1
#############################################
# Initialization & Main Loop
#############################################
libtcod.console_set_custom_font('arial10x10.png', libtcod.FONT_TYPE_GREYSCALE | libtcod.FONT_LAYOUT_TCOD)
libtcod.console_init_root(SCREEN_WIDTH, SCREEN_HEIGHT, 'python/libtcod tutorial', False)
libtcod.sys_set_fps(LIMIT_FPS)
playerx = SCREEN_WIDTH/2
playery = SCREEN_HEIGHT/2
while not libtcod.console_is_window_closed():
libtcod.console_set_default_foreground(0, libtcod.white)
libtcod.console_put_char(0, playerx, playery, '@', libtcod.BKGND_NONE)
libtcod.console_flush()
libtcod.console_put_char(0, playerx, playery, ' ', libtcod.BKGND_NONE)
#handle keys and exit game if needed
exit = handle_keys()
if exit:
break