Enemy chase player? (RESOLVED)
dumbTactics last edited by dumbTactics
UPDATE: Organized & Updated post, in case community members pose the same question, they will see resolution quoted below:
@SavageBuilderKid You can have a timer in the enemy that would constantly trigger the following:
- Get the position of enemy and player
- If enemy's x position < player's x position:
- Move right. (You can use set velocity, apply force, move by, etc. depends on what you are doing.)
- Otherwise, move left.
This is a very simple method to emulate an enemy chasing the player. Let me know if you need more!
I am trying to conduct a study of enemy AI behavior. In my case:
- Player is running away from enemy
- Enemy is chasing the player <— this is where I’m stuck
I created a simple scene that mimicks the donkey kong gif below:
except, in my game scene, donkey kong chases mario throughout the different floor levels. No other elements.
I read this excellent Enemy A.I. tutorial from hyperPad:
It teaches how to have the enemy, attack a player within “x” proximity.
It also explains
- tag system
- get position behavior
These logic systems, provides the enemy with player coordinate awareness. Wonderful! but how do I get the enemy to chase the player?
That question, is where I’m stumped, any nudge in the right direction will help me tons. Thank you
TutorialDoctor last edited by TutorialDoctor
@dumbTactics as a quick guess, I suppose you can use the move to point behavior. You may have to keep track of all player positions in an array and move the enemy to each point after a certain amount of time using a timer behavior.
For basic player follower functionality you can use a Timer, Get Position, and Move to Point behavior to move an enemy to a player position every ‘x’ amount of seconds.
RobinsonX last edited by
To move a physical object, you can use Set Velocity or Apply Force.
Set velocityis great to getting the object to the exact x and y velocity you want - however, since you can manipulate velocity, you have the risk of having your object clip through walls if it's going fast enough.
Apply forceis great for making your object move naturally as if another player is controlling it. This also makes the object less likely to clip through walls because the object's velocity isn't being replaced but rather added / subtracted.
RobinsonX last edited by RobinsonX
The x and y velocity / force will push the object to move.
X = Horizontal
Y = Vertical
You can use If behaviors to compare the position between the enemy and player.
player Xis greater than
enemy X-> enemy moves right