Advertisement
Warfront1

Untitled

Oct 17th, 2013
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. public Tile[] GenerateStraightPath2(Tile StartTile, Tile Destination){
  2. ArrayList<Tile> TilesReturnArray = new ArrayList<Tile>();
  3. int StartTileX = StartTile.getX();
  4. int StartTileY = StartTile.getY();
  5. int DestTileX = Destination.getX();
  6. int DestTileY = Destination.getY();
  7. int DeltaX = DestTileX-StartTileX;
  8. int DeltaY = DestTileY-StartTileY;
  9. double Slope = 0;
  10. if(!(DeltaY==0||DeltaX==0)){
  11. Slope = ((double)DestTileY-(double)StartTileY)/((double)DestTileX-(double)StartTileX);
  12. }
  13. if(Math.abs(DeltaX)>Math.abs(DeltaY)){
  14. if(StartTileX<=DestTileX){
  15. for(int X=Math.min(StartTileX, DestTileX); X!=Math.max(StartTileX, DestTileX); X++){
  16. int Y = (int) ((Slope*(X-StartTileX))+StartTileY);
  17. TilesReturnArray.add(new Tile(X,Y));
  18. }
  19. }
  20. else{
  21. for(int X=Math.max(StartTileX, DestTileX); X!=Math.min(StartTileX, DestTileX); X--){
  22. int Y = (int) ((Slope*(X-StartTileX))+StartTileY);
  23. TilesReturnArray.add(new Tile(X,Y));
  24. }
  25. }
  26. return TilesReturnArray.toArray(new Tile[TilesReturnArray.size()]);
  27. }
  28. else{
  29. if(StartTileY>=DestTileY){
  30. for(int Y=Math.max(StartTileY, DestTileY); Y!=Math.min(StartTileY, DestTileY); Y--){
  31. int X = StartTileX;
  32. if(Slope!=0){
  33. X = (int)((Y-StartTileY+(Slope*StartTileX))/Slope);
  34. }
  35. TilesReturnArray.add(new Tile(X,Y));
  36. }
  37. }
  38. else{
  39. for(int Y=Math.min(StartTileY, DestTileY); Y!=Math.max(StartTileY, DestTileY); Y++){
  40. int X = StartTileX;
  41. if(Slope!=0){
  42. X = (int)((Y-StartTileY+(Slope*StartTileX))/Slope);
  43. }
  44. TilesReturnArray.add(new Tile(X,Y));
  45. }
  46. }
  47. return TilesReturnArray.toArray(new Tile[TilesReturnArray.size()]);
  48. }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement