Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | Arindam |
I am trying to implement touchscreen response in my game…
And for that I have written the following code –
# TOUCHSCREEN MOVEMENT
if InputEventScreenTouch.is_pressed():
if InputEventScreenTouch.get_index() == 1 :
if InputEventScreenTouch.get_position() < touch_division :
input_direction = -1
elif InputEventScreenTouch.get_position() > touch_division :
input_direction = 1
elif InputEventScreenTouch.get_index() == 2 :
input_direction = 'up'
else :
input_direction = 0
But it giving the error…
The script is attached to a KinematicBody2D…
The full script is –
extends KinematicBody2D
var input_direction = 0
var direction = 1
var speed = Vector2()
var velocity = Vector2()
const MAX_SPEED = 600
const ACCELERATION = 1200
const DECELERATION = 2000
const JUMP_FORCE = 700
const GRAVITY = 2000
func _ready():
set_process(true)
func _process(delta):
var touch_division = get_viewport_rect().size.x / 2
if input_direction == direction :
input_direction = direction
# TOUCHSCREEN MOVEMENT
if InputEventScreenTouch.is_pressed():
if InputEventScreenTouch.get_index() == 1 :
if InputEventScreenTouch.get_position() < touch_division :
input_direction = -1
elif InputEventScreenTouch.get_position() > touch_division :
input_direction = 1
elif InputEventScreenTouch.get_index() == 2 :
input_direction = 'up'
else :
input_direction = 0
# KEYBOARD MOVEMENT
if Input.is_action_pressed("move_left"):
input_direction = -1
elif Input.is_action_pressed("move_right"):
input_direction = 1
else:
input_direction = 0
if input_direction == - direction:
speed.x /= 3
if input_direction:
speed.x += ACCELERATION * delta
else:
speed.x -= DECELERATION * delta
speed.x = clamp(speed.x, 0, MAX_SPEED)
speed.y += GRAVITY * delta
velocity = Vector2(speed.x * delta * direction, speed.y * delta)
var movement_remainder = move(velocity)
if is_colliding():
var normal = get_collision_normal()
var final_movement = normal.slide(movement_remainder)
speed = normal.slide(speed)
move(final_movement)
Looking Forward to Solution…