Skip to content

Instantly share code, notes, and snippets.

@emoryy
Created September 5, 2017 17:54
Show Gist options
  • Save emoryy/f2f20dcfe29d96b0957a14b80df83d54 to your computer and use it in GitHub Desktop.
Save emoryy/f2f20dcfe29d96b0957a14b80df83d54 to your computer and use it in GitHub Desktop.
Skywriter test
from curses import wrapper
from curses.textpad import Textbox, rectangle
import skywriter
import time
import signal
from threading import Thread
w = 80
h = 38
stack = list()
# curses.init_pair(1, curses.COLOR_RED, curses.COLOR_WHITE)
coord = (0,0,0)
@skywriter.move()
def move(x, y, z):
global stack
global coord
coord = (x, y, z)
stack.append((x, y, z))
events = [{"center":0, "south": 0, "north": 0, "east": 0, "west": 0 } for i in range(3)]
@skywriter.double_tap()
def doubletap(position):
global events
events[0][position] += 1
@skywriter.tap()
def tap(position):
global events
events[1][position] += 1
@skywriter.touch()
def touch(position):
global events
events[2][position] += 1
start = 0
finish = 0
elapsed = 0
unscii_ramp = " "[::-1]
@skywriter.flick()
def flick(_start, _finish):
global start, finish
start = _start
finish = _finish
def main(stdscr):
global start, finish
global stack
global elapsed
global events
global coord
# Clear screen
stdscr.clear()
prev_len = 0
while True:
stdscr.erase()
rectangle(stdscr, 2,0, 1+h+1, 1+w+1)
for coord in stack:
x = 1 + int(coord[0] * w)
y = 2 + h - int(coord[1] * h)
stdscr.addstr(y, x, "O")
stdscr.addstr(0, 0, 'ticks: ' +str(elapsed));
stdscr.addstr(0, int(w/2), 'x:{} y:{} z:{}'.format(int(coord[0]*100), int(coord[1]*100), int(coord[2]*100)))
stdscr.addstr(1, 0, str(events));
# if events[0]["center"]:
# stdscr.addstr(int(h-1), int(w/2-5), 'DOUBLE TAP');
# events[0]["center"] = 0
# else:
# stdscr.addstr(int(h-1), int(w/2-5), ' ');
stdscr.refresh()
time.sleep(0.001)
# cur_len = len(stack)
# diff = cur_len - prev_len
while len(stack) > 20:
stack.pop(0)
# prev_len = cur_len
elapsed += 1
stdscr.getkey()
# def display():
wrapper(main)
# t = Thread(target=display, args=[])
# t.start()
# signal.pause()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment