Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame
- import sys
- from pygame.locals import *
- from math import *
- from random import *
- from time import sleep as wait
- from pygame import gfxdraw
- pygame.init()
- white = (52, 73, 94)
- FPS = 300
- fpsClock = pygame.time.Clock()
- screenSize = 0, 0
- scrx0, scry0 = screenSize
- scr = pygame.display.set_mode((scrx0,scry0), pygame.FULLSCREEN)
- scrx, scry = scr.get_size()
- fullScreen = True
- spd = 2.5
- size = 7
- sizeLimit = 200
- foodSize = 5
- foodIntensity = 150
- foodDots = set()
- generated = False
- pygame.display.set_caption("Pygame")
- scr.fill(white)
- mousepos = 0, 0
- prevpos = 0, 0
- orig = 0, 0
- sizePer = .25
- speedPer = .001
- bgImage = pygame.transform.scale(pygame.image.load('BG.PNG').convert(),
- (scrx, scry))
- AI_limit = 10
- AI_generated = False
- AI_list = []
- def genAI():
- global AI_generated
- if not AI_generated:
- for n in range(AI_limit):
- randSize = randint(7, int(size))
- color = (randint(0, 255), randint(0, 255), randint(0, 255))
- AI_list.insert(len(AI_list),
- (randSize, (randint(0, scrx), randint(0, scry)), color))
- AI_generated = True
- else:
- if len(AI_list) < AI_limit:
- for n in range(AI_limit-(len(AI_list))):
- randSize = randint(7, int(size))
- color = (randint(0, 255), randint(0, 255), randint(0, 255))
- AI_list.insert(len(AI_list), (randSize,
- (randint(0, scrx), randint(0, scry)), color))
- for val in AI_list:
- radius, position, color = val
- x, y = position
- pygame.gfxdraw.filled_circle(scr,
- x, y, radius, (color))
- def chk_AI(pos):
- global size
- x, y = pos
- for n in AI_list:
- radius, position, color = n
- AI_posX, AI_posY = position
- if hypot(AI_posX - x, AI_posY - y) <= (size-(radius/2)):
- if not (size+radius) >= sizeLimit:
- size+=(radius/5)
- AI_list.remove(n)
- def genCir():
- global generated
- for num in range(foodIntensity):
- if generated == True:
- for var in foodDots:
- dotsX, dotsY, r, g, b = var
- pygame.gfxdraw.filled_circle(scr,
- dotsX, dotsY, foodSize, (r, g, b))
- return
- posX = randint(0, scrx)
- posY = randint(0, scry)
- r, g, b = randint(150, 255), randint(150, 255), randint(150, 255)
- pygame.gfxdraw.filled_circle(scr,
- posX, posY, foodSize, (r, g, b))
- cirVar = posX, posY, r, g, b
- foodDots.add(cirVar)
- generated = True
- def ckDotColl(x):
- global size, spd
- x, y = x
- z = []
- for n in foodDots:
- if hypot(n[0] - x, n[1] - y) <= (size+foodSize):
- z.insert(len(z) ,n)
- for n in z:
- foodDots.remove(n)
- if size < sizeLimit:
- size+=sizePer
- if not spd <= 1:
- spd-=speedPer
- def dotCell():
- if len(foodDots) < foodIntensity:
- var = foodIntensity-(len(foodDots))
- for n in range(var):
- posX = randint(0, scrx)
- posY = randint(0, scry)
- r, g, b = randint(150, 255), randint(150, 255), randint(150, 255)
- pygame.gfxdraw.filled_circle(scr,
- posX, posY, foodSize, (r, g, b))
- cirVar = posX, posY, r, g, b
- foodDots.add(cirVar)
- while True:
- scr.fill(white)
- scr.blit(bgImage, [0, 0])
- for event in pygame.event.get():
- if event.type == QUIT:
- pygame.quit()
- sys.exit()
- elif event.type == pygame.KEYDOWN:
- if event.key == pygame.K_ESCAPE:
- if fullScreen:
- fullScreen = False
- scr = pygame.display.set_mode((scrx, scry))
- else:
- fullScreen = True
- scr = pygame.display.set_mode((scrx0, scry0), pygame.FULLSCREEN)
- mousepos = pygame.mouse.get_pos()
- x, y = mousepos
- x0, y0 = orig
- x2, y2 = prevpos
- dx = x - x2
- dy = y - y2
- distance = sqrt(dx*dx + dy*dy)
- if distance == 0:
- distance = .000000000000001
- dx /= distance
- dy /= distance
- dx *= spd
- dy *= spd
- fx = x2+dx
- fy = y2+dy
- if int(ceil(fx)) < size:
- fx = int(ceil(fx))+(size-int(ceil(fx)))
- elif int(ceil(fx)) > scrx-size:
- fx = (int(ceil(fx))-(int(ceil(fx))-scrx))-size
- if int(ceil(fy)) < size:
- fy = int(ceil(fy))+(size-int(ceil(fy)))
- elif int(ceil(fy)) > scry-size:
- fy = (int(ceil(fy))-(int(ceil(fy))-scry))-size
- genCir();dotCell()
- pygame.gfxdraw.filled_circle(scr, int(ceil(fx))-int((size/18)), int(ceil(fy))+int((size/18)), int(ceil(size)), (189, 195, 199))
- pygame.gfxdraw.filled_circle(scr, int(ceil(fx)), int(ceil(fy)), int(ceil(size)), (236, 240, 241))
- prevpos = fx, fy
- ckDotColl((int(ceil(fx)), int(ceil(fy))))
- orig = x, y
- genAI()
- chk_AI((int(fx), int(fy)))
- pygame.display.update()
- fpsClock.tick(FPS)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement