Chaser easing sketch w/ README update

This commit is contained in:
Xevion
2019-10-14 13:12:54 -05:00
parent a25364a569
commit 7768808934
3 changed files with 83 additions and 1 deletions

74
other/Chaser/Chaser.pyde Normal file
View File

@@ -0,0 +1,74 @@
import random, time
def setup():
size(1000, 1000)
frameRate(60*1)
noLoop()
global Mover
fromx, fromy = 0, height/2
tox, toy = width, height
Mover = MovingPoint(fromx, fromy, tox, toy)
ellipse(fromx, fromy, 10, 10)
ellipse(tox, toy, 10, 10)
class MovingPoint():
def __init__(self, x, y, newx=None, newy=None):
self.x, self.y = x, y
self.duration = 100
if newx == None or newy == None:
if not newx == None and newy == None:
print("newx and newy not set properly ({})".format((newx, newy)))
self.running = False
else:
self.start(newx, newy)
# Function that begins the movement of the point
def start(self, newx, newy):
self.frame = 0
self.oldx, self.oldy = self.x, self.y
self.newx, self.newy = newx, newy
self.running = True
# Function that ends the movement of the point
def end(self):
self.frame = self.duration
self.oldx, self.oldy, self.newx, self.newy = 0, 0, 0, 0
self.running = False
def tick(self):
if self.running:
self.frame += 1
self.x = self.easeInQuart(self.frame, self.oldx, self.newx-self.oldx, self.duration)
self.y = self.easeInQuart(self.frame, self.oldy, self.newy-self.oldy, self.duration)
if self.frame >= self.duration:
print("finished")
self.end()
ellipse(self.x, self.y, 1, 1)
def isRunning(self):
return self.running
# t=Current Time b=Start Value c=Change in Value d=Duration
def easeInQuart(self, t, b, c, d):
t, d = float(t), float(d)
t = t / d
return c * t * t * t * t + b
def reset():
old = g.fillColor
fill(204, 204, 204)
rect(0, 0, width, height)
fill(old)
def draw():
global Mover
if Mover.isRunning():
Mover.tick()
else:
x, y = random.randint(0, width), random.randint(0, height)
print("Going to {}".format((x,y)))
Mover.start(x, y)
def mouseClicked():
loop()

View File

@@ -0,0 +1,2 @@
mode=Python
mode.id=jycessing.mode.PythonMode

View File

@@ -1,3 +1,9 @@
# other # other
## About
Other sketches without any specific purpose. If enough fit into a specific category, a new category could be created and they'll be moved. Includes stuff like jokes, tests of the processing.py library, or interesting data structures. Other sketches without any specific purpose. If enough fit into a specific category, a new category could be created and they'll be moved. Includes stuff like jokes, tests of the processing.py library, or interesting data structures.
## Projects
- **Chaser** A test demonstrating easing equations.