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]
|
||||
|
||||
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"
|
||||
|
||||
[input]
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
extends Node
|
||||
|
||||
const LEVEL_SCALE = 0.05
|
||||
const LEVEL_SCALE = 0.25
|
||||
|
||||
func _ready():
|
||||
$player_node.set_scale(LEVEL_SCALE)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
extends Node
|
||||
|
||||
func update(userStateInstance):
|
||||
# userStateInstance.rotateBy(-1)
|
||||
#userStateInstance.rotateBy(-1)
|
||||
pass
|
||||
|
||||
@ -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()
|
||||
|
||||
# Local class variables
|
||||
var rotationalOffsets = {"0":0,"1":0,"2":0,"3":0,"4":0}
|
||||
var vectoralDirectionPreset
|
||||
var userInput
|
||||
var userState
|
||||
var VDIR
|
||||
|
||||
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):
|
||||
# Update data-handler returned states
|
||||
userInput = userInputInstance.update()
|
||||
userState = userStateInstance.update()
|
||||
userState = userStateInstance.update(global_transform.origin)
|
||||
# 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
|
||||
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
|
||||
|
||||
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"]
|
||||
|
||||
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
|
||||
|
||||
func statePassback():
|
||||
return {"node_global_position": transform.origin, "rotation": null}
|
||||
return {"node_global_position": null, "rotation": null}
|
||||
|
||||
func set_scale(scale) -> void:
|
||||
$player_body/player_sprite_na.scale = Vector2(scale, scale)
|
||||
|
||||
@ -9,8 +9,9 @@ func rotateBy(amount):
|
||||
if 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()
|
||||
# IF necessary process and update and correct userState
|
||||
userState["node_global_position"] = positionUpdate
|
||||
userState["rotation"] = rotationalTracker
|
||||
return userState
|
||||
|
||||
@ -2,33 +2,43 @@ extends Node
|
||||
|
||||
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 = {
|
||||
"0": { # Source (Client) positional rotation vectors
|
||||
"0": { # Primary source positional vector
|
||||
"start": Vector2(0,0),
|
||||
"end": Vector2(0,0),
|
||||
"ray": Vector2(0,0)
|
||||
"start": Vector2(bSP,bSP),
|
||||
"end": Vector2(bSP,bVVO),
|
||||
"ray": {"position": Vector2(bSP,bVVO),"length": bVVO,"offset":bVVO-spHO, "collided": false},
|
||||
"vT": true
|
||||
},
|
||||
"1": { # Secondary source positional vector (Negative)
|
||||
"start": Vector2(0,0),
|
||||
"end": Vector2(0,0),
|
||||
"ray": Vector2(0,0)
|
||||
"start": Vector2(bHO,bSP),
|
||||
"end": Vector2(bHO,bVVO),
|
||||
"ray": {"position": Vector2(bHO,bVVO),"length": bVVO,"offset":bVVO-spHO, "collided": false},
|
||||
"vT": true
|
||||
},
|
||||
"2": { # Secondary source positional vector (Positive)
|
||||
"start": Vector2(0,0),
|
||||
"end": Vector2(0,0),
|
||||
"ray": Vector2(0,0)
|
||||
"start": Vector2(-bHO,bSP),
|
||||
"end": Vector2(-bHO,bVVO),
|
||||
"ray": {"position": Vector2(-bHO,bVVO),"length": bVVO,"offset":bVVO-spHO, "collided": false},
|
||||
"vT": true
|
||||
},
|
||||
"3": { # Secondary source positional vector (Negative) [R]
|
||||
"start": Vector2(0,0),
|
||||
"end": Vector2(0,0),
|
||||
"ray": Vector2(0,0)
|
||||
"start": Vector2(spHO,bSP),
|
||||
"end": Vector2(spHO,bVVO),
|
||||
"ray": {"position": Vector2(spHO,bVVO),"length": bVVO,"offset":bVVO-spHO, "collided": false},
|
||||
"vT": true
|
||||
},
|
||||
"4": { # Secondary source positional vector (Positive) [R]
|
||||
"start": Vector2(0,0),
|
||||
"end": Vector2(0,0),
|
||||
"ray": Vector2(0,0)
|
||||
"start": Vector2(-spHO,bSP),
|
||||
"end": Vector2(-spHO,bVVO),
|
||||
"ray": {"position": Vector2(-spHO,bVVO),"length": bVVO,"offset":bVVO-spHO, "collided": false},
|
||||
"vT": true
|
||||
}
|
||||
},
|
||||
"1": { # Source (Client) force vectors
|
||||
|
||||
@ -1,4 +1,26 @@
|
||||
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
|
||||
|
||||
@ -3,5 +3,15 @@ extends Node
|
||||
func _ready():
|
||||
pass
|
||||
|
||||
func process(userState, vectoralDirectionPreset):
|
||||
return
|
||||
func process(userState, vectoralDirectionPreset,scale,spaceState,ignorable):
|
||||
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 ) ],
|
||||
"loop": true,
|
||||
"name": "idle-default",
|
||||
"speed": 5.0
|
||||
"speed": 60.0
|
||||
} ]
|
||||
|
||||
[node name="player_node" type="Node2D"]
|
||||
|
||||
@ -8,3 +8,8 @@ script = ExtResource( 2 )
|
||||
|
||||
[node name="player_node" parent="." instance=ExtResource( 1 )]
|
||||
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