Skip to content

Instantly share code, notes, and snippets.

@Zwork101
Created June 30, 2017 14:15
Show Gist options
  • Save Zwork101/04d363e619d1997e1e37ff6851b83563 to your computer and use it in GitHub Desktop.
Save Zwork101/04d363e619d1997e1e37ff6851b83563 to your computer and use it in GitHub Desktop.
A python version of the Coding Train's Agar.io for prossesing.py
font = None
p = None
foodBlobs = []
class Blob:
def __init__(self, r, p, c=color(50,100,100), player=False):
if player:
self.pos = PVector(width/2, height/2)
else:
self.pos = PVector(random(width*3), random(height*3))
self.player = player
self.r = r
self.p = p
self.c = c
self.vel = PVector(0,0)
def update(self):
if not self.player:
newvel = PVector(mouseX-width/2, mouseY-height/2)
newvel.setMag(3)
self.vel.lerp(newvel, 0.2)
self.pos.sub(self.vel)
def show(self):
noStroke()
fill(self.c)
ellipse(self.pos.x, self.pos.y, self.r*2, self.r*2)
def hit(self, player):
d = dist(self.pos.x, self.pos.y, player.pos.x, player.pos.y)
if d < player.r:
sum = PI * self.r**2 * player.r**2
self.r = sqrt(sum / PI)
return True
else:
return False
def setup():
global p, foodBlobs, font
size(600, 600)
p = Blob(40,1,color(255, 100, 50),True)
for b in range(120):
foodBlobs.append(Blob(7, int(random(1,3))))
font = createFont("Georgia", 16)
def draw():
global p, foodBlobs, font
background(255)
for i in range(len(foodBlobs) - 1, -1, -1):
foodBlobs[i].update()
if foodBlobs[i].hit(p):
p.p += foodBlobs[i].p
del foodBlobs[i]
foodBlobs.append(Blob(7, int(random(1,3))))
else:
foodBlobs[i].show()
p.show()
text('Points -> {}'.format(p.p) , 10, 20)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment