Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Tile[] GenerateStraightPath2(Tile StartTile, Tile Destination){
- ArrayList<Tile> TilesReturnArray = new ArrayList<Tile>();
- int StartTileX = StartTile.getX();
- int StartTileY = StartTile.getY();
- int DestTileX = Destination.getX();
- int DestTileY = Destination.getY();
- int DeltaX = DestTileX-StartTileX;
- int DeltaY = DestTileY-StartTileY;
- double Slope = 0;
- if(!(DeltaY==0||DeltaX==0)){
- Slope = ((double)DestTileY-(double)StartTileY)/((double)DestTileX-(double)StartTileX);
- }
- if(Math.abs(DeltaX)>Math.abs(DeltaY)){
- if(StartTileX<=DestTileX){
- for(int X=Math.min(StartTileX, DestTileX); X!=Math.max(StartTileX, DestTileX); X++){
- int Y = (int) ((Slope*(X-StartTileX))+StartTileY);
- TilesReturnArray.add(new Tile(X,Y));
- }
- }
- else{
- for(int X=Math.max(StartTileX, DestTileX); X!=Math.min(StartTileX, DestTileX); X--){
- int Y = (int) ((Slope*(X-StartTileX))+StartTileY);
- TilesReturnArray.add(new Tile(X,Y));
- }
- }
- return TilesReturnArray.toArray(new Tile[TilesReturnArray.size()]);
- }
- else{
- if(StartTileY>=DestTileY){
- for(int Y=Math.max(StartTileY, DestTileY); Y!=Math.min(StartTileY, DestTileY); Y--){
- int X = StartTileX;
- if(Slope!=0){
- X = (int)((Y-StartTileY+(Slope*StartTileX))/Slope);
- }
- TilesReturnArray.add(new Tile(X,Y));
- }
- }
- else{
- for(int Y=Math.min(StartTileY, DestTileY); Y!=Math.max(StartTileY, DestTileY); Y++){
- int X = StartTileX;
- if(Slope!=0){
- X = (int)((Y-StartTileY+(Slope*StartTileX))/Slope);
- }
- TilesReturnArray.add(new Tile(X,Y));
- }
- }
- return TilesReturnArray.toArray(new Tile[TilesReturnArray.size()]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement