mirror of
https://github.com/kristoferssolo/FuncIt.git
synced 2025-10-21 19:30:35 +00:00
[Major] movementSystem0.0.3 - reclassified - {FAILED}
Methods implemented in movementSystem0.0.3 have been reclassified as - failed.
This commit is contained in:
parent
f9125edb50
commit
9d864e635c
@ -11,7 +11,7 @@ config_version=4
|
|||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="movementSystem0.0.3"
|
config/name="movementSystem0.0.3"
|
||||||
run/main_scene="res://source/entities/player/player_node.tscn"
|
run/main_scene="res://source/levels/trinity_site/trinitySite-level.tscn"
|
||||||
config/icon="res://icon.png"
|
config/icon="res://icon.png"
|
||||||
|
|
||||||
[input]
|
[input]
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
const LEVEL_SCALE = 0.05
|
const LEVEL_SCALE = 0.25
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
$player_node.set_scale(LEVEL_SCALE)
|
$player_node.set_scale(LEVEL_SCALE)
|
||||||
|
|||||||
@ -14,24 +14,51 @@ var canvasManagerInstance = preload("res://source/assets/scripts/controllers/man
|
|||||||
var physicsManagerInstance = preload("res://source/assets/scripts/controllers/managers/physics_manager.gd").new()
|
var physicsManagerInstance = preload("res://source/assets/scripts/controllers/managers/physics_manager.gd").new()
|
||||||
|
|
||||||
# Local class variables
|
# Local class variables
|
||||||
|
var rotationalOffsets = {"0":0,"1":0,"2":0,"3":0,"4":0}
|
||||||
var vectoralDirectionPreset
|
var vectoralDirectionPreset
|
||||||
var userInput
|
var userInput
|
||||||
var userState
|
var userState
|
||||||
var VDIR
|
var VDIR
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
vectoralDirectionPreset = vectoralDirectionPresetInstance.getState(userStateInstance.update())
|
set_process(true)
|
||||||
|
vectoralDirectionPreset = vectoralDirectionPresetInstance.getState(userStateInstance.update(global_transform.origin),{"sprite-width": $player_sprite_na.texture.get_width(),"sprite-height":$player_sprite_na.texture.get_height(),"collider-radius":$player_collider.get_shape().get_radius()})
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
# Update data-handler returned states
|
# Update data-handler returned states
|
||||||
userInput = userInputInstance.update()
|
userInput = userInputInstance.update()
|
||||||
userState = userStateInstance.update()
|
userState = userStateInstance.update(global_transform.origin)
|
||||||
# Send the returned states through processors
|
# Send the returned states through processors
|
||||||
VDIR = VDIRprocessorInstance.process(userState, vectoralDirectionPreset)
|
VDIR = VDIRprocessorInstance.process(userState, vectoralDirectionPreset, $player_sprite_na.scale, get_world_2d().direct_space_state,[self])
|
||||||
# Give the resulting data to game controllers
|
# Give the resulting data to game controllers
|
||||||
physicsManagerInstance.update(userStateInstance)
|
physicsManagerInstance.update(userStateInstance)
|
||||||
physics_process(delta)
|
physics_process(delta, VDIR)
|
||||||
|
if userInput["down"] == true:
|
||||||
|
move_and_slide(Vector2(0,75))
|
||||||
|
elif userInput["left"] == true:
|
||||||
|
move_and_slide(Vector2(-50,0))
|
||||||
|
elif userInput["right"] == true:
|
||||||
|
move_and_slide(Vector2(50,0))
|
||||||
|
elif userInput["debug"] == true:
|
||||||
|
userStateInstance.rotateBy(1)
|
||||||
|
else:
|
||||||
|
$player_sprite.play("idle")
|
||||||
|
update()
|
||||||
|
print(userState["rotation"])
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func physics_process(delta):
|
func physics_process(delta, VDIR):
|
||||||
|
for vectorType in VDIR:
|
||||||
|
var vT = str(vectorType)
|
||||||
|
for vector in VDIR[vT]:
|
||||||
|
var v = str(vector)
|
||||||
|
if vT == "0": rotationalOffsets[v] = {"offset":VDIR[vT][v]["ray"]["offset"],"collided":VDIR[vT][v]["ray"]["collided"]}
|
||||||
|
CRprocessorInstance.update(rotationalOffsets, userStateInstance, delta)
|
||||||
rotation_degrees = userState["rotation"]
|
rotation_degrees = userState["rotation"]
|
||||||
|
|
||||||
|
func _draw():
|
||||||
|
for vectorType in vectoralDirectionPreset:
|
||||||
|
var vT = str(vectorType)
|
||||||
|
for vector in vectoralDirectionPreset[vT]:
|
||||||
|
var v = str(vector)
|
||||||
|
if vT == "0": draw_line(vectoralDirectionPreset[vT][v]["start"],vectoralDirectionPreset[vT][v]["ray"]["position"],Color(255,255,255),1)
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
func statePassback():
|
func statePassback():
|
||||||
return {"node_global_position": transform.origin, "rotation": null}
|
return {"node_global_position": null, "rotation": null}
|
||||||
|
|
||||||
func set_scale(scale) -> void:
|
func set_scale(scale) -> void:
|
||||||
$player_body/player_sprite_na.scale = Vector2(scale, scale)
|
$player_body/player_sprite_na.scale = Vector2(scale, scale)
|
||||||
|
|||||||
@ -9,8 +9,9 @@ func rotateBy(amount):
|
|||||||
if rotationalTracker == 361: rotationalTracker = 1
|
if rotationalTracker == 361: rotationalTracker = 1
|
||||||
elif rotationalTracker == -361: rotationalTracker = -1
|
elif rotationalTracker == -361: rotationalTracker = -1
|
||||||
|
|
||||||
func update():
|
func update(positionUpdate):
|
||||||
userState = preload("res://source/assets/scripts/handlers/character/player/player_node_handler.gd").new().statePassback()
|
userState = preload("res://source/assets/scripts/handlers/character/player/player_node_handler.gd").new().statePassback()
|
||||||
# IF necessary process and update and correct userState
|
# IF necessary process and update and correct userState
|
||||||
|
userState["node_global_position"] = positionUpdate
|
||||||
userState["rotation"] = rotationalTracker
|
userState["rotation"] = rotationalTracker
|
||||||
return userState
|
return userState
|
||||||
|
|||||||
@ -2,33 +2,43 @@ extends Node
|
|||||||
|
|
||||||
var vectoralState = {}
|
var vectoralState = {}
|
||||||
|
|
||||||
func getState(userState):
|
func getState(userState,objectDimensions):
|
||||||
|
print(objectDimensions)
|
||||||
|
var bSP = 0
|
||||||
|
var bHO = objectDimensions["sprite-width"] / 2
|
||||||
|
var bVVO = objectDimensions["sprite-height"]
|
||||||
|
var spHO = objectDimensions["collider-radius"]
|
||||||
vectoralState = {
|
vectoralState = {
|
||||||
"0": { # Source (Client) positional rotation vectors
|
"0": { # Source (Client) positional rotation vectors
|
||||||
"0": { # Primary source positional vector
|
"0": { # Primary source positional vector
|
||||||
"start": Vector2(0,0),
|
"start": Vector2(bSP,bSP),
|
||||||
"end": Vector2(0,0),
|
"end": Vector2(bSP,bVVO),
|
||||||
"ray": Vector2(0,0)
|
"ray": {"position": Vector2(bSP,bVVO),"length": bVVO,"offset":bVVO-spHO, "collided": false},
|
||||||
|
"vT": true
|
||||||
},
|
},
|
||||||
"1": { # Secondary source positional vector (Negative)
|
"1": { # Secondary source positional vector (Negative)
|
||||||
"start": Vector2(0,0),
|
"start": Vector2(bHO,bSP),
|
||||||
"end": Vector2(0,0),
|
"end": Vector2(bHO,bVVO),
|
||||||
"ray": Vector2(0,0)
|
"ray": {"position": Vector2(bHO,bVVO),"length": bVVO,"offset":bVVO-spHO, "collided": false},
|
||||||
|
"vT": true
|
||||||
},
|
},
|
||||||
"2": { # Secondary source positional vector (Positive)
|
"2": { # Secondary source positional vector (Positive)
|
||||||
"start": Vector2(0,0),
|
"start": Vector2(-bHO,bSP),
|
||||||
"end": Vector2(0,0),
|
"end": Vector2(-bHO,bVVO),
|
||||||
"ray": Vector2(0,0)
|
"ray": {"position": Vector2(-bHO,bVVO),"length": bVVO,"offset":bVVO-spHO, "collided": false},
|
||||||
|
"vT": true
|
||||||
},
|
},
|
||||||
"3": { # Secondary source positional vector (Negative) [R]
|
"3": { # Secondary source positional vector (Negative) [R]
|
||||||
"start": Vector2(0,0),
|
"start": Vector2(spHO,bSP),
|
||||||
"end": Vector2(0,0),
|
"end": Vector2(spHO,bVVO),
|
||||||
"ray": Vector2(0,0)
|
"ray": {"position": Vector2(spHO,bVVO),"length": bVVO,"offset":bVVO-spHO, "collided": false},
|
||||||
|
"vT": true
|
||||||
},
|
},
|
||||||
"4": { # Secondary source positional vector (Positive) [R]
|
"4": { # Secondary source positional vector (Positive) [R]
|
||||||
"start": Vector2(0,0),
|
"start": Vector2(-spHO,bSP),
|
||||||
"end": Vector2(0,0),
|
"end": Vector2(-spHO,bVVO),
|
||||||
"ray": Vector2(0,0)
|
"ray": {"position": Vector2(-spHO,bVVO),"length": bVVO,"offset":bVVO-spHO, "collided": false},
|
||||||
|
"vT": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"1": { # Source (Client) force vectors
|
"1": { # Source (Client) force vectors
|
||||||
|
|||||||
@ -1,4 +1,26 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
func _ready():
|
func update(rotationalOffsets, userStateInstance, delta):
|
||||||
|
var totalOffset = 0
|
||||||
|
var rotationalExpectation = {"0":0,"1":0,"2":0,"3":0,"4":0}
|
||||||
|
for offset in rotationalOffsets:
|
||||||
|
var offsetValue = rotationalOffsets[str(offset)]["offset"]
|
||||||
|
totalOffset += offsetValue
|
||||||
|
for offset in rotationalOffsets:
|
||||||
|
rotationalOffsets[str(offset)]["offset"] -= totalOffset / rotationalOffsets.size()
|
||||||
|
if rotationalOffsets[str(offset)]["offset"] > 5 or rotationalOffsets[str(offset)]["offset"] < -5: rotationalExpectation[str(offset)] = rotationalOffsets[str(offset)]["offset"] / 100 * abs(rotationalOffsets[str(offset)]["offset"]) - 5
|
||||||
|
var totalExpectation = 0
|
||||||
|
var activeSize = 0
|
||||||
|
for expectation in rotationalExpectation:
|
||||||
|
if rotationalOffsets[str(expectation)]["collided"] == true:
|
||||||
|
totalExpectation += rotationalExpectation[str(expectation)]
|
||||||
|
activeSize += 1
|
||||||
|
var actualExpectation = 0
|
||||||
|
if activeSize > 3: actualExpectation = totalExpectation / activeSize
|
||||||
|
print("AE:",actualExpectation)
|
||||||
|
if abs(actualExpectation) > 1:
|
||||||
|
if rotationalOffsets["0"]["offset"] > rotationalOffsets[str(rotationalOffsets.size()-1)]["offset"]:
|
||||||
|
print("left")
|
||||||
|
elif rotationalOffsets["0"]["offset"] < rotationalOffsets[str(rotationalOffsets.size()-1)]["offset"]:
|
||||||
|
print("right")
|
||||||
pass
|
pass
|
||||||
|
|||||||
@ -3,5 +3,15 @@ extends Node
|
|||||||
func _ready():
|
func _ready():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func process(userState, vectoralDirectionPreset):
|
func process(userState, vectoralDirectionPreset,scale,spaceState,ignorable):
|
||||||
return
|
var clientOffset = userState["node_global_position"]
|
||||||
|
for vectorType in vectoralDirectionPreset:
|
||||||
|
var vT = str(vectorType)
|
||||||
|
for vector in vectoralDirectionPreset[vT]:
|
||||||
|
var v = str(vector)
|
||||||
|
var Ray = spaceState.intersect_ray(vectoralDirectionPreset[vT][v]["start"].rotated(deg2rad(userState["rotation"])) + clientOffset,(vectoralDirectionPreset[vT][v]["end"].rotated(deg2rad(userState["rotation"])) + clientOffset),ignorable)
|
||||||
|
if "position" in Ray and vT == "0":
|
||||||
|
vectoralDirectionPreset[vT][v]["ray"] = {"position":Ray.position - clientOffset, "length":(Ray.position - clientOffset).y,"offset":(Ray.position - clientOffset).y - vectoralDirectionPreset[vT]["3"]["start"].x, "collided": true}
|
||||||
|
if "vT" in vectoralDirectionPreset[vT][v]: vectoralDirectionPreset[vT][v] = {"start": vectoralDirectionPreset[vT][v]["start"]*scale,"end": vectoralDirectionPreset[vT][v]["end"]*scale,"ray": {"position": vectoralDirectionPreset[vT][v]["ray"]["position"]*scale,"length": vectoralDirectionPreset[vT][v]["ray"]["length"],"offset": vectoralDirectionPreset[vT][v]["ray"]["offset"], "collided": true}}
|
||||||
|
elif vT == "0": vectoralDirectionPreset[vT][v]["ray"] = {"position":vectoralDirectionPreset[vT][v]["ray"]["position"], "length":vectoralDirectionPreset[vT][v]["ray"]["length"],"offset":vectoralDirectionPreset[vT][v]["ray"]["offset"], "collided": false}
|
||||||
|
return vectoralDirectionPreset
|
||||||
|
|||||||
@ -25,7 +25,7 @@ animations = [ {
|
|||||||
"frames": [ ExtResource( 13 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 10 ), ExtResource( 4 ), ExtResource( 14 ), ExtResource( 7 ), ExtResource( 3 ), ExtResource( 5 ), ExtResource( 11 ), ExtResource( 12 ), ExtResource( 6 ) ],
|
"frames": [ ExtResource( 13 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 10 ), ExtResource( 4 ), ExtResource( 14 ), ExtResource( 7 ), ExtResource( 3 ), ExtResource( 5 ), ExtResource( 11 ), ExtResource( 12 ), ExtResource( 6 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "idle-default",
|
"name": "idle-default",
|
||||||
"speed": 5.0
|
"speed": 60.0
|
||||||
} ]
|
} ]
|
||||||
|
|
||||||
[node name="player_node" type="Node2D"]
|
[node name="player_node" type="Node2D"]
|
||||||
|
|||||||
@ -8,3 +8,8 @@ script = ExtResource( 2 )
|
|||||||
|
|
||||||
[node name="player_node" parent="." instance=ExtResource( 1 )]
|
[node name="player_node" parent="." instance=ExtResource( 1 )]
|
||||||
position = Vector2( 500.041, 281.319 )
|
position = Vector2( 500.041, 281.319 )
|
||||||
|
|
||||||
|
[node name="StaticBody2D" type="StaticBody2D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="StaticBody2D"]
|
||||||
|
polygon = PoolVector2Array( 169.691, 439.532, 314.837, 499.922, 502.362, 521.111, 805.369, 508.397, 928.266, 434.235, 974.883, 566.668, 848.807, 598.452, 369.929, 597.392, 111.42, 526.408, 97.6474, 440.592 )
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user