java - Issues moving objects with a trail with slight change -


so i've been trying modify code bit, , i'm confused why code going working 1 way doing different such minor change. i've been debugging , changing minor things, yet when make change, trail clumps instead of keeping distance.

objective: i'm trying figure out why minor change clumping trail instead of keeping distance.

here player moving before minor code change , works perfectly.

public void move(int delta){     float movespeed = playerspeed * delta;     if(ismoving() &&              (player.get(0).getx() == playerdest.get(0).getx()) &&             (player.get(0).gety() == playerdest.get(0).gety())){         for(int = 1; < getsize(); i++){             if(playerdest.get(i).getx() != player.get(i-1).getx()){                 playerdest.get(i).setx(player.get(i - 1).getx());             }             else if(playerdest.get(i).gety() != player.get(i-1).gety()){                 playerdest.get(i).sety(player.get(i - 1).gety());             }         }          if(left){             playerdest.get(0).setx(player.get(0).getx() - blocksize);         }         else if(right){             playerdest.get(0).setx(player.get(0).getx() + blocksize);         }         else if(up){             playerdest.get(0).sety(player.get(0).gety() - blocksize);         }         else if(down){             playerdest.get(0).sety(player.get(0).gety() + blocksize);         }     }     else{         for(int = 0; < getsize(); i++){             if(up || down){                 if(player.get(i).getx() != playerdest.get(i).getx()){                     player.get(i).setx(player.get(i).getx() + movedirection(playerdest.get(i).getx(), player.get(i).getx(), movespeed));                 }                 else if(player.get(i).gety() != playerdest.get(i).gety()){                     player.get(i).sety(player.get(i).gety() + movedirection(playerdest.get(i).gety(), player.get(i).gety(), movespeed));                 }             }             else if(right || left){                 if(player.get(i).gety() != playerdest.get(i).gety()){                     player.get(i).sety(player.get(i).gety() + movedirection(playerdest.get(i).gety(), player.get(i).gety(), movespeed));                 }                 else if(player.get(i).getx() != playerdest.get(i).getx()){                     player.get(i).setx(player.get(i).getx() + movedirection(playerdest.get(i).getx(), player.get(i).getx(), movespeed));                 }             }      private float movedirection(float to, float from, float movespeed){         if(to - > 0){             return 1;         }         else if(to - < 0){             return -1;         }         else{             return 0;         }     } 

now minor change within movedirection() method , readjusting distance. add in variable of movement speeds.

        if(left){             playerdest.get(0).setx(player.get(0).getx() - movespeed);         }         else if(right){             playerdest.get(0).setx(player.get(0).getx() + movespeed);         }         else if(up){             playerdest.get(0).sety(player.get(0).gety() - movespeed);         }         else if(down){             playerdest.get(0).sety(player.get(0).gety() + movespeed);         }  private float movedirection(float to, float from, float movespeed){     return integer.signum((int)to - (int) from) * movespeed; } 

why making minor change way player moves? depending on how fast game refreshing, need use value. hence variable delta , float movespeed;

i don't understand why minor change making trail clump , not following directions... i've been trying different ways hours now. appreciated!

thank you!

the cast int ((int)to - (int) from) big change. rounds to , from down integral numbers, calculates difference , calls signum. different previous code calculated differences floating point numbers , checked > 0 or < 0, without cast integral numbers.

example:

to = 0.9 = 0.2 

this result in

integer.signum(0 - 0) * movespeed 

, evaluates 0.

try java.lang.math.signum(to - from) * movespeed instead. works floats.


Comments

Popular posts from this blog

php - Why I am getting the Error "Commands out of sync; you can't run this command now" -

linux - Does gcc have any options to add version info in ELF binary file? -

java - Are there any classes that implement javax.persistence.Parameter<T>? -