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

From RogueBasin
Jump to navigation Jump to search
(Update to libtcod 1.5.1. There's a link at the top to the old version.)
(use console_put_char rather than console_print_ex, because that's what later lessons use. This appears to have been an inconsistency in the original tutorial)
Line 26: Line 26:
     libtcod.console_set_default_foreground(0, libtcod.white)
     libtcod.console_set_default_foreground(0, libtcod.white)
      
      
     libtcod.console_print_ex(0, 1, 1, libtcod.BKGND_NONE, libtcod.LEFT, '@')
     libtcod.console_put_char(0, 1, 1, '@', libtcod.BKGND_NONE)
      
      
     libtcod.console_flush()
     libtcod.console_flush()
Line 85: Line 85:
      
      
     libtcod.console_set_default_foreground(0, libtcod.white)
     libtcod.console_set_default_foreground(0, libtcod.white)
     libtcod.console_print_ex(0, playerx, playery, libtcod.BKGND_NONE, libtcod.LEFT, '@')
     libtcod.console_put_char(0, playerx, playery, '@', libtcod.BKGND_NONE)
      
      
     libtcod.console_flush()
     libtcod.console_flush()
      
      
     libtcod.console_print_ex(0, playerx, playery, libtcod.BKGND_NONE, libtcod.LEFT, ' ')
     libtcod.console_put_char(0, playerx, playery, ' ', libtcod.BKGND_NONE)
      
      
     #handle keys and exit game if needed
     #handle keys and exit game if needed

Revision as of 04:05, 2 November 2012

This is part of the code for a series of tutorials; the main page can be found here.

This part of the tutorial has been converted to use libctod version 1.5.1, but later parts still use 1.5.0. If you wish to follow the complete tutorial, you probably want 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