Difference between revisions of "Complete Roguelike Tutorial, using python+libtcod, part 1 code"
Jump to navigation
Jump to search
(Reverting a mistaken overwrite) |
|||
Line 2: | Line 2: | ||
This is part of a series of tutorials; the main page can be found [[Complete Roguelike Tutorial, using python+libtcod|here]]. | This is part of a series of tutorials; the main page can be found [[Complete Roguelike Tutorial, using python+libtcod|here]]. | ||
The tutorial uses | The tutorial uses libtcod version 1.6.0 and above. | ||
If you choose to use 1.5.1, you can find the old version [http://www.roguebasin.com/index.php?title=Complete_Roguelike_Tutorial,_using_python%2Blibtcod,_part_1_code&oldid=30244 here].<br/> | |||
If you choose to use 1.5.0, you can find the old version [http://roguebasin.roguelikedevelopment.org/index.php?title=Complete_Roguelike_Tutorial,_using_python%2Blibtcod,_part_1_code&oldid=29862 here]. | |||
</center></td></tr></table></center> | </center></td></tr></table></center> | ||
== 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 libtcod | |||
import | |||
#actual size of the window | #actual size of the window | ||
SCREEN_WIDTH = 80 | SCREEN_WIDTH = 80 | ||
SCREEN_HEIGHT = | SCREEN_HEIGHT = 50 | ||
LIMIT_FPS = 20 #20 frames-per-second maximum | 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 | while not libtcod.console_is_window_closed(): | ||
libtcod.console_set_default_foreground(0, libtcod.white) | |||
libtcod.console_put_char(0, 1, 1, '@', libtcod.BKGND_NONE) | |||
libtcod.console_flush() | |||
</syntaxhighlight></div> | </syntaxhighlight></div> | ||
Line 36: | Line 38: | ||
<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 libtcod | |||
import | |||
#actual size of the window | #actual size of the window | ||
SCREEN_WIDTH = 80 | SCREEN_WIDTH = 80 | ||
SCREEN_HEIGHT = | SCREEN_HEIGHT = 50 | ||
LIMIT_FPS = 20 #20 frames-per-second maximum | LIMIT_FPS = 20 #20 frames-per-second maximum | ||
def handle_keys(): | def handle_keys(): | ||
global playerx, playery | 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: | |||
if | |||
#Alt+Enter: toggle fullscreen | #Alt+Enter: toggle fullscreen | ||
libtcod.console_set_fullscreen(not libtcod.console_is_fullscreen()) | |||
elif | elif key.vk == libtcod.KEY_ESCAPE: | ||
return True #exit game | return True #exit game | ||
#movement keys | #movement keys | ||
if | if libtcod.console_is_key_pressed(libtcod.KEY_UP): | ||
playery -= 1 | playery -= 1 | ||
elif | elif libtcod.console_is_key_pressed(libtcod.KEY_DOWN): | ||
playery += 1 | playery += 1 | ||
elif | elif libtcod.console_is_key_pressed(libtcod.KEY_LEFT): | ||
playerx -= 1 | playerx -= 1 | ||
elif | elif libtcod.console_is_key_pressed(libtcod.KEY_RIGHT): | ||
playerx += 1 | playerx += 1 | ||
############################################# | ############################################# | ||
# Initialization & Main Loop | # 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 | playerx = SCREEN_WIDTH/2 | ||
playery = SCREEN_HEIGHT | 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 | #handle keys and exit game if needed | ||
exit = handle_keys() | |||
if | if exit: | ||
break | break | ||
</syntaxhighlight></div> | </syntaxhighlight></div> | ||
[[Category:Developing]] | [[Category:Developing]] |
Revision as of 11:02, 14 November 2016
This is part of a series of tutorials; the main page can be found here. The tutorial uses libtcod version 1.6.0 and above. If you choose to use 1.5.1, you can find the old version 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_default_foreground(0, libtcod.white)
libtcod.console_put_char(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
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