Created
June 30, 2017 14:15
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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