adventure-game #3

Open
Kenwood wants to merge 80 commits from adventure-game into master
2 changed files with 29 additions and 55 deletions
Showing only changes of commit 298e5abdbe - Show all commits

View File

@ -1,21 +1,35 @@
import npyscreen # std imports
from math import floor
# This application class serves as a wrapper for the initialization of curses # local
# and also manages the actual forms of the application from blessed import Terminal
class MyTestApp(npyscreen.NPSAppManaged):
def onStart(self):
self.registerForm("MAIN", MainForm())
# This form class defines the display that will be presented to the user. def roundxy(x, y):
return int(floor(x)), int(floor(y))
class MainForm(npyscreen.Form):
def create(self):
self.add(npyscreen.TitleText, name = "Text:", value= "Hellow World!" )
def afterEditing(self): term = Terminal()
self.parentApp.setNextForm(None)
if __name__ == '__main__': x, y, xs, ys = 2, 2, 0.4, 0.3
TA = MyTestApp() with term.cbreak(), term.hidden_cursor():
TA.run() # clear the screen
print(term.home + term.black_on_olivedrab4 + term.clear)
# loop every 20ms
while term.inkey(timeout=0.02) != 'q':
# erase,
txt_erase = term.move_xy(*roundxy(x, y)) + ' '
# bounce,
if x >= (term.width - 1) or x <= 0:
xs *= -1
if y >= term.height or y <= 0:
ys *= -1
# move,
x, y = x + xs, y + ys
# draw !
txt_ball = term.move_xy(*roundxy(x, y)) + ''
print(txt_erase + txt_ball, end='', flush=True)

View File

@ -1,40 +0,0 @@
import curses
# The `screen` is a window that acts as the master window
# that takes up the whole screen. Other windows created
# later will get painted on to the `screen` window.
screen = curses.initscr()
# lines, columns, start line, start column
my_window = curses.newwin(15, 20, 0, 0)
# Long strings will wrap to the next line automatically
# to stay within the window
my_window.addstr(4, 4, "Hello from 4,4")
my_window.addstr(5, 15, "Hello from 5,15 with a long string")
# Print the window to the screen
my_window.refresh()
curses.napms(2000)
# Clear the screen, clearing my_window contents that were printed to screen
# my_window will retain its contents until my_window.clear() is called.
screen.clear()
screen.refresh()
# Move the window and put it back on screen
# If we didn't clear the screen before doing this,
# the original window contents would remain on the screen
# and we would see the window text twice.
my_window.mvwin(10, 10)
my_window.refresh()
curses.napms(1000)
# Clear the window and redraw over the current window space
# This does not require clearing the whole screen, because the window
# has not moved position.
my_window.clear()
my_window.refresh()
curses.napms(1000)
curses.endwin()