Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
gdevelop5:behaviors:pathfinding [2018/10/10 23:48]
valiant_curiosity [Add behaviour to object]
gdevelop5:behaviors:pathfinding [2019/05/29 12:05]
akbarhabeebb [Option 2: Pathfinding Obstacle behavior] Typo
Line 1: Line 1:
 #Pathfinding #Pathfinding
  
-Pathfinding behavior allows us to move objects to a selected destination as well as to flag items as obstacles. Objects that are flagged as obstacles will be avoided by the moving objects.+**[[#Examples|I would rather see the Pathfinding behavior examples! Please take me there now.]] 
 +**
  
 +Pathfinding behavior allows us to move objects to a selected destination as well as to flag items as obstacles. Objects that are flagged as obstacles will be avoided by the moving objects.
  
-## Add behaviour to object +## Add behavior to object 
-To add behavior to an object, as usual, create the object. Then open the object's properties by right clicking on the Objects list located on the right of the Scene Interface. Select "Edit object" from the popup list. +To add behavior to an object, as usual, create the object. Then open the object's properties by right-clicking on the Objects list located on the right of the Scene Interface. Select "Edit object" from the popup list. 
  
 {{:gdevelop5:editplayerobject.jpg?200|}} {{:gdevelop5:editplayerobject.jpg?200|}}
Line 18: Line 20:
 {{ :gdevelop5:behaviors:pathfinding-behavior-inlist.png?nolink |}} {{ :gdevelop5:behaviors:pathfinding-behavior-inlist.png?nolink |}}
  
-Pathfinding behavior allows us to move the object to a destination while  avoiding all objects flagged as an obstacle. +"Pathfinding behaviorallows us to move the object to a destination while avoiding all objects flagged as an obstacle. 
  
 After we add the behaviour to the object, we can customize a number of options. After we add the behaviour to the object, we can customize a number of options.
Line 30: Line 32:
   * **rotate object:** if you don't want the object to rotate while moving on the path, disable the object's rotation.   * **rotate object:** if you don't want the object to rotate while moving on the path, disable the object's rotation.
   * **rotate speed:** sets the speed of the object's rotation.   * **rotate speed:** sets the speed of the object's rotation.
-  * **virtual cell height and width:** our path is generated using a virtual grid. We can change the size of the cells here, the smaller the cell size, the smoother the movement is going to be. //A smaller cell size implies more calculations so try to still keep size as large as possible.//+  * **virtual cell height and width:** our path is generated using a virtual grid. We can change the size of the cells here, the smaller the cell size, the smoother the movement is going to be. //A smaller cell size implies more calculations so try to still keep the size as large as possible.//
  
-## Option 2: PathfindingObstacle behavior+## Option 2: Pathfinding Obstacle behavior
 {{ :gdevelop5:behaviors:pathfinding-obstacle-inlist.png?nolink |}} {{ :gdevelop5:behaviors:pathfinding-obstacle-inlist.png?nolink |}}
  
-By using the pathfinding obstacle behavior, we can flag any object to be an obstacle. +By using the "Pathfinding obstacle behavior", we can flag any object to be an obstacle. 
 After we add the behavior to the object, we have two options to customize: After we add the behavior to the object, we have two options to customize:
 {{ :gdevelop5:behaviors:pathfinding-obstacle-options.png?nolink |}} {{ :gdevelop5:behaviors:pathfinding-obstacle-options.png?nolink |}}
  
   * **impassable:** if we enable this, the obstacle is going to be impassable. The moving object is going to avoid it at all cost.   * **impassable:** if we enable this, the obstacle is going to be impassable. The moving object is going to avoid it at all cost.
-  * **cost:** if the obstacle is not impassable, we can set a cost for the obstacle. The moving object, when looking for the best possible path to a destination, is going to prefer to avoid the obstacle with high cost values. For example, a river might have some cost. The moving object, if possible,  will avoid it. However, if there is no other way around the river, or if the river has a lower cost compared to another area, the moving object will go through it (instead of climbing a mountain with a higher cost for example). And if we put crocodiles into the river and increase its cost, the moving object might decide to climb the mountains instead. +  * **cost:** if the obstacle is not impassable, we can set a cost for the obstacle. The moving object, when looking for the best possible path to a destination, is going to prefer to avoid the obstacle with high-cost values. For example, a river might have some cost. The moving object, if possible,  will avoid it. However, if there is no other way around the river, or if the river has a lower cost compared to another area, the moving object will go through it (instead of climbing a mountain with a higher cost for example). And if we put crocodiles into the river and increase its cost, the moving object might decide to climb the mountains instead.
  
 ## Examples  ## Examples 
Line 50: Line 51:
 **General Path Finding Behavior** **General Path Finding Behavior**
  
-{{:gdevelop5:behaviors:pathfindinggeneral.png?200|}}+[[https://editor.gdevelop-app.com/?project=example://pathfinding|{{:gdevelop5:behaviors:pathfindinggeneral.png?200|}}]]
  
 * https://editor.gdevelop-app.com/?project=example://pathfinding * https://editor.gdevelop-app.com/?project=example://pathfinding
Line 56: Line 57:
 **Path Finding Basics** **Path Finding Basics**
  
-{{:gdevelop5:behaviors:pathfindingbasics.png?200|}}+[[https://editor.gdevelop-app.com/?project=example://pathfinding-basics|{{:gdevelop5:behaviors:pathfindingbasics.png?200|}}]]
  
 * https://editor.gdevelop-app.com/?project=example://pathfinding-basics * https://editor.gdevelop-app.com/?project=example://pathfinding-basics