Difference between revisions of "Complete Roguelike Tutorial, using python+libtcod, part 1 code"
Jump to navigation
Jump to search
Line 10: | Line 10: | ||
== 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 | #!/usr/bin/env python3 | ||
import tdl | |||
#actual size of the window | #actual size of the window | ||
SCREEN_WIDTH = 80 | SCREEN_WIDTH = 80 | ||
SCREEN_HEIGHT = | SCREEN_HEIGHT = 65 | ||
LIMIT_FPS = 20 #20 frames-per-second maximum | LIMIT_FPS = 20 #20 frames-per-second maximum | ||
tdl.set_font('arial10x10.png', greyscale=True, altLayout=True) | |||
console = tdl.init(SCREEN_WIDTH, SCREEN_HEIGHT, title="Roguelike", fullscreen=False) | |||
tdl.setFPS(LIMIT_FPS) | |||
while not | while not tdl.event.is_window_closed(): | ||
console.draw_char(1, 1, '@', bg=None, fg=(255,255,255)) | |||
tdl.flush() | |||
</syntaxhighlight></div> | </syntaxhighlight></div> | ||
Line 38: | 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 | #!/usr/bin/env python3 | ||
import tdl | |||
#actual size of the window | #actual size of the window | ||
SCREEN_WIDTH = 80 | SCREEN_WIDTH = 80 | ||
SCREEN_HEIGHT = | SCREEN_HEIGHT = 65 | ||
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 | ||
# | ''' | ||
#realtime | |||
if key | keypress = False | ||
for event in tdl.event.get(): | |||
if event.type == 'KEYDOWN': | |||
user_input = event | |||
keypress = True | |||
if not keypress: | |||
return | |||
''' | |||
#turn-based | |||
#user_input = tdl.event.key_wait() | |||
if user_input.key == 'ENTER' and user_input.alt: | |||
#Alt+Enter: toggle fullscreen | #Alt+Enter: toggle fullscreen | ||
tdl.set_fullscreen(True) | |||
elif key | elif user_input.key == 'ESCAPE': | ||
return True #exit game | return True #exit game | ||
#movement keys | #movement keys | ||
if | if user_input.key == 'UP': | ||
playery -= 1 | playery -= 1 | ||
elif | elif user_input.key == 'DOWN': | ||
playery += 1 | playery += 1 | ||
elif | elif user_input.key == 'LEFT': | ||
playerx -= 1 | playerx -= 1 | ||
elif | elif user_input.key == 'RIGHT': | ||
playerx += 1 | playerx += 1 | ||
############################################# | ############################################# | ||
# Initialization & Main Loop | # Initialization & Main Loop # | ||
############################################# | ############################################# | ||
tdl.set_font('arial10x10.png', greyscale=True, altLayout=True) | |||
console = tdl.init(SCREEN_WIDTH, SCREEN_HEIGHT, title="Roguelike", fullscreen=False) | |||
tdl.setFPS(LIMIT_FPS) | |||
playerx = int(SCREEN_WIDTH/2) | |||
playery = int(SCREEN_HEIGHT/2) | |||
playerx = | while not tdl.event.is_window_closed(): | ||
playery = | |||
console.draw_char(playerx, playery, '@', bg=None, fg=(255,255,255)) | |||
tdl.flush() | |||
console.draw_char(playerx, playery, ' ', bg=None) | |||
#handle keys and exit game if needed | #handle keys and exit game if needed | ||
exit_game = handle_keys() | |||
if | if exit_game: | ||
break | break | ||
</syntaxhighlight></div> | </syntaxhighlight></div> | ||
[[Category:Developing]] | [[Category:Developing]] |
Revision as of 10:33, 13 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
#!/usr/bin/env python3
import tdl
#actual size of the window
SCREEN_WIDTH = 80
SCREEN_HEIGHT = 65
LIMIT_FPS = 20 #20 frames-per-second maximum
tdl.set_font('arial10x10.png', greyscale=True, altLayout=True)
console = tdl.init(SCREEN_WIDTH, SCREEN_HEIGHT, title="Roguelike", fullscreen=False)
tdl.setFPS(LIMIT_FPS)
while not tdl.event.is_window_closed():
console.draw_char(1, 1, '@', bg=None, fg=(255,255,255))
tdl.flush()
Moving around
#!/usr/bin/env python3
import tdl
#actual size of the window
SCREEN_WIDTH = 80
SCREEN_HEIGHT = 65
LIMIT_FPS = 20 #20 frames-per-second maximum
def handle_keys():
global playerx, playery
'''
#realtime
keypress = False
for event in tdl.event.get():
if event.type == 'KEYDOWN':
user_input = event
keypress = True
if not keypress:
return
'''
#turn-based
#user_input = tdl.event.key_wait()
if user_input.key == 'ENTER' and user_input.alt:
#Alt+Enter: toggle fullscreen
tdl.set_fullscreen(True)
elif user_input.key == 'ESCAPE':
return True #exit game
#movement keys
if user_input.key == 'UP':
playery -= 1
elif user_input.key == 'DOWN':
playery += 1
elif user_input.key == 'LEFT':
playerx -= 1
elif user_input.key == 'RIGHT':
playerx += 1
#############################################
# Initialization & Main Loop #
#############################################
tdl.set_font('arial10x10.png', greyscale=True, altLayout=True)
console = tdl.init(SCREEN_WIDTH, SCREEN_HEIGHT, title="Roguelike", fullscreen=False)
tdl.setFPS(LIMIT_FPS)
playerx = int(SCREEN_WIDTH/2)
playery = int(SCREEN_HEIGHT/2)
while not tdl.event.is_window_closed():
console.draw_char(playerx, playery, '@', bg=None, fg=(255,255,255))
tdl.flush()
console.draw_char(playerx, playery, ' ', bg=None)
#handle keys and exit game if needed
exit_game = handle_keys()
if exit_game:
break