Difference between revisions of "Roguelike Tutorial, using python3+tld, part 1 code"

From RogueBasin
Jump to navigation Jump to search
(Reverted changes. Why is the reason to delete the content?)
 
Line 1: Line 1:
{{db-author}}
<center><table border="0" cellpadding="10" cellspacing="0" style="background:#F0E68C"><tr><td><center>
This is part of a series of tutorials; the main page can be found [[Roguelike Tutorial, using python3+tdl|here]].
 
The tutorial uses tld version 1.5.3 and Python 3.5
 
</center></td></tr></table></center>
 
== Showing the @ on screen ==
<div style="background-color: #EEEEEE; border-style: dotted"><syntaxhighlight lang="python">
#!/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()
</syntaxhighlight></div>
 
 
== Moving around ==
 
<div style="background-color: #EEEEEE; border-style: dotted"><syntaxhighlight lang="python">
#!/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 = SCREEN_WIDTH//2
playery = 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
</syntaxhighlight></div>
 
[[Category:Developing]]

Latest revision as of 09:32, 4 December 2018

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

The tutorial uses tld version 1.5.3 and Python 3.5

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 = SCREEN_WIDTH//2
playery = 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