|
|
|
|
Reply From: |
kidscancode |
First of all InputEventScreenTouch
is an event object, not a boolean. You would want to test
func _input(event):
if event is InputEventScreenTouch:
And then you can test for pressed or released and set the player’s position like so:
func _input(event):
if event is InputEventScreenTouch and event.pressed:
player.global_position = event.position
This would teleport the player to the touch location. If you would rather move there, you can set a target and then move the player towards that target. See
https://docs.godotengine.org/en/latest/getting_started/step_by_step/exporting.html
for a full example of this style of character movement.
thanks dude, i still have to learn the engine. i’ll try
Jr_Dan | 2019-03-17 17:17
How do i swipe left and make my character move left at a constant velocity and same in other directions.
I want to make a snake game that uses swipe to move
Mathuthuka | 2019-03-18 03:34
For that you can use InputEventScreenDrag, which has a relative
property indicating the direction of the swipe.
func _input(event):
if event is InputEventScreenDrag:
if event.relative.x > 0:
# move right
if event.relative.x < 0:
# move left
# etc
kidscancode | 2019-03-18 06:27
Its not working
I did this
extends KinematicBody2D
var speed = 200
var velocity = Vector2 ()
func _input(event) :
Velocity = Vector2 ()
If event is InputEventScreenDrag :
If event.relative.x > 0 :
velocity.x += 1
print (‘right’)
#etc
velocity = velocity.normalized ()
The print works when i drag but the kinematicbody2D doesnt move.
How do i move ?
Mathuthuka | 2019-03-18 15:35
Your code is not formatted correctly, please do that so that it is readable.
I don’t see any movement code there. You’re setting the velocity, but without then using the velocity with move_and_slide()
or move_and_collide()
a KinematicBody2D doesn’t move.
Please see Using KinematicBody2D if you’re unfamiliar with how it works.
kidscancode | 2019-03-18 15:44
Hello,
Sorry I’m so late to this post, but I followed what you (kidscancode) said, and I’m wondering if there’s a way to have the player continue moving in that direction instead of having to continuously drag again and again.
Thanks
doinsdf | 2020-10-13 22:56
You should probably open a new question rather than commenting on old ones.
As for your question, just don’t set the velocity to 0 when the screen touch ends.
kidscancode | 2020-10-13 23:09