按b加入红细胞
按n加入白细胞
按m加快血液循环
按鼠标加入病毒
'''
Fball = FCircle(20)�����ݣ����壩��FBox���������壩��FCompound�������壩
FLine��ֱ���壩��FPoly��������壩
'''
add_library('fisica')
def setup():
frameRate(300)
global world,f
size(800, 800)
Fisica.init(this) # ��ʼ��fisica
world = FWorld() # ����һ��fisica ����
world.setEdges() # ��fisica �������ñ߽�
f=1
def draw():
global ball,k,f
background(255)
world.draw() # ��fisica ���续����
world.setContactListener(ContactListener())
world.step() # ��fisica �����ݻ�һС��
f=f+1
'''
k=''
f=f+1
if f%100==0:
try:
#if key=='b':
ball = FCircle(20)
#else:
#pass#ball = FLine(a,b,0,100) # ����һ�� �� ��뾶20
fbody(ball,(random(0,800), 100),None,None,None,None,1.2,None,None,(255,0,0),None)# ������������
world.add(ball) # ��������������
except:
pass
if f%110==0:
#if key=='n':
ball = FBox(20,20) # ����һ�� �� ��뾶20
fbody(ball,(random(300,500), 100),None,None,None,None,1.2,None,None,(255,255,255),None)# ������������
world.add(ball)
'''
def keyPressed():
global ball,k
#world.setEdges()
if key=='z':
a=0
b=0
if key=='x':
a=0
b=100
if key=='c':
a=100
b=300
if key=='v':
a=300
b=0
if key=='m':
ball = FBox(30,30) # ����һ�� �� ��뾶20
fbody(ball,(mouseX, mouseY),None,None,None,None,2,None,(255,255,255),(255,255,254),None)# ������������
world.add(ball)
try:
if key=='b':
ball = FCircle(20)
#else:
#pass#ball = FLine(a,b,0,100) # ����һ�� �� ��뾶20
fbody(ball,(mouseX, mouseY),None,None,None,None,random(0,1.7),None,None,(255,0,0),None)# ������������
world.add(ball) # ��������������
except:
pass
if key=='n':
ball = FBox(20,20) # ����һ�� �� ��뾶20
fbody(ball,(mouseX, mouseY),None,None,None,None,random(0,1.7),None,None,(255,255,255),None)# ������������
world.add(ball)
def mousePressed():
ball = FCircle(20) # ����һ�� �� ��뾶20
fbody(ball,(mouseX, mouseY),None,None,None,None,random(0,1.7),None,None,(1,0,0),None)# ������������
world.add(ball) # ��������������
def fbody(fbody,pos,v,f,dens,damp,rest,fric,stroke,fill,img):
if pos:
fbody.setPosition(*pos)
if v:
fbody.setVelocity(*v)
if f:
fbody.setForce(*f)
if dens:
fbody.setDensity(dens)
if damp:
fbody.setDamping(damp)
if rest:
fbody.setRestitution(rest)
if fric:
fbody.setFriction(fric)
if stroke:
fbody.setStroke(*stroke)
if fill:
fbody.setFill(*fill)
if img:
fbody.attachImage(img)
class ContactListener(FContactAdapter):
def contactStarted(self, c):
global f
b1 = c.getBody1()
b2 = c.getBody2()
if not b1.isStatic():
if b2.getFillColor()==color(1,0,0)or b2.getFillColor()==color(255,255,255):
try:
if b2.getSize>0:
if b2.getFillColor()==color(1,0,0):
if not(b1.getFillColor()==color(255,255,255)):
if not(b1.getFillColor()==color(0,255,0)):
if not(b1.getFillColor()==color(255,255,254)):
b1.setFill(*(1,0,0))#b1.getFillColor()-10)
if b2.getFillColor()!=color(1,0,0):
if not(b2.getFillColor()==color(255,255,254)):
b1.setFill(*(255,0,0))#b1.getFillColor()-10
except:
if b1.getFillColor()==color(1,0,0):
if not(b2.getFillColor()==color(0,0,0)):
if random(0,10)<0.5:
world.remove(b2)
if not(b1.getFillColor()==color(255,255,255)):
if not(b1.getFillColor()==color(0,255,0)):
if not(b1.getFillColor()==color(255,255,254)):
b1.setFill(*(255,0,0))#b1.getFillColor()-10
if key=='v':
if not(b1.getFillColor()==color(0,0,0)):
world.remove(b1)
if not b2.isStatic():
if b1.getFillColor()==color(1,0,0)or b1.getFillColor()==color(255,255,255):
try:
if b1.getSize>0:
if b1.getFillColor()==color(1,0,0):
if not(b2.getFillColor()==color(255,255,255)):
if not(b2.getFillColor()==color(0,255,0)):
if not(b2.getFillColor()==color(255,255,254)):
fill=(1,0,0)
if b1.getFillColor()!=color(1,0,0):
if not(b1.getFillColor()==color(255,255,254)):
fill=(255,0,0)
b2.setFill(*fill)#b2.getFillColor()-10)
except:
if b2.getFillColor()==color(1,0,0):
if not(b1.getFillColor()==color(0,0,0)):
if random(0,10)<0.5:
world.remove(b1)
if not(b2.getFillColor()==color(255,255,255)):
if not(b2.getFillColor()==color(0,255,0)):
if not(b2.getFillColor()==color(255,255,254)):
fill=(255,0,0)
b2.setFill(*fill)#b2.getFillColor()-10)
if key=='v':
if not(b2.getFillColor()==color(0,0,0)):
world.remove(b2)
''''''