- Select manual -

Follow input

This example shows how to make a game object move to the position the user clicks.

follow follow.script

function init(self)
    msg.post(".", "acquire_input_focus") 
    self.moving = false 
end

local function landed(self) 
    self.moving = false 
end

function on_input(self, action_id, action)
    if action_id == hash("click") and action.pressed then 
        if not self.moving then 
            msg.post("#label", "disable") 
            self.moving = true 
            pos = vmath.vector3(action.x, action.y, 0) 
            go.animate(".", "position", go.PLAYBACK_ONCE_FORWARD, pos, go.EASING_LINEAR, 0.5, 0, landed) 
        end 
    end
end
  1. Tell the engine that this game object ("." is shorthand for the current game object) should listen to input. Any input will be received in the on_input() function.
  2. Store a flag in self (the current script component) to indicate if the game object is moving or nit.
  3. If we receive an input action named “click” and it is pressed then run the following.
  4. If the moving flag is not set.
  5. Disable (don’t show) the help text label.
  6. Set the moving flag.
  7. Create a new position called pos (of type vector3) where the user clicked.
  8. Animate the game object’s ("." is shorthand for the current game object) position to pos. When the animation is done, call the function landed().
  9. The function landed() is called when the animation is done. It just resets the moving flag so subsequent clicks will result in a new movement.

If you want to play with these examples, you can get the project on Github.

Do you want to see more examples? Why not write a few yourself and submit a pull request? We love contributions.

Contribute