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

From RogueBasin
Jump to navigation Jump to search
(Blanked the page)
(Reverted changes. Why is the reason to delete the content?)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
<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