hay! I have this code and it takes to much resources so the computer and i want to optimise it. what suggest me?
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
import java.util.ArrayList;
public class Body extends Actor{
int mirror = 0;
int test1=0;
int test2;
int x1 = 0;
int x2 = 0;
int changer = 0;
int l1 = 1;
int l2 = 1;
int max = 1;
int min = 1;
double WalkSpeed = 16;
int mover = 0;
int PortalMoveSpeed = 10;
float moveXr;
float moveYr;
float oldXr;
float oldYr;
float moveXb;
float moveYb;
float oldXb;
float oldYb;
int cellr = 0;
int cellb = 0;
int TPdelay = 0;
int TPdirectionR = 0;
int TPdirectionB = 0;
boolean testFOR1;
boolean testFOR2;
boolean fall = false;
int FallTime = 0;
public Body(){
scale();
int j = -1;
for(double i = 1;j != 1;i = i + 0.02){
if((int)(function1(i)*100) > -10 && (int)(function1(i)*100) < 10 && j != 1){
j++;
}
if((int)(function1(i)*100) > -10 && (int)(function1(i)*100) < 10 && j == 0){
l1 = (int)i;
}
if((int)(function1(i)*100) > -10 && (int)(function1(i)*100) < 10 && j == 1){
l2 = (int)i;
}
}
int n = -1;
for(float r = 1.0f;n != 1;r = r + 0.001f){
if((int)(DerFct1(r)*1000) == 0 && n != 1){
n++;
}
if((int)(DerFct1(r)*1000) == 0 && n == 0){
max = (int)r;
}
if((int)(DerFct1(r)*1000) == 0 && n == 1){
min = (int)r;
}
}
test2 = l1;
}
public void addedToWorld(){
getWorld().getObjects(bras_p1_1.class).get(0).setLocation(getX()-((int)(this.getImage().getWidth()*0.2)) , getY()-(int)(this.getImage().getHeight()*0.2));
getWorld().getObjects(bras_p1_2.class).get(0).setLocation(getX()+((int)(this.getImage().getWidth()*0.25)) , getY()-(int)(this.getImage().getHeight()*0.2));
getWorld().getObjects(Jambe_p1_1.class).get(0).setLocation(getX()-((int)(this.getImage().getWidth()*0.2)),getY()+((int)(this.getImage().getHeight()*0.35)));
getWorld().getObjects(Jambe_p1_2.class).get(0).setLocation(getX()+((int)(this.getImage().getWidth()*0.2)),getY()+((int)(this.getImage().getHeight()*0.35)));
getWorld().getObjects(Jambe_p2_2.class).get(0).setLocation(
(int)((getWorld().getObjects(Jambe_p1_2.class).get(0).getX() + (double)(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getWidth()*0.1)) + (double)(-Math.sin(Math.toRadians(function1(test2)))*(double)(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getHeight()*0.48))),
(int)(getWorld().getObjects(Jambe_p1_2.class).get(0).getY() + (double)(Math.cos(Math.toRadians(function1(test2)))*(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getHeight()*0.5))));
getWorld().getObjects(Jambe_p2_1.class).get(0).setLocation(
(int)((getWorld().getObjects(Jambe_p1_1.class).get(0).getX() + (double)(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getWidth()*0.1)) + (double)(-Math.sin(Math.toRadians(function1(test1)))*(double)(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getHeight()*0.48))),
(int)(getWorld().getObjects(Jambe_p1_1.class).get(0).getY() + (double)(Math.cos(Math.toRadians(function1(test1)))*(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getHeight()*0.5))));
getWorld().getObjects(bras_p2_1.class).get(0).setLocation(
(int)(getWorld().getObjects(bras_p1_1.class).get(0).getX() + (double)((Math.sin(Math.sin((double)-x2/(WalkSpeed/2))))*(getWorld().getObjects(bras_p1_1.class).get(0).getImage().getHeight()*0.45))),
(int)(getWorld().getObjects(bras_p1_1.class).get(0).getY() + (double)(Math.abs(Math.cos((Math.sin((double)x2/(WalkSpeed/2)))))*(getWorld().getObjects(bras_p1_1.class).get(0).getImage().getHeight()*0.45))));
}
public void act(){
if(Greenfoot.getMouseInfo() != null){
action();
}
}
public void action(){
TPdelay--;
List<portal_r> PR = getObjectsInRange((int)(this.getImage().getWidth()*1.5), portal_r.class);
List<portal_b> PB = getObjectsInRange((int)(this.getImage().getWidth()*1.5), portal_b.class);
List<portal_r> PBasR = getObjectsAtOffset(0, 60, portal_r.class);
List<portal_b> PBasB = getObjectsAtOffset(0, 60, portal_b.class);
Actor cellFall = getOneObjectAtOffset(0,(int)(getImage().getHeight()*1.6), cell.class);
if(PBasR.size() != 0 && getWorld().getObjects(portal_b.class).size() != 0){
fall = true;
}else if(PBasB.size() != 0 && getWorld().getObjects(portal_r.class).size() != 0){
fall = true;
}else if(cellFall == null){
fall = true;
}else{
fall = false;
FallTime = 0;
}
if(PB.size() != 0 && TPdelay <= 0){
TPdelay = 7;
switch(TPdirectionR) {
case 0:
this.setLocation(getWorld().getObjects(portal_r.class).get(0).getX()+20,getWorld().getObjects(portal_r.class).get(0).getY());
break;
case 1:
this.setLocation(getWorld().getObjects(portal_r.class).get(0).getX()-20,getWorld().getObjects(portal_r.class).get(0).getY());
break;
case 2:
this.setLocation(getWorld().getObjects(portal_r.class).get(0).getX(),getWorld().getObjects(portal_r.class).get(0).getY()+20);
break;
case 3:
this.setLocation(getWorld().getObjects(portal_r.class).get(0).getX(),getWorld().getObjects(portal_r.class).get(0).getY()-20);
break;
}
}
if(PR.size() != 0 && TPdelay <= 0){
TPdelay = 7;
switch(TPdirectionB) {
case 0:
this.setLocation(getWorld().getObjects(portal_b.class).get(0).getX()+20,getWorld().getObjects(portal_b.class).get(0).getY());
break;
case 1:
this.setLocation(getWorld().getObjects(portal_b.class).get(0).getX()-20,getWorld().getObjects(portal_b.class).get(0).getY());
break;
case 2:
this.setLocation(getWorld().getObjects(portal_b.class).get(0).getX(),getWorld().getObjects(portal_b.class).get(0).getY()+20);
break;
case 3:
this.setLocation(getWorld().getObjects(portal_b.class).get(0).getX(),getWorld().getObjects(portal_b.class).get(0).getY()-20);
break;
}
}
Actor cellMove = getOneObjectAtOffset((int)(getImage().getWidth()*1.3),0, cell.class);
Actor cellMove1 = getOneObjectAtOffset((int)-(getImage().getWidth()*1.3),0, cell.class);
List<cell> cellUP1 = getWorld().getObjects(Jambe_p2_1.class).get(0).getObjectsInRange((int)(getWorld().getObjects(Jambe_p2_1.class).get(0).getImage().getHeight()*0.4), cell.class);
List<cell> cellUP2 = getWorld().getObjects(Jambe_p2_2.class).get(0).getObjectsInRange((int)(getWorld().getObjects(Jambe_p2_2.class).get(0).getImage().getHeight()*0.4), cell.class);
if(fall == false){
if(cellUP1.size() != 0 || cellUP2.size() != 0){
if(cellUP1.size() != 0){
testFOR1 = cellUP1.get(0).isGround1;
}
if(cellUP2.size() != 0){
testFOR2 = cellUP2.get(0).isGround1;
}
if(testFOR1 == true && testFOR2 == false){
this.setLocation(getX(),getY()-20);
}else if(testFOR1 == false && testFOR2 == true){
this.setLocation(getX(),getY()-20);
}else if(testFOR1 == true && testFOR2 == true){
this.setLocation(getX(),getY()-20);
}else if(testFOR1 == false && testFOR2 == false){
this.setLocation(getX(),getY());
}
}
}
if(fall == true){
while(FallTime < 60){
FallTime++;
}
this.setLocation(getX(),(int)(getY()+racine(FallTime)));
}else if(fall == false){
this.setLocation(getX(),getY());
}
if(Greenfoot.getMouseInfo() != null && Greenfoot.getMouseInfo().getButton() == 1 && Greenfoot.mouseClicked(null)){
if(getWorld().getObjects(portal_r.class).size() != 0){
getWorld().removeObject(getWorld().getObjects(portal_r.class).get(0));
}
oldXr = (getWorld().getObjects(bras_p1_2.class).get(0).getX() + (int)((float)Math.cos((float)Math.atan2(((float)(Greenfoot.getMouseInfo().getY()-getWorld().getObjects(bras_p1_2.class).get(0).getY())), ((float)(Greenfoot.getMouseInfo().getX()-getWorld().getObjects(bras_p1_2.class).get(0).getX()))))*getWorld().getObjects(bras_p1_2.class).get(0).getImage().getWidth()/2));
oldYr = (getWorld().getObjects(bras_p1_2.class).get(0).getY() + (int)((float)Math.sin((float)Math.atan2(((float)(Greenfoot.getMouseInfo().getY()-getWorld().getObjects(bras_p1_2.class).get(0).getY())), ((float)(Greenfoot.getMouseInfo().getX()-getWorld().getObjects(bras_p1_2.class).get(0).getX()))))*getWorld().getObjects(bras_p1_2.class).get(0).getImage().getWidth()/2));
moveXr = ((float)Math.cos((float)Math.atan2(((float)(Greenfoot.getMouseInfo().getY()-getWorld().getObjects(bras_p1_2.class).get(0).getY())), ((float)(Greenfoot.getMouseInfo().getX()-getWorld().getObjects(bras_p1_2.class).get(0).getX()))))*PortalMoveSpeed);
moveYr = ((float)Math.sin((float)Math.atan2(((float)(Greenfoot.getMouseInfo().getY()-getWorld().getObjects(bras_p1_2.class).get(0).getY())), ((float)(Greenfoot.getMouseInfo().getX()-getWorld().getObjects(bras_p1_2.class).get(0).getX()))))*PortalMoveSpeed);
getWorld().addObject(new portal_r(oldXr,oldYr,moveXr,moveYr),(int)oldXr, (int)oldYr);
}
if(Greenfoot.getMouseInfo() != null && Greenfoot.getMouseInfo().getButton() == 3 && Greenfoot.mouseClicked(null)){
if(getWorld().getObjects(portal_b.class).size() != 0){
getWorld().removeObject(getWorld().getObjects(portal_b.class).get(0));
}
oldXb = (getWorld().getObjects(bras_p1_2.class).get(0).getX() + (int)((float)Math.cos((float)Math.atan2(((float)(Greenfoot.getMouseInfo().getY()-getWorld().getObjects(bras_p1_2.class).get(0).getY())), ((float)(Greenfoot.getMouseInfo().getX()-getWorld().getObjects(bras_p1_2.class).get(0).getX()))))*getWorld().getObjects(bras_p1_2.class).get(0).getImage().getWidth()/2));
oldYb = (getWorld().getObjects(bras_p1_2.class).get(0).getY() + (int)((float)Math.sin((float)Math.atan2(((float)(Greenfoot.getMouseInfo().getY()-getWorld().getObjects(bras_p1_2.class).get(0).getY())), ((float)(Greenfoot.getMouseInfo().getX()-getWorld().getObjects(bras_p1_2.class).get(0).getX()))))*getWorld().getObjects(bras_p1_2.class).get(0).getImage().getWidth()/2));
moveXb = ((float)Math.cos((float)Math.atan2(((float)(Greenfoot.getMouseInfo().getY()-getWorld().getObjects(bras_p1_2.class).get(0).getY())), ((float)(Greenfoot.getMouseInfo().getX()-getWorld().getObjects(bras_p1_2.class).get(0).getX()))))*PortalMoveSpeed);
moveYb = ((float)Math.sin((float)Math.atan2(((float)(Greenfoot.getMouseInfo().getY()-getWorld().getObjects(bras_p1_2.class).get(0).getY())), ((float)(Greenfoot.getMouseInfo().getX()-getWorld().getObjects(bras_p1_2.class).get(0).getX()))))*PortalMoveSpeed);
getWorld().addObject(new portal_b(oldXb,oldYb,moveXb,moveYb),(int)oldXb, (int)oldYb);
}
if(Greenfoot.getMouseInfo() != null && this.getX() < Greenfoot.getMouseInfo().getX()){
if(Greenfoot.getMouseInfo() != null){
getWorld().getObjects(bras_p1_2.class).get(0).turnTowards((int)(Greenfoot.getMouseInfo().getX()),(int)(Greenfoot.getMouseInfo().getY()));
}
if(mirror == 1){
mirror = 0;
Mirror();
getWorld().getObjects(Jambe_p1_1.class).get(0).mirror = 1;
getWorld().getObjects(Jambe_p1_2.class).get(0).mirror = 1;
getWorld().getObjects(Jambe_p2_1.class).get(0).mirror = 1;
getWorld().getObjects(Jambe_p2_2.class).get(0).mirror = 1;
getWorld().getObjects(bras_p1_1.class).get(0).mirror = 1;
getWorld().getObjects(bras_p1_2.class).get(0).mirror = 1;
getWorld().getObjects(bras_p2_1.class).get(0).mirror = 1;
}
if(!Greenfoot.isKeyDown("d") && !Greenfoot.isKeyDown("a") && getWorld().getObjects(Jambe_p1_1.class).get(0).getRotation() == 0 && x1 == 0){
mover = 0;
}
if(mover == 0){
getWorld().getObjects(bras_p1_1.class).get(0).setLocation(getX()-((int)(this.getImage().getWidth()*0.2)) , getY()-(int)(this.getImage().getHeight()*0.2));
getWorld().getObjects(bras_p1_2.class).get(0).setLocation(getX()+((int)(this.getImage().getWidth()*0.25)) , getY()-(int)(this.getImage().getHeight()*0.2));
getWorld().getObjects(Jambe_p1_1.class).get(0).setLocation(getX()-((int)(this.getImage().getWidth()*0.2)),getY()+((int)(this.getImage().getHeight()*0.35)));
getWorld().getObjects(Jambe_p1_2.class).get(0).setLocation(getX()+((int)(this.getImage().getWidth()*0.2)),getY()+((int)(this.getImage().getHeight()*0.35)));
getWorld().getObjects(Jambe_p2_2.class).get(0).setLocation(
(int)((getWorld().getObjects(Jambe_p1_2.class).get(0).getX() + (double)(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getWidth()*0.1)) + (double)(-Math.sin(Math.toRadians(function1(test2)))*(double)(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getHeight()*0.48))),
(int)(getWorld().getObjects(Jambe_p1_2.class).get(0).getY() + (double)(Math.cos(Math.toRadians(function1(test2)))*(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getHeight()*0.5))));
getWorld().getObjects(Jambe_p2_1.class).get(0).setLocation(
(int)((getWorld().getObjects(Jambe_p1_1.class).get(0).getX() + (double)(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getWidth()*0.1)) + (double)(-Math.sin(Math.toRadians(function1(test1)))*(double)(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getHeight()*0.48))),
(int)(getWorld().getObjects(Jambe_p1_1.class).get(0).getY() + (double)(Math.cos(Math.toRadians(function1(test1)))*(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getHeight()*0.5))));
getWorld().getObjects(bras_p2_1.class).get(0).setLocation(
(int)(getWorld().getObjects(bras_p1_1.class).get(0).getX() + (double)((Math.sin(Math.sin((double)-x2/(WalkSpeed/2))))*(getWorld().getObjects(bras_p1_1.class).get(0).getImage().getHeight()*0.45))),
(int)(getWorld().getObjects(bras_p1_1.class).get(0).getY() + (double)(Math.abs(Math.cos((Math.sin((double)x2/(WalkSpeed/2)))))*(getWorld().getObjects(bras_p1_1.class).get(0).getImage().getHeight()*0.45))));
getWorld().getObjects(Jambe_p1_1.class).get(0).setRotation((int)function1(test1));
getWorld().getObjects(Jambe_p1_2.class).get(0).setRotation((int)function1(test2));
getWorld().getObjects(Jambe_p2_1.class).get(0).setRotation((int)(2*Math.toDegrees(Math.sin(Math.sin((double)x1/WalkSpeed)))));
getWorld().getObjects(Jambe_p2_2.class).get(0).setRotation((int)(2.5*Math.toDegrees(Math.sin((double)x2/WalkSpeed))));
getWorld().getObjects(bras_p1_1.class).get(0).setRotation((int)(Math.toDegrees(Math.sin((double)x2/(WalkSpeed/2)))));
getWorld().getObjects(bras_p2_1.class).get(0).setRotation((int)Math.toDegrees(Math.sin((double)x2/(WalkSpeed/2))*1.5)-45);
}
if(mover == 1){
getWorld().getObjects(bras_p1_1.class).get(0).setLocation(getX()-((int)(this.getImage().getWidth()*0.2)) , getY()-(int)(this.getImage().getHeight()*0.2));
getWorld().getObjects(bras_p1_2.class).get(0).setLocation(getX()+((int)(this.getImage().getWidth()*0.25)) , getY()-(int)(this.getImage().getHeight()*0.2));
getWorld().getObjects(Jambe_p1_1.class).get(0).setLocation(getX()-((int)(this.getImage().getWidth()*0.2)),getY()+((int)(this.getImage().getHeight()*0.35)));
getWorld().getObjects(Jambe_p1_2.class).get(0).setLocation(getX()+((int)(this.getImage().getWidth()*0.2)),getY()+((int)(this.getImage().getHeight()*0.35)));
getWorld().getObjects(Jambe_p2_2.class).get(0).setLocation(
(int)((getWorld().getObjects(Jambe_p1_2.class).get(0).getX() + (double)(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getWidth()*0.1)) + (double)(Math.sin(Math.sin(-x1/(WalkSpeed/2))*0.5)*(double)(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getHeight()*0.48))),
(int)(getWorld().getObjects(Jambe_p1_2.class).get(0).getY() + (double)((Math.cos(Math.sin(-x1/(WalkSpeed/2))*0.5))*(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getHeight()*0.5))));
getWorld().getObjects(Jambe_p2_1.class).get(0).setLocation(
(int)((getWorld().getObjects(Jambe_p1_1.class).get(0).getX() + (double)(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getWidth()*0.1)) + (double)(Math.sin(Math.sin(-x2/(WalkSpeed/2))*0.5)*(double)(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getHeight()*0.48))),
(int)(getWorld().getObjects(Jambe_p1_1.class).get(0).getY() + (double)((Math.cos(Math.sin(-x2/(WalkSpeed/2))*0.5))*(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getHeight()*0.5))));
getWorld().getObjects(bras_p2_1.class).get(0).setLocation(
(int)(getWorld().getObjects(bras_p1_1.class).get(0).getX() + (double)((Math.sin(0.3*(Math.sin((double)x2/(WalkSpeed/2)))))*(getWorld().getObjects(bras_p1_1.class).get(0).getImage().getHeight()*0.45))),
(int)(getWorld().getObjects(bras_p1_1.class).get(0).getY() + (double)(Math.abs(Math.cos(0.3*(Math.sin((double)x2/(WalkSpeed/2)))))*(getWorld().getObjects(bras_p1_1.class).get(0).getImage().getHeight()*0.45))));
getWorld().getObjects(Jambe_p1_1.class).get(0).setRotation((int)(Math.toDegrees(Math.sin(-x1/(WalkSpeed/2))*0.5)));
getWorld().getObjects(Jambe_p1_2.class).get(0).setRotation((int)(Math.toDegrees(Math.sin(-x2/(WalkSpeed/2))*0.5)));
getWorld().getObjects(Jambe_p2_1.class).get(0).setRotation((int)(1.5*function1(test2))+20);
getWorld().getObjects(Jambe_p2_2.class).get(0).setRotation((int)(1.5*function1(test1))+20);
getWorld().getObjects(bras_p1_1.class).get(0).setRotation((int)(0.3*Math.toDegrees(Math.sin((double)-x2/(WalkSpeed/2)))));
getWorld().getObjects(bras_p2_1.class).get(0).setRotation((int)Math.toDegrees(Math.sin((double)-x2/(WalkSpeed/2))*1.05)-45);
}
if(Greenfoot.isKeyDown("d") && !Greenfoot.isKeyDown("a")){
mover = 0;
if(changer == 0){
test1 = 0;
test2 = l1;
x1 = 0;
x2 = l2/2;
changer = 1;
}
if(cellMove == null){
this.setLocation(getX()+3,getY());
}else{
this.setLocation(getX(),getY());
}
test1++;
if(test1 >= l2){
test1 = 0;
}
test2++;
if(test2 >= l2){
test2 = 0;
}
x1++;
if(x1 >= l2){
x1=0;
}
x2++;
if(x2 >= l2){
x2=0;
}
}
if(!Greenfoot.isKeyDown("d") && test1 != 0 && !Greenfoot.isKeyDown("a")){
changer = 0;
if(test1 < max){
test1--;
}
if(test1 >= max && test1 < l1){
test1++;
}
if(test1 > l1 && test1 < min){
test1--;
}
if(test1 >= min && test1 < l2){
test1++;
}
if(test1 >= l2 || test1 == l1){
test1 = 0;
}
}
if(!Greenfoot.isKeyDown("d") && test2 != l1 && !Greenfoot.isKeyDown("a")){
changer = 0;
if(test2 > l1 && test2 < min){
test2--;
}
if(test2 >= min && test2 < l2){
test2++;
}
if(test2 < l1 && test2 >= max){
test2++;
}
if(test2 < max && test2 > 0){
test2--;
}
if(test2 == 0 || test2 >= l2){
test2 = l1;
}
}
if(!Greenfoot.isKeyDown("d") && x1 != 0 && !Greenfoot.isKeyDown("a")){
changer = 0;
if(x1 > 0 && x1 <= (int)l2/4){
x1--;
}
if(x1 > (int)l2/4 && x1 < (int)l2/2){
x1++;
}
if(x1 > (int)l2/2 && x1 <= (int)3*l2/4){
x1--;
}
if(x1 > (int)3*l2/4 && x1 < (int)l2){
x1++;
}
if(x1 >= l2 || x1 == (int)l2/2){
x1 = 0;
}
}
if(!Greenfoot.isKeyDown("d") && x2 != 0 && !Greenfoot.isKeyDown("a")){
changer = 0;
if(x2 > 0 && x2 <= (int)l2/4){
x2--;
}
if(x2 > (int)l2/4 && x2 < (int)l2/2){
x2++;
}
if(x2 > (int)l2/2 && x2 <= (int)3*l2/4){
x2--;
}
if(x2 > (int)3*l2/4 && x2 < (int)l2){
x2++;
}
if(x2 >= l2 || x2 == (int)l2/2){
x2 = 0;
}
}
if(Greenfoot.isKeyDown("a") && !Greenfoot.isKeyDown("d")){
mover = 1;
if(changer == 0){
test1 = 0;
test2 = l1;
x1 = 0;
x2 = l2/2;
changer = 1;
}
if(cellMove1 == null){
this.setLocation(getX()-2,getY());
}else{
this.setLocation(getX(),getY());
}
test1++;
if(test1 >= l2){
test1 = 0;
}
test2++;
if(test2 >= l2){
test2 = 0;
}
x1++;
if(x1 >= l2){
x1=0;
}
x2++;
if(x2 >= l2){
x2=0;
}
test1 = x1;
test2 = x2;
}
}
if(Greenfoot.getMouseInfo() != null && this.getX() > Greenfoot.getMouseInfo().getX()){
getWorld().getObjects(bras_p1_2.class).get(0).turnTowards((int)(Greenfoot.getMouseInfo().getX()),(int)(Greenfoot.getMouseInfo().getY()));
if(mirror == 0){
mirror = 1;
Mirror();
getWorld().getObjects(Jambe_p1_1.class).get(0).mirror = 1;
getWorld().getObjects(Jambe_p1_2.class).get(0).mirror = 1;
getWorld().getObjects(Jambe_p2_1.class).get(0).mirror = 1;
getWorld().getObjects(Jambe_p2_2.class).get(0).mirror = 1;
getWorld().getObjects(bras_p1_1.class).get(0).mirror = 1;
getWorld().getObjects(bras_p1_2.class).get(0).mirror = 1;
getWorld().getObjects(bras_p2_1.class).get(0).mirror = 1;
}
if(!Greenfoot.isKeyDown("d") && !Greenfoot.isKeyDown("a") && getWorld().getObjects(Jambe_p1_1.class).get(0).getRotation() == 0 && x1 == 0){
mover = 0;
}
if(mover == 0){
getWorld().getObjects(bras_p1_1.class).get(0).setLocation(getX()+((int)(this.getImage().getWidth()*0.2)) , getY()-(int)(this.getImage().getHeight()*0.2));
getWorld().getObjects(bras_p1_2.class).get(0).setLocation(getX()-((int)(this.getImage().getWidth()*0.25)) , getY()-(int)(this.getImage().getHeight()*0.2));
getWorld().getObjects(Jambe_p1_1.class).get(0).setLocation(getX()+((int)(this.getImage().getWidth()*0.2)),getY()+((int)(this.getImage().getHeight()*0.35)));
getWorld().getObjects(Jambe_p1_2.class).get(0).setLocation(getX()-((int)(this.getImage().getWidth()*0.2)),getY()+((int)(this.getImage().getHeight()*0.35)));
getWorld().getObjects(Jambe_p2_1.class).get(0).setLocation(
(int)((getWorld().getObjects(Jambe_p1_1.class).get(0).getX() - (double)(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getWidth()*0.1)) + (double)(Math.sin(Math.toRadians(function1(test1)))*(double)(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getHeight()*0.48))),
(int)(getWorld().getObjects(Jambe_p1_1.class).get(0).getY() + (double)(Math.cos(Math.toRadians(function1(-test1)))*(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getHeight()*0.5))));
getWorld().getObjects(Jambe_p2_2.class).get(0).setLocation(
(int)((getWorld().getObjects(Jambe_p1_2.class).get(0).getX() - (double)(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getWidth()*0.1)) + (double)(Math.sin(Math.toRadians(function1(test2)))*(double)(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getHeight()*0.48))),
(int)(getWorld().getObjects(Jambe_p1_2.class).get(0).getY() + (double)(Math.cos(Math.toRadians(function1(-test2)))*(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getHeight()*0.5))));
getWorld().getObjects(bras_p2_1.class).get(0).setLocation(
(int)((getWorld().getObjects(bras_p1_1.class).get(0).getX() + getWorld().getObjects(bras_p1_1.class).get(0).getImage().getWidth()*0.1) + (double)(-Math.sin((double)(Math.sin((double)(Math.sin((double)-x2/(WalkSpeed/2))))))*(getWorld().getObjects(bras_p1_1.class).get(0).getImage().getHeight()*0.48))),
(int)((getWorld().getObjects(bras_p1_1.class).get(0).getY()- getWorld().getObjects(bras_p1_1.class).get(0).getImage().getHeight()*0.07) + (double)(Math.abs(Math.cos((double)(Math.sin((double)(Math.sin((double)-x2/(WalkSpeed/2))))))*(getWorld().getObjects(bras_p1_1.class).get(0).getImage().getHeight()*0.48)))));
getWorld().getObjects(Jambe_p1_1.class).get(0).setRotation((int)function1(-test1));
getWorld().getObjects(Jambe_p1_2.class).get(0).setRotation((int)function1(-test2));
getWorld().getObjects(Jambe_p2_1.class).get(0).setRotation((int)(-2*Math.toDegrees(Math.sin(Math.sin((double)x1/WalkSpeed)))));
getWorld().getObjects(Jambe_p2_2.class).get(0).setRotation((int)(-2*Math.toDegrees(Math.sin((double)x2/WalkSpeed)))+5);
getWorld().getObjects(bras_p1_1.class).get(0).setRotation((int)(Math.toDegrees(Math.sin((double)-x2/(WalkSpeed/2)))));
getWorld().getObjects(bras_p2_1.class).get(0).setRotation((int)Math.toDegrees(Math.sin((double)x2/(WalkSpeed/2))*-1.5)+45);
}
if(mover == 1){
getWorld().getObjects(bras_p1_1.class).get(0).setLocation(getX()+((int)(this.getImage().getWidth()*0.2)) , getY()-(int)(this.getImage().getHeight()*0.2));
getWorld().getObjects(bras_p1_2.class).get(0).setLocation(getX()-((int)(this.getImage().getWidth()*0.25)) , getY()-(int)(this.getImage().getHeight()*0.2));
getWorld().getObjects(Jambe_p1_1.class).get(0).setLocation(getX()+((int)(this.getImage().getWidth()*0.2)),getY()+((int)(this.getImage().getHeight()*0.35)));
getWorld().getObjects(Jambe_p1_2.class).get(0).setLocation(getX()-((int)(this.getImage().getWidth()*0.2)),getY()+((int)(this.getImage().getHeight()*0.35)));
getWorld().getObjects(Jambe_p2_1.class).get(0).setLocation(
(int)((getWorld().getObjects(Jambe_p1_1.class).get(0).getX() - (double)(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getWidth()*0.1)) + (double)(-Math.sin(Math.sin(-x1/(WalkSpeed/2))*0.5)*(double)(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getHeight()*0.48))),
(int)(getWorld().getObjects(Jambe_p1_1.class).get(0).getY() + (double)(Math.cos(Math.sin(-x1/(WalkSpeed/2))*0.5)*(getWorld().getObjects(Jambe_p1_1.class).get(0).getImage().getHeight()*0.5))));
getWorld().getObjects(Jambe_p2_2.class).get(0).setLocation(
(int)((getWorld().getObjects(Jambe_p1_2.class).get(0).getX() - (double)(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getWidth()*0.1)) + (double)(-Math.sin(Math.sin(-x2/(WalkSpeed/2))*0.5)*(double)(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getHeight()*0.48))),
(int)(getWorld().getObjects(Jambe_p1_2.class).get(0).getY() + (double)(Math.cos(Math.sin(-x2/(WalkSpeed/2))*0.5)*(getWorld().getObjects(Jambe_p1_2.class).get(0).getImage().getHeight()*0.5))));
getWorld().getObjects(bras_p2_1.class).get(0).setLocation(
(int)(getWorld().getObjects(bras_p1_1.class).get(0).getX() + (double)((Math.sin(0.3*(Math.sin((double)x2/(WalkSpeed/2)))))*(getWorld().getObjects(bras_p1_1.class).get(0).getImage().getHeight()*0.45))),
(int)(getWorld().getObjects(bras_p1_1.class).get(0).getY() + (double)(Math.abs(Math.cos(0.3*(Math.sin((double)x2/(WalkSpeed/2)))))*(getWorld().getObjects(bras_p1_1.class).get(0).getImage().getHeight()*0.45))));
getWorld().getObjects(Jambe_p1_1.class).get(0).setRotation((int)(Math.toDegrees(Math.sin(-x1/(WalkSpeed/2))*0.5)));
getWorld().getObjects(Jambe_p1_2.class).get(0).setRotation((int)(Math.toDegrees(Math.sin(-x2/(WalkSpeed/2))*0.5)));
getWorld().getObjects(Jambe_p2_1.class).get(0).setRotation((int)(-1.5*function1(test1))-10);
getWorld().getObjects(Jambe_p2_2.class).get(0).setRotation((int)(-1.5*function1(test2))-10);
getWorld().getObjects(bras_p1_1.class).get(0).setRotation((int)(0.3*Math.toDegrees(Math.sin((double)-x2/(WalkSpeed/2)))));
getWorld().getObjects(bras_p2_1.class).get(0).setRotation((int)Math.toDegrees(Math.sin((double)x2/(WalkSpeed/2))*-1.05)+45);
}
if(Greenfoot.isKeyDown("a") && !Greenfoot.isKeyDown("d")){
mover = 0;
if(changer == 0){
test1 = 0;
test2 = l1;
x1 = 0;
x2 = l2/2;
changer = 1;
}
if(cellMove1 == null){
this.setLocation(getX()-3,getY());
}else{
this.setLocation(getX(),getY());
}
if(test1 < l2){
test1++;
if(test1 >= l2){
test1 = 0;
}
}
if(test2 < l2){
test2++;
if(test2 >= l2){
test2 = 0;
}
}
x1++;
if(x1 >= l2){
x1=0;
}
x2++;
if(x2 >= l2){
x2=0;
}
}
if(!Greenfoot.isKeyDown("a") && Greenfoot.isKeyDown("d")){
mover = 1;
if(changer == 0){
test1 = 0;
test2 = l1;
x1 = 0;
x2 = l2/2;
changer = 1;
}
if(cellMove == null){
this.setLocation(getX()+2,getY());
}else{
this.setLocation(getX(),getY());
}
test1++;
if(test1 >= l2){
test1 = 0;
}
test2++;
if(test2 >= l2){
test2 = 0;
}
x1++;
if(x1 >= l2){
x1=0;
}
x2++;
if(x2 >= l2){
x2=0;
}
test1 = x1;
test2 = x2;
}
if(!Greenfoot.isKeyDown("a") && test1 != 0 && !Greenfoot.isKeyDown("d")){
if(test1 < max){
test1--;
}
if(test1 >= max && test1 < l1){
test1++;
}
if(test1 > l1 && test1 < min){
test1--;
}
if(test1 >= min && test1 < l2){
test1++;
}
if(test1 >= l2 || test1 == l1){
test1 = 0;
}
}
if(!Greenfoot.isKeyDown("a") && test2 != l1 && !Greenfoot.isKeyDown("d")){
if(test2 > l1 && test2 < min){
test2--;
}
if(test2 >= min && test2 < l2){
test2++;
}
if(test2 < l1 && test2 >= max){
test2++;
}
if(test2 < max && test2 > 0){
test2--;
}
if(test2 == 0 || test2 >= l2){
test2 = l1;
}
}
if(!Greenfoot.isKeyDown("a") && x1 != 0 && !Greenfoot.isKeyDown("d")){
if(x1 > 0 && x1 <= (int)l2/4){
x1--;
}
if(x1 > (int)l2/4 && x1 < (int)l2/2){
x1++;
}
if(x1 > (int)l2/2 && x1 <= (int)3*l2/4){
x1--;
}
if(x1 > (int)3*l2/4 && x1 < (int)l2){
x1++;
}
if(x1 >= l2 || x1 == (int)l2/2){
x1 = 0;
}
}
if(!Greenfoot.isKeyDown("a") && x2 != 0 && !Greenfoot.isKeyDown("d")){
changer = 0;
if(x2 > 0 && x2 <= (int)l2/4){
x2--;
}
if(x2 > (int)l2/4 && x2 < (int)l2/2){
x2++;
}
if(x2 > (int)l2/2 && x2 <= (int)3*l2/4){
x2--;
}
if(x2 > (int)3*l2/4 && x2 < (int)l2){
x2++;
}
if(x2 >= l2 || x2 == (int)l2/2){
x2 = 0;
}
}
}
}
private void scale(){
GreenfootImage img = this.getImage();
img.scale((int)(img.getWidth()/5.36666667),(int)(img.getHeight()/5.36666667));
}
public void scale1(){
GreenfootImage img = this.getImage();
img.scale((int)(img.getWidth()/8),(int)(img.getHeight()/8));
}
public void Mirror(){
GreenfootImage img = this.getImage();
img.mirrorHorizontally();
}
public double function1(double x){
return (double)(Math.toDegrees(Math.sin((double)(Math.sin((double)x/WalkSpeed)+Math.sin((double)x/WalkSpeed)+((double)x/WalkSpeed)))));
}
public float DerFct1(float x){
return (float)Math.toDegrees(((Math.cos(Math.sin((float)x/WalkSpeed)+Math.sin((float)x/WalkSpeed)+(float)x/WalkSpeed)*Math.sin((float)x/WalkSpeed)+Math.cos(Math.sin((float)x/WalkSpeed)+Math.sin((float)x/WalkSpeed)+(float)x/WalkSpeed)*Math.cos((float)x/WalkSpeed)*Math.sin((float)x/WalkSpeed)+Math.cos(Math.sin((float)x/WalkSpeed)+Math.sin((float)x/WalkSpeed)+x/WalkSpeed)*Math.cos((float)x/WalkSpeed)*Math.sin((float)x/WalkSpeed))/(WalkSpeed*Math.sin((float)x/WalkSpeed))));
}
public float racine(int x){
return (float)(2*Math.sqrt(0.05*x)*Math.exp(0.8));
}
}

