|
@@ -1,6 +1,6 @@
|
|
|
#!/usr/bin/env python
|
|
#!/usr/bin/env python
|
|
|
import pygame, sys, time
|
|
import pygame, sys, time
|
|
|
-from touch import add, MultiTouchListener
|
|
|
|
|
|
|
+from touch import MultiTouchListener
|
|
|
from math import degrees, cos, sin
|
|
from math import degrees, cos, sin
|
|
|
|
|
|
|
|
from events import Rotate
|
|
from events import Rotate
|
|
@@ -19,14 +19,16 @@ RECT_COLOR = 0, 200, 0
|
|
|
RECT_POS = W / 2, H / 2
|
|
RECT_POS = W / 2, H / 2
|
|
|
RECT_SIZE = W / 6., H / 6.
|
|
RECT_SIZE = W / 6., H / 6.
|
|
|
|
|
|
|
|
-TAP_RADIUS = 60
|
|
|
|
|
-TAP_INCREMENT = .25
|
|
|
|
|
|
|
+TAP_RADIUS = 65
|
|
|
|
|
+TAP_INCREMENT = .3
|
|
|
|
|
|
|
|
BEAM_COLOR = 255, 50, 50
|
|
BEAM_COLOR = 255, 50, 50
|
|
|
BEAM_LENGTH = 50
|
|
BEAM_LENGTH = 50
|
|
|
BEAM_WIDTH = 3
|
|
BEAM_WIDTH = 3
|
|
|
BEAM_INCREMENT = .8
|
|
BEAM_INCREMENT = .8
|
|
|
|
|
|
|
|
|
|
+MAX_SCALE = 10
|
|
|
|
|
+
|
|
|
# Create canvas GUI in the current thread
|
|
# Create canvas GUI in the current thread
|
|
|
screen = pygame.display.set_mode((W, H))
|
|
screen = pygame.display.set_mode((W, H))
|
|
|
|
|
|
|
@@ -60,7 +62,7 @@ def update():
|
|
|
# Apply scale and rotation to a fixed-size rectangle canvas
|
|
# Apply scale and rotation to a fixed-size rectangle canvas
|
|
|
canvas = pygame.Surface(RECT_SIZE)
|
|
canvas = pygame.Surface(RECT_SIZE)
|
|
|
canvas.fill(RECT_COLOR)
|
|
canvas.fill(RECT_COLOR)
|
|
|
- transformed = pygame.transform.rotozoom(canvas, degrees(angle), scale * 2)
|
|
|
|
|
|
|
+ transformed = pygame.transform.rotozoom(canvas, degrees(angle), scale)
|
|
|
rect = transformed.get_rect()
|
|
rect = transformed.get_rect()
|
|
|
rect.center = W / 2, H / 2
|
|
rect.center = W / 2, H / 2
|
|
|
screen.blit(transformed, rect)
|
|
screen.blit(transformed, rect)
|
|
@@ -121,13 +123,13 @@ def rotate(event):
|
|
|
|
|
|
|
|
def pinch(event):
|
|
def pinch(event):
|
|
|
global scale
|
|
global scale
|
|
|
- scale *= event.amount
|
|
|
|
|
|
|
+ scale = max(scale * event.amount, MAX_SCALE)
|
|
|
|
|
|
|
|
|
|
|
|
|
# Start touch event listener in separate thread
|
|
# Start touch event listener in separate thread
|
|
|
listener = MultiTouchListener(verbose=1, tuio_verbose=0)
|
|
listener = MultiTouchListener(verbose=1, tuio_verbose=0)
|
|
|
listener.bind('rotate', rotate)
|
|
listener.bind('rotate', rotate)
|
|
|
-listener.bind('pinch', pinch)
|
|
|
|
|
|
|
+#listener.bind('pinch', pinch)
|
|
|
listener.bind('tap', lambda e: taps.append([coord(*e.xy), FINGER_RADIUS]))
|
|
listener.bind('tap', lambda e: taps.append([coord(*e.xy), FINGER_RADIUS]))
|
|
|
listener.bind('single_tap', lambda e: dtaps.append(list(coord(*e.xy)) + [1]))
|
|
listener.bind('single_tap', lambda e: dtaps.append(list(coord(*e.xy)) + [1]))
|
|
|
listener.bind('double_tap', lambda e: dtaps.append(list(coord(*e.xy)) + [0]))
|
|
listener.bind('double_tap', lambda e: dtaps.append(list(coord(*e.xy)) + [0]))
|