def createSpider(): posX = random(mainSize/2, width-mainSize/2) posY = random(mainSize/2, height-mainSize/2) main = FCircle(mainSize) main.setPosition(posX, posY) main.setVelocity(random(-20,20), random(-20,20)) main.setFillColor(bodyColor) main.setNoStroke() main.setGroupIndex(2) world.add(main) mains.append(main) for i in range(legCount): x = legSize * cos(i*TWO_PI/3) + posX y = legSize * sin(i*TWO_PI/3) + posY leg = FCircle(mainSize/2) leg.setPosition(posX, posY) leg.setVelocity(random(-20,20), random(-20,20)) leg.setFillColor(bodyColor) leg.setNoStroke() world.add(leg) j = FDistanceJoint(main, leg) j.setLength(legSize) j.setNoStroke() j.setStroke(0) j.setFill(0) j.setDrawable(False) j.setFrequency(0.1) world.add(j)
def createSpider(): posX = random(mainSize / 2, width - mainSize / 2) posY = random(mainSize / 2, height - mainSize / 2) main = FCircle(mainSize) main.setPosition(posX, posY) main.setVelocity(random(-20, 20), random(-20, 20)) main.setFillColor(bodyColor) main.setNoStroke() main.setGroupIndex(2) world.add(main) mains.append(main) for i in range(legCount): x = legSize * cos(i * TWO_PI / 3) + posX y = legSize * sin(i * TWO_PI / 3) + posY leg = FCircle(mainSize / 2) leg.setPosition(posX, posY) leg.setVelocity(random(-20, 20), random(-20, 20)) leg.setFillColor(bodyColor) leg.setNoStroke() world.add(leg) j = FDistanceJoint(main, leg) j.setLength(legSize) j.setNoStroke() j.setStroke(0) j.setFill(0) j.setDrawable(False) j.setFrequency(0.1) world.add(j)
def setup(): global puenteY, world size(400, 400) smooth() puenteY = height / 3 Fisica.init(this) world = FWorld() bola = FCircle(40) bola.setPosition(width / 3, puenteY - 10) bola.setDensity(0.2) bola.setFill(120, 120, 190) bola.setNoStroke() world.add(bola) for i in range(stepCount): box = FBox(boxWidth, 10) box.setPosition(map(i, 0, stepCount - 1, boxWidth, width - boxWidth), puenteY) box.setNoStroke() box.setFill(120, 200, 190) world.add(box) steps.append(box) for i in range(1, stepCount): junta = FDistanceJoint(steps[i - 1], steps[i]) junta.setAnchor1(boxWidth / 2, 0) junta.setAnchor2(-boxWidth / 2, 0) junta.setFrequency(frequency) junta.setDamping(damping) junta.setFill(0) junta.calculateLength() world.add(junta) left = FCircle(10) left.setStatic(True) left.setPosition(0, puenteY) left.setDrawable(False) world.add(left) right = FCircle(10) right.setStatic(True) right.setPosition(width, puenteY) right.setDrawable(False) world.add(right) juntaPrincipio = FDistanceJoint(steps[0], left) juntaPrincipio.setAnchor1(-boxWidth / 2, 0) juntaPrincipio.setAnchor2(0, 0) juntaPrincipio.setFrequency(frequency) juntaPrincipio.setDamping(damping) juntaPrincipio.calculateLength() juntaPrincipio.setFill(0) world.add(juntaPrincipio) juntaFinal = FDistanceJoint(steps[stepCount - 1], right) juntaFinal.setAnchor1(boxWidth / 2, 0) juntaFinal.setAnchor2(0, 0) juntaFinal.setFrequency(frequency) juntaFinal.setDamping(damping) juntaFinal.calculateLength() juntaFinal.setFill(0) world.add(juntaFinal)
def setup(): global puenteY, world size(400, 400) smooth() puenteY = height/3 Fisica.init(this) world = FWorld() bola = FCircle(40) bola.setPosition(width/3, puenteY-10) bola.setDensity(0.2) bola.setFill(120, 120, 190) bola.setNoStroke() world.add(bola) for i in range(stepCount): box = FBox(boxWidth, 10) box.setPosition(map(i, 0, stepCount - 1, boxWidth, width-boxWidth), puenteY) box.setNoStroke() box.setFill(120, 200, 190) world.add(box) steps.append(box) for i in range(1, stepCount): junta = FDistanceJoint(steps[i-1], steps[i]) junta.setAnchor1(boxWidth/2, 0) junta.setAnchor2(-boxWidth/2, 0) junta.setFrequency(frequency) junta.setDamping(damping) junta.setFill(0) junta.calculateLength() world.add(junta) left = FCircle(10) left.setStatic(True) left.setPosition(0, puenteY) left.setDrawable(False) world.add(left) right = FCircle(10) right.setStatic(True) right.setPosition(width, puenteY) right.setDrawable(False) world.add(right) juntaPrincipio = FDistanceJoint(steps[0], left) juntaPrincipio.setAnchor1(-boxWidth/2, 0) juntaPrincipio.setAnchor2(0, 0) juntaPrincipio.setFrequency(frequency) juntaPrincipio.setDamping(damping) juntaPrincipio.calculateLength() juntaPrincipio.setFill(0) world.add(juntaPrincipio) juntaFinal = FDistanceJoint(steps[stepCount-1], right) juntaFinal.setAnchor1(boxWidth/2, 0) juntaFinal.setAnchor2(0, 0) juntaFinal.setFrequency(frequency) juntaFinal.setDamping(damping) juntaFinal.calculateLength() juntaFinal.setFill(0) world.add(juntaFinal)