wasd movement
parent
25e72421c3
commit
83faf15858
@ -0,0 +1,66 @@
|
|||||||
|
extends Node
|
||||||
|
|
||||||
|
# Player AI
|
||||||
|
var ignore_input = false
|
||||||
|
var velocity_sum = Vector2(0.0,0.0)
|
||||||
|
|
||||||
|
func set_ignore_input(new_bool):
|
||||||
|
ignore_input = new_bool
|
||||||
|
func get_ignore_input():
|
||||||
|
return ignore_input
|
||||||
|
func get_user():
|
||||||
|
return get_parent()
|
||||||
|
|
||||||
|
# Get Player Input
|
||||||
|
func get_input():
|
||||||
|
if not ignore_input:
|
||||||
|
get_movement_input()
|
||||||
|
|
||||||
|
# Get Movement Key Input
|
||||||
|
func get_movement_input():
|
||||||
|
if Input.is_action_pressed('ui_right'):
|
||||||
|
movement_key_pressed(1)
|
||||||
|
if Input.is_action_pressed('ui_left'):
|
||||||
|
movement_key_pressed(2)
|
||||||
|
if Input.is_action_pressed('ui_up'):
|
||||||
|
movement_key_pressed(3)
|
||||||
|
if Input.is_action_pressed('ui_down'):
|
||||||
|
movement_key_pressed(4)
|
||||||
|
if Input.is_action_just_released("ui_right"):
|
||||||
|
movement_key_released(1)
|
||||||
|
if Input.is_action_just_released("ui_left"):
|
||||||
|
movement_key_released(2)
|
||||||
|
if Input.is_action_just_released("ui_up"):
|
||||||
|
movement_key_released(3)
|
||||||
|
if Input.is_action_just_released("ui_down"):
|
||||||
|
movement_key_released(4)
|
||||||
|
|
||||||
|
# WASD Movement
|
||||||
|
func movement_key_pressed(direction):
|
||||||
|
get_user().set_internal_velocity(Vector2(0.0,0.0))
|
||||||
|
if direction == 1: # right
|
||||||
|
velocity_sum.x = 0
|
||||||
|
velocity_sum.x += 1
|
||||||
|
elif direction == 2: # left
|
||||||
|
velocity_sum.x = 0
|
||||||
|
velocity_sum.x -= 1
|
||||||
|
elif direction == 3: # up
|
||||||
|
velocity_sum.y = 0
|
||||||
|
velocity_sum.y -= 1
|
||||||
|
elif direction == 4: # down
|
||||||
|
velocity_sum.y = 0
|
||||||
|
velocity_sum.y += 1
|
||||||
|
# Velocity cannot be faster with more vectors
|
||||||
|
get_user().set_internal_velocity(velocity_sum)
|
||||||
|
|
||||||
|
func movement_key_released(direction):
|
||||||
|
if direction == 1 or direction == 2: # left/right
|
||||||
|
velocity_sum.x = 0
|
||||||
|
elif direction == 3 or direction == 4: # up/down
|
||||||
|
velocity_sum.y = 0
|
||||||
|
get_user().set_internal_velocity(velocity_sum)
|
||||||
|
|
||||||
|
# Physics Process
|
||||||
|
func _physics_process(delta):
|
||||||
|
## Keyboard Movement
|
||||||
|
get_input()
|
@ -1,3 +1,12 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
# Variables
|
## Nodes
|
||||||
|
func get_body_node():
|
||||||
|
return $KinematicBody2D
|
||||||
|
## Parameters
|
||||||
|
func set_gpos(new_pos):
|
||||||
|
return get_body_node().set_gpos(new_pos)
|
||||||
|
func get_gpos():
|
||||||
|
return get_body_node().get_gpos()
|
||||||
|
func set_internal_velocity(new_vel):
|
||||||
|
get_body_node().set_internal_velocity(new_vel)
|
||||||
|
Loading…
Reference in New Issue