coyote hunt
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
extends Node
|
||||
|
||||
# Variables
|
||||
@@ -0,0 +1,74 @@
|
||||
extends KinematicBody2D
|
||||
|
||||
# Variables
|
||||
## Speed
|
||||
export (int) var base_speed = 200 setget set_base_speed, get_base_speed # Character's speed (scalar)
|
||||
export (int) var speed setget , get_speed # Character's speed (scalar)
|
||||
var speed_mod = 1
|
||||
var speed_ceil = 5
|
||||
var speed_floor = .01
|
||||
## Velocity
|
||||
var can_move = true setget set_can_move, get_can_move
|
||||
export (Vector2) var velocity = Vector2(0,0) setget set_velocity, get_velocity # Character's directional velocity (vector)
|
||||
var internal_velocity = Vector2(0,0) setget set_internal_velocity, get_internal_velocity
|
||||
var external_velocity = Vector2(0,0) setget set_external_velocity, get_external_velocity
|
||||
var velocity_mod = 1
|
||||
|
||||
# Setters + Getters
|
||||
func set_base_speed(new_speed):
|
||||
base_speed = new_speed
|
||||
func get_base_speed():
|
||||
return base_speed
|
||||
func set_can_move(new_bool):
|
||||
can_move = new_bool
|
||||
func get_can_move():
|
||||
return can_move
|
||||
func set_external_velocity(new_velocity):
|
||||
external_velocity = new_velocity
|
||||
func get_external_velocity():
|
||||
return external_velocity
|
||||
func set_internal_velocity(new_velocity):
|
||||
internal_velocity = new_velocity
|
||||
func get_internal_velocity():
|
||||
if not get_can_move():
|
||||
return Vector2(0.0,0.0)
|
||||
return internal_velocity
|
||||
func get_speed():
|
||||
if !get_can_move():
|
||||
return 0
|
||||
else:
|
||||
return base_speed * get_speed_mod()
|
||||
func get_speed_mod():
|
||||
if speed_mod < speed_floor:
|
||||
return speed_floor
|
||||
elif speed_mod > speed_ceil:
|
||||
return speed_ceil
|
||||
else:
|
||||
return speed_mod
|
||||
func set_velocity(new_velocity):
|
||||
velocity = new_velocity
|
||||
func get_velocity():
|
||||
return get_internal_velocity().normalized()
|
||||
func get_velocity_angle():
|
||||
return get_velocity().angle()
|
||||
func get_velocity_length():
|
||||
return get_velocity().length()
|
||||
func get_user():
|
||||
return get_parent()
|
||||
|
||||
# Logic
|
||||
|
||||
func _process(delta):
|
||||
var v = get_velocity() * get_speed() * delta * KnowledgeBase.logic_time
|
||||
print(move_and_collide(v))
|
||||
if v != Vector2(0,0):
|
||||
MessageBus.publish("moved", get_user())
|
||||
|
||||
#func _on_input_event(viewport, event, shape_idx):
|
||||
# get_physics_body_node()._on_input_event(viewport, event, shape_idx)
|
||||
|
||||
func _setup():
|
||||
set_process(true)
|
||||
|
||||
func _ready():
|
||||
set_process(false)
|
||||
Reference in New Issue
Block a user