Yet another movement model
This commit is contained in:
parent
d422ae61dd
commit
6626e03fb1
|
|
@ -1,6 +1,13 @@
|
||||||
class_name MovementParameters
|
class_name MovementParameters
|
||||||
extends Reference
|
extends Reference
|
||||||
|
|
||||||
|
# Allow floats from -10 to 20 and snap the value to multiples of 0.2.
|
||||||
|
|
||||||
|
export(PoolVector2Array) var _speed_start = PoolVector2Array([Vector2(0,0),Vector2(0,0),Vector2(0,0)])
|
||||||
|
export(PoolVector2Array) var _speed_end = PoolVector2Array([Vector2(0,0),Vector2(0,0),Vector2(0,0)])
|
||||||
|
export(PoolVector2Array) var _acceleration = PoolVector2Array([Vector2(0,0),Vector2(0,0),Vector2(0,0)])
|
||||||
|
|
||||||
|
|
||||||
## Vector based ones for x and y
|
## Vector based ones for x and y
|
||||||
export var base_move_speed :Vector2
|
export var base_move_speed :Vector2
|
||||||
export var base_move_acceleration :Vector2
|
export var base_move_acceleration :Vector2
|
||||||
|
|
@ -24,6 +31,25 @@ export var debug_name :String
|
||||||
# export var v_move_speed_modifier :float
|
# export var v_move_speed_modifier :float
|
||||||
# export var v_move_modifier_move_acceleration :float
|
# export var v_move_modifier_move_acceleration :float
|
||||||
|
|
||||||
|
func get_speed_start(direction :int) -> Vector2:
|
||||||
|
return _speed_start[direction]
|
||||||
|
|
||||||
|
func set_speed_start(direction :int, value :Vector2) -> void:
|
||||||
|
_speed_start[direction] = value
|
||||||
|
|
||||||
|
func get_speed_end(direction :int) -> Vector2:
|
||||||
|
return _speed_end[direction]
|
||||||
|
|
||||||
|
func set_speed_end(direction :int, value :Vector2) -> void:
|
||||||
|
_speed_end[direction] = value
|
||||||
|
|
||||||
|
func get_acceleration(direction :int) -> Vector2:
|
||||||
|
return _acceleration[direction]
|
||||||
|
|
||||||
|
func set_acceleration(direction :int, value :Vector2) -> void:
|
||||||
|
_acceleration[direction] = value
|
||||||
|
|
||||||
|
|
||||||
func modify(_movement_parameters :MovementParameters):
|
func modify(_movement_parameters :MovementParameters):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
@ -42,12 +68,53 @@ func apply_state_modifier(_modifier :StateModifierMovement, _movement_direction
|
||||||
base_move_speed.x = 0.0
|
base_move_speed.x = 0.0
|
||||||
else:
|
else:
|
||||||
base_move_speed.x = adjusted_move_speed
|
base_move_speed.x = adjusted_move_speed
|
||||||
|
|
||||||
|
var speed :Vector2 = get_speed_start(_modifier.direction)
|
||||||
|
adjusted_move_speed = get_speed_start(_modifier.direction) + _modifier.speed_start
|
||||||
|
if sign(adjusted_move_speed.x) != sign(speed.x):
|
||||||
|
speed.x = 0.0
|
||||||
|
else:
|
||||||
|
speed.x = adjusted_move_speed.x
|
||||||
|
if sign(adjusted_move_speed.y) != sign(speed.y):
|
||||||
|
speed.y = 0.0
|
||||||
|
else:
|
||||||
|
speed.y = adjusted_move_speed.y
|
||||||
|
set_speed_start(_modifier.direction, speed)
|
||||||
|
|
||||||
|
speed = get_speed_end(_modifier.direction)
|
||||||
|
adjusted_move_speed = get_speed_end(_modifier.direction) + _modifier.speed_end
|
||||||
|
if sign(adjusted_move_speed.x) != sign(speed.x):
|
||||||
|
speed.x = 0.0
|
||||||
|
else:
|
||||||
|
speed.x = adjusted_move_speed.x
|
||||||
|
if sign(adjusted_move_speed.y) != sign(speed.y):
|
||||||
|
speed.y = 0.0
|
||||||
|
else:
|
||||||
|
speed.y = adjusted_move_speed.y
|
||||||
|
set_speed_end(_modifier.direction, speed)
|
||||||
|
|
||||||
|
|
||||||
var adjusted_accel = base_move_acceleration.x + _modifier.horizontal_acceleration
|
var adjusted_accel = base_move_acceleration.x + _modifier.horizontal_acceleration
|
||||||
if sign(adjusted_accel) != sign(base_move_acceleration.x):
|
if sign(adjusted_accel) != sign(base_move_acceleration.x):
|
||||||
base_move_acceleration.x = 0.0
|
base_move_acceleration.x = 0.0
|
||||||
else:
|
else:
|
||||||
base_move_acceleration.x = adjusted_accel
|
base_move_acceleration.x = adjusted_accel
|
||||||
|
|
||||||
|
var accel :Vector2 = get_acceleration(_modifier.direction)
|
||||||
|
adjusted_accel = get_acceleration(_modifier.direction) + _modifier.acceleration
|
||||||
|
if sign(adjusted_accel.x) != sign(accel.x):
|
||||||
|
accel.x = 0.0
|
||||||
|
else:
|
||||||
|
accel.x = adjusted_accel.x
|
||||||
|
if sign(adjusted_accel.y) != sign(accel.y):
|
||||||
|
accel.y = 0.0
|
||||||
|
else:
|
||||||
|
accel.y = adjusted_accel.y
|
||||||
|
set_acceleration(_modifier.direction, accel)
|
||||||
|
|
||||||
|
if (true): #DEGUG
|
||||||
|
var foo = 2+2
|
||||||
|
|
||||||
##TODO: Um, modifiers are a little weirder for this
|
##TODO: Um, modifiers are a little weirder for this
|
||||||
#move_speed_modifier.x += _modifier.horizontal_speed_offset
|
#move_speed_modifier.x += _modifier.horizontal_speed_offset
|
||||||
var speed_differance = base_move_speed.x + (move_speed_modifier.x + _modifier.horizontal_speed_offset)
|
var speed_differance = base_move_speed.x + (move_speed_modifier.x + _modifier.horizontal_speed_offset)
|
||||||
|
|
@ -71,6 +138,22 @@ func apply_state_modifier(_modifier :StateModifierMovement, _movement_direction
|
||||||
move_speed_modifier.y += _modifier.vertical_speed_offset
|
move_speed_modifier.y += _modifier.vertical_speed_offset
|
||||||
move_speed_modifier_acceleration.y += _modifier.vertical_speed_offset_acceleration
|
move_speed_modifier_acceleration.y += _modifier.vertical_speed_offset_acceleration
|
||||||
|
|
||||||
|
set_speed_start(
|
||||||
|
_modifier.direction,
|
||||||
|
(get_speed_start(_modifier.direction) + _modifier.speed_start)
|
||||||
|
)
|
||||||
|
set_speed_end(
|
||||||
|
_modifier.direction,
|
||||||
|
(get_speed_end(_modifier.direction) + _modifier.speed_end)
|
||||||
|
)
|
||||||
|
set_acceleration(
|
||||||
|
_modifier.direction,
|
||||||
|
(get_acceleration(_modifier.direction) + _modifier.acceleration)
|
||||||
|
)
|
||||||
|
|
||||||
|
if (true): #DEGUG
|
||||||
|
var foo = 2+2
|
||||||
|
|
||||||
UiManager.debug_text = ( #"H_Speed x Dir: " + str(h_speed) + str('duh') +
|
UiManager.debug_text = ( #"H_Speed x Dir: " + str(h_speed) + str('duh') +
|
||||||
"BaseSpeed Fm:{0} To:{1}".format({"0":"%5.2f" % base_move_speed.x, "1":"%5.2f" % base_move_speed.y}) +
|
"BaseSpeed Fm:{0} To:{1}".format({"0":"%5.2f" % base_move_speed.x, "1":"%5.2f" % base_move_speed.y}) +
|
||||||
"\nSpeedMod Fm:{0} To:{1}".format({"0":"%5.2f" % move_speed_modifier.x, "1":"%5.2f" % move_speed_modifier.y}) +
|
"\nSpeedMod Fm:{0} To:{1}".format({"0":"%5.2f" % move_speed_modifier.x, "1":"%5.2f" % move_speed_modifier.y}) +
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,20 @@ extends State
|
||||||
##
|
##
|
||||||
## @WIP
|
## @WIP
|
||||||
|
|
||||||
|
const RELATIVE_DIRECTION = 0
|
||||||
|
|
||||||
# Movement Speed in Pixels Per Second
|
# Movement Speed in Pixels Per Second
|
||||||
|
export(Vector2) var speed_start
|
||||||
|
export(Vector2) var speed_end = Vector2(0,1000)
|
||||||
|
export(Vector2) var acceleration = Vector2(0,280)
|
||||||
|
export(Vector2) var jerk_factor = Vector2(1,1)
|
||||||
|
#export(Vector2) var speed_start_positive
|
||||||
|
#export(Vector2) var speed_end_positive
|
||||||
|
#export(Vector2) var acceleration_positive
|
||||||
|
#export(Vector2) var speed_start_negative
|
||||||
|
#export(Vector2) var speed_end_negative
|
||||||
|
#export(Vector2) var acceleration_negative
|
||||||
|
|
||||||
# The base movement speed and accelleration
|
# The base movement speed and accelleration
|
||||||
export var horizontal_speed: float = 60
|
export var horizontal_speed: float = 60
|
||||||
export var horizontal_acceleration: float = 0
|
export var horizontal_acceleration: float = 0
|
||||||
|
|
@ -15,7 +28,7 @@ export var horizontal_acceleration: float = 0
|
||||||
export var horizontal_speed_offset: float = 0
|
export var horizontal_speed_offset: float = 0
|
||||||
## Applies only if offset applies
|
## Applies only if offset applies
|
||||||
export var horizontal_speed_offset_acceleration: float = 0
|
export var horizontal_speed_offset_acceleration: float = 0
|
||||||
export var jerk_factor: float = 1.0
|
#export var jerk_factor: float = 1.0
|
||||||
|
|
||||||
export var vertical_speed: float = 0
|
export var vertical_speed: float = 0
|
||||||
export var vertical_acceleration: float = 0
|
export var vertical_acceleration: float = 0
|
||||||
|
|
@ -57,7 +70,17 @@ func enter() -> void:
|
||||||
|
|
||||||
func get_movement_parameters() -> MovementParameters:
|
func get_movement_parameters() -> MovementParameters:
|
||||||
var movement_parameters = MovementParameters.new()
|
var movement_parameters = MovementParameters.new()
|
||||||
|
|
||||||
movement_parameters.debug_name = name
|
movement_parameters.debug_name = name
|
||||||
|
movement_parameters.set_speed_start(RELATIVE_DIRECTION, speed_start)
|
||||||
|
#movement_parameters.speed_start = speed_start
|
||||||
|
movement_parameters.set_speed_end(RELATIVE_DIRECTION, speed_end)
|
||||||
|
#movement_parameters.speed_end = speed_end
|
||||||
|
movement_parameters.set_acceleration(RELATIVE_DIRECTION, acceleration)
|
||||||
|
#movement_parameters.acceleration = acceleration
|
||||||
|
movement_parameters.jerk_factor = jerk_factor
|
||||||
|
|
||||||
|
## Old stuff
|
||||||
movement_parameters.base_move_speed.x = horizontal_speed
|
movement_parameters.base_move_speed.x = horizontal_speed
|
||||||
movement_parameters.base_move_acceleration.x = horizontal_acceleration
|
movement_parameters.base_move_acceleration.x = horizontal_acceleration
|
||||||
movement_parameters.move_speed_modifier.x = horizontal_speed_offset
|
movement_parameters.move_speed_modifier.x = horizontal_speed_offset
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,22 @@
|
||||||
class_name StateModifierMovement
|
class_name StateModifierMovement
|
||||||
extends StateModifier
|
extends StateModifier
|
||||||
|
|
||||||
|
#export(float, -1.0, 1, 1.0) var applied_direction = 0
|
||||||
|
|
||||||
|
#export (Transform2D) var speed = Transform2D(Vector2(0,0),Vector2(0,0),Vector2(0,0))
|
||||||
|
#export(float, EXP, -1, 1, .1) var jerk_offset = 0
|
||||||
|
## Processing Directives (help determine how the merge function works)
|
||||||
|
enum APPLIED_DIRECTIONS {
|
||||||
|
LEFT_OR_UP = -1,
|
||||||
|
RELATIVE = 0,
|
||||||
|
RIGHT_OR_DOWN = 1
|
||||||
|
}
|
||||||
|
export(APPLIED_DIRECTIONS) var direction :float = float(APPLIED_DIRECTIONS.RELATIVE) # -1, 0, 1
|
||||||
|
|
||||||
|
export(Vector2) var speed_start
|
||||||
|
export(Vector2) var speed_end
|
||||||
|
export(Vector2) var acceleration
|
||||||
|
|
||||||
## Movement Modifiers
|
## Movement Modifiers
|
||||||
export var horizontal_speed: float = 0
|
export var horizontal_speed: float = 0
|
||||||
export var horizontal_acceleration: float = 0
|
export var horizontal_acceleration: float = 0
|
||||||
|
|
@ -19,13 +35,6 @@ export var vertical_speed_offset_acceleration: float = 0
|
||||||
|
|
||||||
export var gravity: int = 0
|
export var gravity: int = 0
|
||||||
|
|
||||||
## Processing Directives (help determine how the merge function works)
|
|
||||||
enum APPLIED_DIRECTIONS {
|
|
||||||
LEFT_OR_UP = -1,
|
|
||||||
RELATIVE = 0,
|
|
||||||
RIGHT_OR_DOWN = 1
|
|
||||||
}
|
|
||||||
export(APPLIED_DIRECTIONS) var direction :float = float(APPLIED_DIRECTIONS.RELATIVE) # -1, 0, 1
|
|
||||||
export var only_grounded :bool = false
|
export var only_grounded :bool = false
|
||||||
|
|
||||||
## Ways to determine how modifiers are applied to movement parameters
|
## Ways to determine how modifiers are applied to movement parameters
|
||||||
|
|
@ -81,6 +90,10 @@ func merge(_merge_from_modifier: StateModifier):
|
||||||
##TODO: I don't really need merge functions here?
|
##TODO: I don't really need merge functions here?
|
||||||
match _merge_from_modifier.modifier_type:
|
match _merge_from_modifier.modifier_type:
|
||||||
_:
|
_:
|
||||||
|
speed_end += _merge_from_modifier.speed_end
|
||||||
|
speed_start += _merge_from_modifier.speed_start
|
||||||
|
acceleration += _merge_from_modifier.acceleration
|
||||||
|
|
||||||
horizontal_speed += _merge_from_modifier.horizontal_speed
|
horizontal_speed += _merge_from_modifier.horizontal_speed
|
||||||
horizontal_acceleration += _merge_from_modifier.horizontal_acceleration
|
horizontal_acceleration += _merge_from_modifier.horizontal_acceleration
|
||||||
horizontal_speed_offset += _merge_from_modifier.horizontal_speed_offset
|
horizontal_speed_offset += _merge_from_modifier.horizontal_speed_offset
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,10 @@ script = ExtResource( 1 )
|
||||||
modifier_type = 0
|
modifier_type = 0
|
||||||
name = "ice_or_something"
|
name = "ice_or_something"
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
|
direction = 0
|
||||||
|
speed_start = Vector2( 0, 0 )
|
||||||
|
speed_end = Vector2( 0, 0 )
|
||||||
|
acceleration = Vector2( -250, 1.36422e-12 )
|
||||||
horizontal_speed = 0.0
|
horizontal_speed = 0.0
|
||||||
horizontal_acceleration = -250.0
|
horizontal_acceleration = -250.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
|
|
@ -18,6 +22,5 @@ vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
vertical_speed_offset_acceleration = 0.0
|
vertical_speed_offset_acceleration = 0.0
|
||||||
gravity = 0
|
gravity = 0
|
||||||
direction = 0
|
|
||||||
only_grounded = true
|
only_grounded = true
|
||||||
processing_mode = 0
|
processing_mode = 0
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,10 @@ script = ExtResource( 1 )
|
||||||
modifier_type = 0
|
modifier_type = 0
|
||||||
name = "conveyor_left"
|
name = "conveyor_left"
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
|
direction = -1
|
||||||
|
speed_start = Vector2( 30, 1.36422e-12 )
|
||||||
|
speed_end = Vector2( 30, 1.36422e-12 )
|
||||||
|
acceleration = Vector2( 0, 0 )
|
||||||
horizontal_speed = -30.0
|
horizontal_speed = -30.0
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
|
|
@ -18,6 +22,5 @@ vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
vertical_speed_offset_acceleration = 0.0
|
vertical_speed_offset_acceleration = 0.0
|
||||||
gravity = 0
|
gravity = 0
|
||||||
direction = -1
|
|
||||||
only_grounded = true
|
only_grounded = true
|
||||||
processing_mode = 0
|
processing_mode = 0
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,10 @@ script = ExtResource( 1 )
|
||||||
modifier_type = 0
|
modifier_type = 0
|
||||||
name = "wind_left"
|
name = "wind_left"
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
|
direction = -1
|
||||||
|
speed_start = Vector2( 30, 1.36422e-12 )
|
||||||
|
speed_end = Vector2( 30, 1.36422e-12 )
|
||||||
|
acceleration = Vector2( 0, 0 )
|
||||||
horizontal_speed = -30.0
|
horizontal_speed = -30.0
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
|
|
@ -18,6 +22,5 @@ vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
vertical_speed_offset_acceleration = 0.0
|
vertical_speed_offset_acceleration = 0.0
|
||||||
gravity = 0
|
gravity = 0
|
||||||
direction = -1
|
|
||||||
only_grounded = false
|
only_grounded = false
|
||||||
processing_mode = 0
|
processing_mode = 0
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,7 @@ func _ready():
|
||||||
movement_component.state_stamina_cost = state_stamina_cost
|
movement_component.state_stamina_cost = state_stamina_cost
|
||||||
|
|
||||||
tired_debuff_modifier.setup('so_tired', StateModifierMovement.SUB_TYPE.NEGATIVE_CONSTRAINT)
|
tired_debuff_modifier.setup('so_tired', StateModifierMovement.SUB_TYPE.NEGATIVE_CONSTRAINT)
|
||||||
|
tired_debuff_modifier.speed_start = Vector2(-40,0)
|
||||||
tired_debuff_modifier.horizontal_speed = -40
|
tired_debuff_modifier.horizontal_speed = -40
|
||||||
tired_debuff_modifier.only_grounded = true
|
tired_debuff_modifier.only_grounded = true
|
||||||
movement_state_machine.push_state_modifier(tired_debuff_modifier)
|
movement_state_machine.push_state_modifier(tired_debuff_modifier)
|
||||||
|
|
|
||||||
|
|
@ -38,15 +38,19 @@
|
||||||
|
|
||||||
[sub_resource type="Resource" id=3]
|
[sub_resource type="Resource" id=3]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
|
resource_name = "hurt"
|
||||||
script = ExtResource( 18 )
|
script = ExtResource( 18 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 2.0
|
timeout_seconds = 2.0
|
||||||
name = "hurt"
|
name = "hurt"
|
||||||
|
speed_start = Vector2( 20, 1.36422e-12 )
|
||||||
|
speed_end = Vector2( 20, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 20.0
|
horizontal_speed = 20.0
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 0.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,14 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "attack_punch"
|
name = "attack_punch"
|
||||||
|
speed_start = Vector2( 0, 0 )
|
||||||
|
speed_end = Vector2( 0, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 1.36422e-12
|
horizontal_speed = 1.36422e-12
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 0.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,14 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "attack_shoot"
|
name = "attack_shoot"
|
||||||
|
speed_start = Vector2( 0, 0 )
|
||||||
|
speed_end = Vector2( 0, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 1.36422e-12
|
horizontal_speed = 1.36422e-12
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 0.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,14 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "attack_sword"
|
name = "attack_sword"
|
||||||
|
speed_start = Vector2( 0, 0 )
|
||||||
|
speed_end = Vector2( 0, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 1.36422e-12
|
horizontal_speed = 1.36422e-12
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 0.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,14 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "climb"
|
name = "climb"
|
||||||
|
speed_start = Vector2( 0, 0 )
|
||||||
|
speed_end = Vector2( 0, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 20.0
|
horizontal_speed = 20.0
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 0.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,14 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "crouch"
|
name = "crouch"
|
||||||
|
speed_start = Vector2( 0, 0 )
|
||||||
|
speed_end = Vector2( 0, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 1.36422e-12
|
horizontal_speed = 1.36422e-12
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 0.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,14 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "crouch_move"
|
name = "crouch_move"
|
||||||
|
speed_start = Vector2( 60, 1.36422e-12 )
|
||||||
|
speed_end = Vector2( 60, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 60.0
|
horizontal_speed = 60.0
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 0.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
|
|
|
||||||
|
|
@ -9,17 +9,20 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "death"
|
name = "death"
|
||||||
|
speed_start = Vector2( 0, 0 )
|
||||||
|
speed_end = Vector2( 0, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 1.36422e-12
|
horizontal_speed = 1.36422e-12
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 0.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
vertical_speed_offset_acceleration = 0.0
|
vertical_speed_offset_acceleration = 0.0
|
||||||
horizontal_jerk_factor = 1.0
|
horizontal_jerk_factor = 1.0
|
||||||
vertical_jerk_factor = 1.0
|
vertical_jerk_factor = 1.0
|
||||||
preserve_inertia = true
|
preserve_inertia = false
|
||||||
is_grounded = true
|
is_grounded = true
|
||||||
animation_sequence = [ "death" ]
|
animation_sequence = [ "death" ]
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,14 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 1.0
|
timeout_seconds = 1.0
|
||||||
name = "enter_right"
|
name = "enter_right"
|
||||||
|
speed_start = Vector2( 30, 1.36422e-12 )
|
||||||
|
speed_end = Vector2( 30, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 30.0
|
horizontal_speed = 30.0
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 0.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,14 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "fall"
|
name = "fall"
|
||||||
|
speed_start = Vector2( 90, 1.36422e-12 )
|
||||||
|
speed_end = Vector2( 90, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 90.0
|
horizontal_speed = 90.0
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 1.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,14 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "idle"
|
name = "idle"
|
||||||
|
speed_start = Vector2( 0, 0 )
|
||||||
|
speed_end = Vector2( 0, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 1.36422e-12
|
horizontal_speed = 1.36422e-12
|
||||||
horizontal_acceleration = 300.0
|
horizontal_acceleration = 300.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 1.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,14 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "jump"
|
name = "jump"
|
||||||
|
speed_start = Vector2( 90, 1.36422e-12 )
|
||||||
|
speed_end = Vector2( 90, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 90.0
|
horizontal_speed = 90.0
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 1.0
|
|
||||||
vertical_speed = 200.0
|
vertical_speed = 200.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = -208.0
|
vertical_speed_offset = -208.0
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,14 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "land"
|
name = "land"
|
||||||
|
speed_start = Vector2( 20, 1.36422e-12 )
|
||||||
|
speed_end = Vector2( 20, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 20.0
|
horizontal_speed = 20.0
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 0.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
|
|
|
||||||
|
|
@ -9,17 +9,20 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "ledge_climb"
|
name = "ledge_climb"
|
||||||
|
speed_start = Vector2( 0, 0 )
|
||||||
|
speed_end = Vector2( 0, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 1.36422e-12
|
horizontal_speed = 1.36422e-12
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 0.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
vertical_speed_offset_acceleration = 0.0
|
vertical_speed_offset_acceleration = 0.0
|
||||||
horizontal_jerk_factor = 1.0
|
horizontal_jerk_factor = 1.0
|
||||||
vertical_jerk_factor = 1.0
|
vertical_jerk_factor = 1.0
|
||||||
preserve_inertia = true
|
preserve_inertia = false
|
||||||
is_grounded = true
|
is_grounded = true
|
||||||
animation_sequence = [ "ledge-climb" ]
|
animation_sequence = [ "ledge-climb" ]
|
||||||
|
|
|
||||||
|
|
@ -9,17 +9,20 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "ledge_grab"
|
name = "ledge_grab"
|
||||||
|
speed_start = Vector2( 0, 0 )
|
||||||
|
speed_end = Vector2( 0, 1000 )
|
||||||
|
acceleration = Vector2( 0, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 1.36422e-12
|
horizontal_speed = 1.36422e-12
|
||||||
horizontal_acceleration = 0.0
|
horizontal_acceleration = 0.0
|
||||||
horizontal_speed_offset = 0.0
|
horizontal_speed_offset = 0.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 0.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
vertical_speed_offset_acceleration = 0.0
|
vertical_speed_offset_acceleration = 0.0
|
||||||
horizontal_jerk_factor = 1.0
|
horizontal_jerk_factor = 1.0
|
||||||
vertical_jerk_factor = 1.0
|
vertical_jerk_factor = 1.0
|
||||||
preserve_inertia = true
|
preserve_inertia = false
|
||||||
is_grounded = true
|
is_grounded = true
|
||||||
animation_sequence = [ "ledge-grab" ]
|
animation_sequence = [ "ledge-grab" ]
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,14 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "move"
|
name = "move"
|
||||||
|
speed_start = Vector2( 10, 1.36422e-12 )
|
||||||
|
speed_end = Vector2( 90, 1000 )
|
||||||
|
acceleration = Vector2( 70, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 10.0
|
horizontal_speed = 10.0
|
||||||
horizontal_acceleration = 70.0
|
horizontal_acceleration = 70.0
|
||||||
horizontal_speed_offset = 80.0
|
horizontal_speed_offset = 80.0
|
||||||
horizontal_speed_offset_acceleration = 0.0
|
horizontal_speed_offset_acceleration = 0.0
|
||||||
jerk_factor = 0.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,14 @@ script = ExtResource( 1 )
|
||||||
debug_state = false
|
debug_state = false
|
||||||
timeout_seconds = 0.0
|
timeout_seconds = 0.0
|
||||||
name = "roll"
|
name = "roll"
|
||||||
|
speed_start = Vector2( 150, 1.36422e-12 )
|
||||||
|
speed_end = Vector2( 10, 1000 )
|
||||||
|
acceleration = Vector2( 300, 280 )
|
||||||
|
jerk_factor = Vector2( 1, 1 )
|
||||||
horizontal_speed = 150.0
|
horizontal_speed = 150.0
|
||||||
horizontal_acceleration = 1.36422e-12
|
horizontal_acceleration = 1.36422e-12
|
||||||
horizontal_speed_offset = -140.0
|
horizontal_speed_offset = -140.0
|
||||||
horizontal_speed_offset_acceleration = -300.0
|
horizontal_speed_offset_acceleration = -300.0
|
||||||
jerk_factor = 1.0
|
|
||||||
vertical_speed = 0.0
|
vertical_speed = 0.0
|
||||||
vertical_acceleration = 0.0
|
vertical_acceleration = 0.0
|
||||||
vertical_speed_offset = 0.0
|
vertical_speed_offset = 0.0
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,10 @@ class_name VelocityController
|
||||||
var velocity :Vector2
|
var velocity :Vector2
|
||||||
var debug :bool = false
|
var debug :bool = false
|
||||||
|
|
||||||
|
const RELATIVE_DIRECTION = 0
|
||||||
|
const POSITIVE_DIRECTION = 1
|
||||||
|
const NEGATIVE_DIRECTION = -1
|
||||||
|
|
||||||
enum RANGE_PLACEMENT {
|
enum RANGE_PLACEMENT {
|
||||||
BEFORE_RANGE = -1,
|
BEFORE_RANGE = -1,
|
||||||
WITHIN_RANGE = 0,
|
WITHIN_RANGE = 0,
|
||||||
|
|
@ -73,10 +77,25 @@ func calculate_velocity(_delta :float,
|
||||||
# is the destination speed.
|
# is the destination speed.
|
||||||
# We move towards h_speed.y at the acceleration rate
|
# We move towards h_speed.y at the acceleration rate
|
||||||
##
|
##
|
||||||
var h_speed = resolve_h_speed(movement_parameters)
|
#var h_speed = resolve_h_speed(movement_parameters)
|
||||||
var v_speed = resolve_v_speed(movement_parameters)
|
var start_speed :float = (
|
||||||
|
(movement_parameters.get_speed_start(RELATIVE_DIRECTION).x * move_direction.x) +
|
||||||
|
(movement_parameters.get_speed_start(POSITIVE_DIRECTION).x * POSITIVE_DIRECTION) -
|
||||||
|
(movement_parameters.get_speed_start(NEGATIVE_DIRECTION).x * NEGATIVE_DIRECTION)
|
||||||
|
)
|
||||||
|
var end_speed :float = (
|
||||||
|
(movement_parameters.get_speed_end(RELATIVE_DIRECTION).x * move_direction.x) +
|
||||||
|
(movement_parameters.get_speed_end(POSITIVE_DIRECTION).x * POSITIVE_DIRECTION) -
|
||||||
|
(movement_parameters.get_speed_end(NEGATIVE_DIRECTION).x * NEGATIVE_DIRECTION)
|
||||||
|
)
|
||||||
|
|
||||||
|
var h_speed = Vector2(start_speed, end_speed)
|
||||||
|
#var h_speed = Vector2(movement_parameters.get_speed_start(RELATIVE_DIRECTION).x , movement_parameters.get_speed_end(RELATIVE_DIRECTION).x)
|
||||||
|
#var v_speed = resolve_v_speed(movement_parameters)
|
||||||
|
var v_speed = Vector2(movement_parameters.get_speed_start(0).y, movement_parameters.get_speed_end(0).y)
|
||||||
|
|
||||||
## Speed will now be expected to move in the direction of travel
|
## Speed will now be expected to move in the direction of travel
|
||||||
h_speed *= move_direction.x
|
#h_speed *= move_direction.x
|
||||||
v_speed *= move_direction.y
|
v_speed *= move_direction.y
|
||||||
|
|
||||||
## Now determine placement of current velocity to speed range
|
## Now determine placement of current velocity to speed range
|
||||||
|
|
@ -102,6 +121,10 @@ func calculate_velocity(_delta :float,
|
||||||
## Acceleration is always postive because we use the
|
## Acceleration is always postive because we use the
|
||||||
# move toward functions.
|
# move toward functions.
|
||||||
calc_acceleration.x = abs(resolve_h_acceleration(movement_parameters, move_direction.x))
|
calc_acceleration.x = abs(resolve_h_acceleration(movement_parameters, move_direction.x))
|
||||||
|
# if move_direction.x != 0:
|
||||||
|
# calc_acceleration.x = movement_parameters.get_acceleration(0).x
|
||||||
|
# if move_direction.y != 0:
|
||||||
|
# calc_acceleration.y = movement_parameters.get_acceleration(0).y
|
||||||
|
|
||||||
if debug and movement_parameters.debug_name == 'roll':
|
if debug and movement_parameters.debug_name == 'roll':
|
||||||
var foo = 2+2
|
var foo = 2+2
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user