Difference between revisions of "Complete Roguelike Tutorial, using python+libtcod, part 1 code"
Jump to navigation
Jump to search
m ("Showing the @ on screen": corrected coords to (1,1) like in the tutorial) |
(changed default to turn-based, added syntax highlighting, removed "Generalizing" (it's now in Part 2)) |
||
Line 4: | Line 4: | ||
== Showing the @ on screen == | == Showing the @ on screen == | ||
<div style="background-color: #EEEEEE; border-style: dotted"><syntaxhighlight lang="python"> | |||
< | import libtcodpy as libtcod | ||
#actual size of the window | #actual size of the window | ||
Line 27: | Line 27: | ||
libtcod.console_flush() | libtcod.console_flush() | ||
</ | </syntaxhighlight></div> | ||
== Moving around == | == Moving around == | ||
< | <div style="background-color: #EEEEEE; border-style: dotted"><syntaxhighlight lang="python"> | ||
import libtcodpy as libtcod | import libtcodpy as libtcod | ||
Line 44: | Line 45: | ||
global playerx, playery | global playerx, playery | ||
key = libtcod.console_check_for_keypress() #real-time | #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: | if key.vk == libtcod.KEY_ENTER and key.lalt: | ||
Line 79: | Line 80: | ||
playery = SCREEN_HEIGHT/2 | playery = SCREEN_HEIGHT/2 | ||
first_time = True #for turn-based games | |||
while not libtcod.console_is_window_closed(): | while not libtcod.console_is_window_closed(): | ||
Line 86: | Line 87: | ||
#handle keys and exit game if needed | #handle keys and exit game if needed | ||
if not first_time: #for turn-based games, remember to indent after! | |||
exit = handle_keys() | |||
if exit: | |||
break | |||
first_time = False #for turn-based games | |||
libtcod.console_set_foreground_color(0, libtcod.white) | libtcod.console_set_foreground_color(0, libtcod.white) | ||
Line 97: | Line 98: | ||
libtcod.console_flush() | libtcod.console_flush() | ||
</ | </syntaxhighlight></div> | ||
</ |
Revision as of 01:05, 2 June 2010
This is part of the code for a series of tutorials; the main page can be found here. |
Showing the @ on screen
import libtcodpy as libtcod
#actual size of the window
SCREEN_WIDTH = 80
SCREEN_HEIGHT = 50
LIMIT_FPS = 20 #20 frames-per-second maximum
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)
while not libtcod.console_is_window_closed():
libtcod.console_set_foreground_color(0, libtcod.white)
libtcod.console_print_left(0, 1, 1, libtcod.BKGND_NONE, '@')
libtcod.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
first_time = True #for turn-based games
while not libtcod.console_is_window_closed():
libtcod.console_print_left(0, playerx, playery, libtcod.BKGND_NONE, ' ')
#handle keys and exit game if needed
if not first_time: #for turn-based games, remember to indent after!
exit = handle_keys()
if exit:
break
first_time = False #for turn-based games
libtcod.console_set_foreground_color(0, libtcod.white)
libtcod.console_print_left(0, playerx, playery, libtcod.BKGND_NONE, '@')
libtcod.console_flush()