Adds android web support
parent
8695929012
commit
c35e3cbb20
|
@ -15,9 +15,9 @@ var buffered_direction : Vector2 = Vector2.ZERO
|
|||
var should_buffer_direction : bool = false
|
||||
|
||||
var inputs : Dictionary[String, Vector2] = {"right": Vector2.RIGHT,
|
||||
"down": Vector2.DOWN,
|
||||
"left": Vector2.LEFT,
|
||||
"up": Vector2.UP,
|
||||
"down": Vector2.DOWN}
|
||||
"up": Vector2.UP,}
|
||||
|
||||
var possible_x : Array
|
||||
var possible_y : Array
|
||||
|
@ -58,6 +58,10 @@ var commanding_head : SnakePart = null
|
|||
var skip_next_move_propagation : bool = false
|
||||
var queued_growth : int = 0
|
||||
|
||||
var screen_touching : bool = false
|
||||
var screen_start_pos : Vector2 = Vector2.ZERO
|
||||
var screen_tracking_index : int = 0
|
||||
|
||||
signal on_movement(new_dir, prevent_move)
|
||||
signal on_death
|
||||
signal on_ouroboros
|
||||
|
@ -406,7 +410,26 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||
# Change direction if we are the head
|
||||
if event is InputEventKey and part_type == PartTypes.HEAD:
|
||||
for dir in inputs.keys():
|
||||
if event.is_action_pressed(dir) and current_direction != -inputs[dir]:
|
||||
if event.is_action_pressed(dir) and current_direction != -inputs[dir] and current_direction != inputs[dir]:
|
||||
if should_buffer_direction:
|
||||
buffered_direction = inputs[dir]
|
||||
else:
|
||||
current_direction = inputs[dir]
|
||||
should_buffer_direction = true
|
||||
|
||||
if event is InputEventScreenTouch and part_type == PartTypes.HEAD:# Start of drag
|
||||
if event.is_pressed() and !screen_touching:
|
||||
screen_start_pos = event.position
|
||||
screen_tracking_index = event.index
|
||||
screen_touching = true
|
||||
|
||||
# End of drag
|
||||
elif !event.is_pressed() and screen_touching and event.index == screen_tracking_index:
|
||||
screen_touching = false
|
||||
var drag_angle : float = (event.position - screen_start_pos).angle()
|
||||
var idx_direction : int = roundi(drag_angle / (PI / 2))
|
||||
var dir : String = inputs.keys()[idx_direction]
|
||||
if current_direction != -inputs[dir] and current_direction != inputs[dir]:
|
||||
if should_buffer_direction:
|
||||
buffered_direction = inputs[dir]
|
||||
else:
|
||||
|
@ -414,6 +437,7 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||
should_buffer_direction = true
|
||||
|
||||
|
||||
|
||||
# If we leave the arena
|
||||
#func _on_level_area_exited(_area: Area2D) -> void:
|
||||
#lose_game()
|
||||
|
|
Loading…
Reference in New Issue