[c3p] Need help with Workaround for Tile Movement :D

  • so I'm trying out the tile movement for the first time today.

    The pathfinding Grid movement for the "move to" action implements it both by simultaneously addressing both the x and y components resulting in diagonal movement when I want to make my sprite follow 'L' and 'S' paths.

    EDIT: I forgot to include the problems I'm encountering:

    - the pathfinding for this behavior seems to 'brute force' its way into an obstacle for lack of a better term. in the c3p file I provided, you'll notice clicking on a space behind a solid object the sprite will move along the path but stops as soon as it collides with a solid block instead of trying to find a way around it. this happens both for diagonal and adjacent movements.

    There are 2 things I'm trying to do:

    1. disable diagonal movement by setting it so the movement tackles X and Y components at a time

    2. set a single function for movement that restarts when the condition 'not in position x,y' yet.

    it sounds simple enough on paper but somehow I'm having a brain fart over this.

    c3p link below:

    https://1drv.ms/u/s!AgpkemTjg_pViCrIE-D4TS-PKCXK?e=Rl5u4Q

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • I think you are confusing Tile Movement and Pathfinding. These behaviors are different, and Tile Movement doesn't have pathfinding feature. That's why your character sprite bumps into solid walls.

    I suggest calculating the path with Pathfinding behavior (you can disable diagonals in it). And then move the sprite with MoveTo behavior, using the waypoints calculated by Pathfinding.

  • I think you are confusing Tile Movement and Pathfinding. These behaviors are different, and Tile Movement doesn't have pathfinding feature. That's why your character sprite bumps into solid walls.

    I suggest calculating the path with Pathfinding behavior (you can disable diagonals in it). And then move the sprite with MoveTo behavior, using the waypoints calculated by Pathfinding.

    No I wouldn't say I'm confusing the 2 but more like I assumed the Tile Movement behavior calculated the best path for you tile by tile since the obstacle is set by default to all solids. I don't even know where to begin with that implementation. I tried setting the pathfinding diagonals off but somehow the sprite still travels diagonally calling the 'move along path' action.

    how do I even see the generated path btw?

  • I changed you example, take a look:

    dropbox.com/s/06c1xqlquzhyeig/TileWorkaround2.c3p

    Also, check the official Pathfinding template, it shows the generated path.

  • I changed you example, take a look:

    https://www.dropbox.com/s/06c1xqlquzhyeig/TileWorkaround2.c3p?dl=0

    Also, check the official Pathfinding template, it shows the generated path.

    Damn. The key thing here was the "wait for previous action to complete"

    my initial actions were:

    - Find Path to ...

    and

    On path found | Move along path

    and it resulted in this jerky diagonal movement.

    Thanks!

    EDIT: Is it possible to project the path it's going to travel while highlighting grid boxes but before actually clicking on them? I'm thinking first adding 5-6 'projector' sprites in there but am not sure if you can subject them to another sprite's path without adding the "Pathfinding" function to them separately. seems like a waste of memory

  • There are a few other important changes I made in your project - reduced character collision polygon, changed origin point position.

    Is it possible to project the path it's going to travel

    Yes, check out this demo:

    howtoconstructdemos.com/pathfinding-instantly-and-constantly-showing-path-to-cursor-position-capx

  • There are a few other important changes I made in your project - reduced character collision polygon, changed origin point position.

    > Is it possible to project the path it's going to travel

    Yes, check out this demo:

    https://howtoconstructdemos.com/pathfinding-instantly-and-constantly-showing-path-to-cursor-position-capx/

    Nice. I'll check it out.

  • "wait for previous action to complete" is only needed if you want to start moving the sprite in the same event. You can still use "On path found" event.

  • "wait for previous action to complete" is only needed if you want to start moving the sprite in the same event. You can still use "On path found" event.

    https://1drv.ms/u/s!AgpkemTjg_pViCtaGqARqUuvT2eL

    Thanks. Here's the a link to the combined pathfinding with the path projection.

    Btw would you happen to know how I could set it so it only travels a certain distance along the path like maybe I could set a distance of only 5 or 6 tiles?

  • Btw would you happen to know how I could set it so it only travels a certain distance along the path like maybe I could set a distance of only 5 or 6 tiles?

    I can't think of an easy way to do this.. You can calculate traveled distance on every tick and when its close to 5 tiles, stop at the nearest tile center.

    Or you can try Tile Movement instead of MoveTo - move 1 tile at a time to the next Pathfinding waypoint. After 5 tiles stop.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)