import java.applet.*; import java.awt.*; import java.awt.image.*; import java.awt.event.*; import java.io.*; import java.net.*; import java.text.*; import java.util.*; import java.util.zip.*; public class levitatedTentacle10 extends BApplet { // Set the font and its size (in units of pixels) int xWidth = 800, yHeight = 400; int total = 0; Tentacle[] tentacle = new Tentacle[1000]; boolean clear = true; boolean click = false; int counter = 0; void setup() { for (int i=0; i= 500){ total = 500; } else { if (counter > 0){ counter = 0; total = total + 1; } } } void drawState(){ if (clear){ fill(51); noStroke(); rect(0,0,width,height); } } void keyReleased () { if (key == ' ' && clear) { clear = false; } else if (key == ' ' && !clear) { clear = true; } } class Tentacle { int numNodes = 100; float head = 1; float girth = random(1,2); float speedCoefficient = random(0.5f,0.7f); float friction = random(0.95f,0.999f); float muscleRange = 45; float muscleFreq = random(0.005f,0.9f); float theta; float thetaMuscle; float count = 0; float xPos, yPos; float tv; float angle; float xOffset = width/2; float yOffset = height/2; SnakeHead[] node = new SnakeHead[numNodes]; Tentacle () { } void move () { if(count == 0){ xPos = mouseX; yPos = mouseY; for (int n=0; n 0){ node[n].setX(((pmouseX - mouseX)*(n/numNodes)) + mouseX); node[n].setY(((pmouseY - mouseY)*(n/numNodes)) + mouseY); } else { node[n].setX(mouseX); node[n].setY(mouseY); } } angle = atan2((mouseY-pmouseY), (mouseX-pmouseX)); theta = angle * (180/PI); } tv = tv + random(-10,10); theta = theta + tv; tv = tv * friction; if (node[0].getX() > width*4){ xPos = xPos - (width*5); for (int n=0; n height*4){ yPos = yPos - (height*5); for (int n=0; n500) || (yPos<100) || (yPos>500)){ // destroy(); //} } } for (int i=2; i