Frog jumps only within radius

This commit is contained in:
Jakob Feldmann 2023-01-05 00:02:09 +01:00
parent 7a7c1638ba
commit 3689e9a43b
4 changed files with 28 additions and 10 deletions

View File

@ -199,7 +199,7 @@ tracks/1/loop_wrap = true
tracks/1/imported = false tracks/1/imported = false
tracks/1/enabled = true tracks/1/enabled = true
tracks/1/keys = { tracks/1/keys = {
"times": PoolRealArray( 0.6 ), "times": PoolRealArray( 0.01 ),
"transitions": PoolRealArray( 1 ), "transitions": PoolRealArray( 1 ),
"update": 1, "update": 1,
"values": [ -10000000 ] "values": [ -10000000 ]
@ -211,7 +211,7 @@ tracks/2/loop_wrap = true
tracks/2/imported = false tracks/2/imported = false
tracks/2/enabled = true tracks/2/enabled = true
tracks/2/keys = { tracks/2/keys = {
"times": PoolRealArray( 0.6 ), "times": PoolRealArray( 0.02 ),
"transitions": PoolRealArray( 1 ), "transitions": PoolRealArray( 1 ),
"update": 1, "update": 1,
"values": [ -10000000 ] "values": [ -10000000 ]
@ -223,7 +223,7 @@ tracks/3/loop_wrap = true
tracks/3/imported = false tracks/3/imported = false
tracks/3/enabled = true tracks/3/enabled = true
tracks/3/keys = { tracks/3/keys = {
"times": PoolRealArray( 0.6 ), "times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ), "transitions": PoolRealArray( 1 ),
"update": 1, "update": 1,
"values": [ 10000000 ] "values": [ 10000000 ]
@ -235,7 +235,7 @@ tracks/4/loop_wrap = true
tracks/4/imported = false tracks/4/imported = false
tracks/4/enabled = true tracks/4/enabled = true
tracks/4/keys = { tracks/4/keys = {
"times": PoolRealArray( 0.6 ), "times": PoolRealArray( 0.59 ),
"transitions": PoolRealArray( 1 ), "transitions": PoolRealArray( 1 ),
"update": 1, "update": 1,
"values": [ 10000000 ] "values": [ 10000000 ]

View File

@ -1,5 +1,6 @@
extends Node2D extends Node2D
export var movement_radius = 200
var Rope = preload("res://src/Contraptions/Rope/Rope.tscn") var Rope = preload("res://src/Contraptions/Rope/Rope.tscn")
var RopeAnchor = preload("res://src/Contraptions/Rope/RopeAnchor.tscn") var RopeAnchor = preload("res://src/Contraptions/Rope/RopeAnchor.tscn")
@ -15,8 +16,9 @@ func _on_LevelTemplate_ready() -> void:
rope.rope_start = get_node("WhatAreFrog") rope.rope_start = get_node("WhatAreFrog")
rope.rope_end_joint = get_node("RopeAnchor/cshape/pjoint") rope.rope_end_joint = get_node("RopeAnchor/cshape/pjoint")
rope.rope_start_joint = get_node("WhatAreFrog/cshape/pjoint") rope.rope_start_joint = get_node("WhatAreFrog/cshape/pjoint")
rope.spawn_rope($WhatAreFrog.global_position, $WhatAreFrog.global_position + Vector2(100,0), false) rope.spawn_rope($WhatAreFrog.global_position, $RopeAnchor.global_position, false)
pass
$WhatAreFrog.bind_to_anchor($RopeAnchor, movement_radius)
# Executes on frog death # Executes on frog death
# The old switchero # The old switchero

View File

@ -6,9 +6,13 @@ onready var jump_timer: Timer
export var score := 100 export var score := 100
var start_x = 0 var movement_radius: float
var in_air = false var anchor: Node2D
var is_hurt = false var is_bound := false
var start_x := 0
var in_air := false
var is_hurt := false
func _ready(): func _ready():
jump_timer = Timer.new() jump_timer = Timer.new()
@ -16,6 +20,11 @@ func _ready():
jump_timer.connect("timeout", self, "jump") jump_timer.connect("timeout", self, "jump")
add_child(jump_timer) add_child(jump_timer)
func bind_to_anchor(anchor_node: Node2D, radius: float ) -> void:
anchor = anchor_node
movement_radius = radius
is_bound = true
# TODO adapt to groups # TODO adapt to groups
# TODO Engine error here(what does it WANT???) # TODO Engine error here(what does it WANT???)
func _on_StompDetector_body_entered(body: Node) -> void: func _on_StompDetector_body_entered(body: Node) -> void:
@ -30,6 +39,13 @@ func execute_movement(delta: float) -> void:
velocity.y += _gravity * delta velocity.y += _gravity * delta
if sign(velocity.x) != orientation.cast_to.x: if sign(velocity.x) != orientation.cast_to.x:
velocity.x *= -1 velocity.x *= -1
if(is_bound):
var next_position = global_position + velocity*delta
var distance_to_anchor = global_position.distance_to(anchor.global_position)
var new_distance = next_position.distance_to(anchor.global_position)
if(new_distance > movement_radius):
velocity = velocity/2
orientation.cast_to.x *= -1
velocity = move_and_slide(velocity, FLOOR_NORMAL, false, 4, 0.785398,false) velocity = move_and_slide(velocity, FLOOR_NORMAL, false, 4, 0.785398,false)
if(is_on_floor()): if(is_on_floor()):
velocity = Vector2(0,0) velocity = Vector2(0,0)

View File

@ -37,7 +37,7 @@ format = 1
tile_data = PoolIntArray( 131099, -1073741822, 0, 262139, -1610612734, 0, 196635, -1073741822, 0, 327675, -1610612734, 0, 262171, -1073741822, 0, 393211, -1610612734, 0, 327707, -1073741822, 0, 458747, -1610612734, 0, 393243, -1073741822, 0, 524283, -1610612734, 0, 458779, -1073741822, 0, 589819, -1610612734, 0, 524315, -1073741822, 0, 655355, -1610612734, 0, 589851, -1073741822, 0, 720891, -1610612734, 0, 655387, -1073741822, 0, 786427, -1610612734, 0, 720923, -1073741822, 0, 851963, -1610612734, 0, 786459, -1073741822, 0, 917499, -1610612734, 0, 851995, -1073741822, 0, 983036, 2, 0, 983037, 2, 0, 983038, 2, 0, 983039, 2, 0, 917504, 2, 0, 917505, 2, 0, 917506, 2, 0, 917507, 2, 0, 917508, 2, 0, 917509, 2, 0, 917510, 2, 0, 917511, 2, 0, 917512, 2, 0, 917513, 2, 0, 917514, 2, 0, 917515, 2, 0, 917516, 2, 0, 917517, 2, 0, 917518, 2, 0, 917519, 2, 0, 917520, 2, 0, 917521, 2, 0, 917522, 2, 0, 917523, 2, 0, 917524, 2, 0, 917525, 2, 0, 917526, 2, 0, 917527, 2, 0, 917528, 2, 0, 917529, 2, 0, 917530, 2, 0 ) tile_data = PoolIntArray( 131099, -1073741822, 0, 262139, -1610612734, 0, 196635, -1073741822, 0, 327675, -1610612734, 0, 262171, -1073741822, 0, 393211, -1610612734, 0, 327707, -1073741822, 0, 458747, -1610612734, 0, 393243, -1073741822, 0, 524283, -1610612734, 0, 458779, -1073741822, 0, 589819, -1610612734, 0, 524315, -1073741822, 0, 655355, -1610612734, 0, 589851, -1073741822, 0, 720891, -1610612734, 0, 655387, -1073741822, 0, 786427, -1610612734, 0, 720923, -1073741822, 0, 851963, -1610612734, 0, 786459, -1073741822, 0, 917499, -1610612734, 0, 851995, -1073741822, 0, 983036, 2, 0, 983037, 2, 0, 983038, 2, 0, 983039, 2, 0, 917504, 2, 0, 917505, 2, 0, 917506, 2, 0, 917507, 2, 0, 917508, 2, 0, 917509, 2, 0, 917510, 2, 0, 917511, 2, 0, 917512, 2, 0, 917513, 2, 0, 917514, 2, 0, 917515, 2, 0, 917516, 2, 0, 917517, 2, 0, 917518, 2, 0, 917519, 2, 0, 917520, 2, 0, 917521, 2, 0, 917522, 2, 0, 917523, 2, 0, 917524, 2, 0, 917525, 2, 0, 917526, 2, 0, 917527, 2, 0, 917528, 2, 0, 917529, 2, 0, 917530, 2, 0 )
[node name="Spikes" parent="." instance=ExtResource( 13 )] [node name="Spikes" parent="." instance=ExtResource( 13 )]
position = Vector2( 121, 324 ) position = Vector2( -13, 324 )
[node name="BlobbyCam" parent="." instance=ExtResource( 11 )] [node name="BlobbyCam" parent="." instance=ExtResource( 11 )]