Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (539)
Games in Android Showcase (132)
games submitted by our members
Games in WIP (603)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  A* AStar Algorithm follow path  (Read 661 times)
0 Members and 1 Guest are viewing this topic.
Offline Kronos

Junior Devvie


Medals: 1



« Posted 2013-12-28 12:31:03 »

Hey,
I'm working on a SimTower clone, and have implemented an a star algorithm successfully, BUT I got huge problems following the path I get from the algo. I got units which can move in that "tower", and each unit gets an own path as an ArrayList containing waypoints. The problem is, that these waypoints are coordinates from a two dimensional array, which I created on the flow from the information my tower gives. I didn't implemented my tower tile based, that is not cool... Sad however I have to convert all tower information into an 2dim Array. I think there is no mistake. The problem is to follow the path...

1  
2  
3  
4  
5  
x += (Floor.convertToPixelX(way.get(waycount).x) - x); //moving that unit, not with delta time yet.... works, but creepy

if (Floor.convertToIndexX(x) == way.get(waycount).x && Floor.convertToIndexX(y) == way.get(waycount).y) {
waycount--;  //waycount starts with the highest index... the fist part of the way
}


I dont need a 100% solution for this. I need an idea how to implement it better, and make it even work. How would you do this? If you interessted in my Waypoint class, let me know, maybe the whole implementation is crap Sad
Offline Drenius
« Reply #1 - Posted 2013-12-28 12:45:04 »

Well, I cannot completely understand whats your problem, but if you use aStar in a not tile based System, you could add a waypoint grid though and make each waypoint passable if you can reach every directly surrounding waypoint from it (no obstacle on that way) or not if not.
Offline Kronos

Junior Devvie


Medals: 1



« Reply #2 - Posted 2013-12-28 13:02:05 »

Hi, thanks for the answer. The problem lies in the "walking" through those points... the algorithm and grid is fine Wink

This is how I got so far, after starting this topic:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
int mul = 0;
   public void update(int delta) {
      if (waycount >= 0) {
         if (waycount >= 1 && way.get(waycount-1) == null) {
            waycount--;
         } else if(waycount >= 1 && way.get(waycount-1) != null) {
            if ((way.get(waycount-1).x - way.get(waycount).x) < 0) {
               mul = -1;
            } else if ((way.get(waycount-1).x - way.get(waycount).x) > 0) {
               mul = 1;
            } else if ((way.get(waycount-1).x - way.get(waycount).x) == 0) {
               waycount--;
            }
         }
         
         x += mul * Timer.getInstance().getMovementSpeed() * delta;
         
         if((mul < 0 && Floor.convertToIndexX(x) <= way.get(waycount).x) || (mul > 0 && Floor.convertToIndexX(x) >= way.get(waycount).x) ) {
            waycount--;
         }
      } else {
         if (!arrived) {
            x = Floor.convertToPixelX(way.get(0).x);
            arrived = true;
         }
      }
   }


First I try to determine which direction I have to choose, -1 or 1.... This does not work everytime... however  Roll Eyes
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Drenius
« Reply #3 - Posted 2013-12-28 13:09:21 »

I was also working with aStar ftft a few weeks ago.
Just managed pathusing by if(nextWaypoint.x == x-1) goLeft() (roughly that way)
But maybe thats not yet perfect, there is a bug somewhere...
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

rwatson462 (30 views)
2014-12-15 09:26:44

Mr.CodeIt (23 views)
2014-12-14 19:50:38

BurntPizza (50 views)
2014-12-09 22:41:13

BurntPizza (84 views)
2014-12-08 04:46:31

JscottyBieshaar (45 views)
2014-12-05 12:39:02

SHC (59 views)
2014-12-03 16:27:13

CopyableCougar4 (57 views)
2014-11-29 21:32:03

toopeicgaming1999 (123 views)
2014-11-26 15:22:04

toopeicgaming1999 (114 views)
2014-11-26 15:20:36

toopeicgaming1999 (32 views)
2014-11-26 15:20:08
Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!