Difference between revisions of "Complete Roguelike Tutorial, using python+libtcod, part 1 code"

From RogueBasin
Jump to navigation Jump to search
 
Line 15: Line 15:
SCREEN_WIDTH = 80
SCREEN_WIDTH = 80
SCREEN_HEIGHT = 50
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_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.console_init_root(SCREEN_WIDTH, SCREEN_HEIGHT, 'python/libtcod tutorial', False)
libtcod.sys_set_fps(LIMIT_FPS)
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()
</syntaxhighlight></div>
== Moving around ==
<div style="background-color: #EEEEEE; border-style: dotted"><syntaxhighlight lang="python">
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():
def handle_keys():
     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
     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:
         # Alt+Enter: toggle fullscreen
         #Alt+Enter: toggle fullscreen
         libtcod.console_set_fullscreen(not libtcod.console_is_fullscreen())
         libtcod.console_set_fullscreen(not libtcod.console_is_fullscreen())
 
       
     elif key.vk == libtcod.KEY_ESCAPE:
     elif key.vk == libtcod.KEY_ESCAPE:
         return True  # exit game
         return True  #exit game
 
   
     # movement keys
     #movement keys
     if libtcod.console_is_key_pressed(libtcod.KEY_UP):
     if libtcod.console_is_key_pressed(libtcod.KEY_UP):
         playery -= 1
         playery -= 1
 
       
     elif libtcod.console_is_key_pressed(libtcod.KEY_DOWN):
     elif libtcod.console_is_key_pressed(libtcod.KEY_DOWN):
         playery += 1
         playery += 1
 
       
     elif libtcod.console_is_key_pressed(libtcod.KEY_LEFT):
     elif libtcod.console_is_key_pressed(libtcod.KEY_LEFT):
         playerx -= 1
         playerx -= 1
 
       
     elif libtcod.console_is_key_pressed(libtcod.KEY_RIGHT):
     elif libtcod.console_is_key_pressed(libtcod.KEY_RIGHT):
         playerx += 1
         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
playerx = SCREEN_WIDTH/2
Line 52: Line 86:


while not libtcod.console_is_window_closed():
while not libtcod.console_is_window_closed():
   
     libtcod.console_set_default_foreground(0, libtcod.white)
     libtcod.console_set_default_foreground(0, libtcod.white)
     libtcod.console_put_char(0, 1, 1, '@', libtcod.BKGND_NONE)
     libtcod.console_put_char(0, playerx, playery, '@', libtcod.BKGND_NONE)
   
     libtcod.console_flush()
     libtcod.console_flush()
 
   
    libtcod.console_put_char(0, playerx, playery, ' ', libtcod.BKGND_NONE)
   
    #handle keys and exit game if needed
     exit = handle_keys()
     exit = handle_keys()
     if exit:
     if exit:
         break
         break
</syntaxhighlight></div>
</syntaxhighlight></div>


[[Category:Developing]]
[[Category:Developing]]

Latest revision as of 16:28, 16 September 2017

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.
If you choose to use 1.5.0, 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