Smoothened Leeches + increased Player jump height
This commit is contained in:
parent
ffd8e6b857
commit
88bd17c8c3
6 changed files with 40 additions and 43 deletions
|
|
@ -6,7 +6,7 @@
|
|||
[ext_resource type="AudioStream" uid="uid://co07360hqn6fk" path="res://sounds/686321__cjspellsfish__punch-land-soft.wav" id="4_ps8gx"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_cq6dk"]
|
||||
size = Vector2(2, 24)
|
||||
size = Vector2(2, 15)
|
||||
|
||||
[node name="Giant_Leech" type="Node2D"]
|
||||
scale = Vector2(1, 1.2)
|
||||
|
|
@ -51,7 +51,7 @@ collision_layer = 0
|
|||
collision_mask = 8
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="RayCast2D"]
|
||||
position = Vector2(0, 14.8)
|
||||
position = Vector2(0, 25)
|
||||
shape = SubResource("RectangleShape2D_cq6dk")
|
||||
|
||||
[node name="RayCast2D2" type="Area2D" parent="."]
|
||||
|
|
@ -59,7 +59,7 @@ collision_layer = 0
|
|||
collision_mask = 8
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="RayCast2D2"]
|
||||
position = Vector2(0, 14.8)
|
||||
position = Vector2(0, 25)
|
||||
shape = SubResource("RectangleShape2D_cq6dk")
|
||||
|
||||
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@ var angle = 0.0 if move_dir == 1 else PI
|
|||
|
||||
@onready var segments : Array[Node] = $Segments.get_children()
|
||||
@onready var segment_count = segments.size()
|
||||
var paused = false
|
||||
var pause_time = 0.1
|
||||
var iframes = 0.2
|
||||
var iframe_time = 0
|
||||
var dead = false
|
||||
|
|
@ -19,43 +17,32 @@ func _ready() -> void:
|
|||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if dead: return
|
||||
iframe_time = max(0, iframe_time - delta)
|
||||
if not paused:
|
||||
angle -= TAU * delta * angular_speed * move_dir
|
||||
if(angle > PI or angle < 0):
|
||||
paused = true
|
||||
await get_tree().create_timer(pause_time).timeout
|
||||
paused = false
|
||||
angle = fmod(angle + PI, PI)
|
||||
var y = position.length()
|
||||
var ratio = - move_dir * broadth / (2 * y)
|
||||
var rot_angle = - 2 * asin(ratio)
|
||||
position = position.rotated(rot_angle)
|
||||
if dead:
|
||||
return
|
||||
if(move_dir == 1 and angle < 1 or move_dir == -1 and angle > PI - 1):
|
||||
var y = position.length()
|
||||
var ratio = - move_dir * broadth / (2 * y)
|
||||
var rot_angle = - 2 * asin(ratio)
|
||||
|
||||
$RayCast2D.global_position = position.rotated(rot_angle)
|
||||
$RayCast2D.rotation = rot_angle
|
||||
if(move_dir == 1 and angle < 0.5 or move_dir == -1 and angle > PI - 0.5):
|
||||
if(not $RayCast2D.has_overlapping_bodies()):
|
||||
paused = true
|
||||
await get_tree().create_timer(pause_time).timeout
|
||||
paused = false
|
||||
move_dir *= -1
|
||||
if dead:
|
||||
return
|
||||
for i in range(segment_count):
|
||||
var segment_pos_data = calculate_segment_location_and_rotation(i)
|
||||
if not is_instance_valid(segments[i]):
|
||||
get_tree().get_root().print_tree_pretty()
|
||||
segments[i].position = segment_pos_data.position
|
||||
segments[i].rotation = segment_pos_data.rotation
|
||||
if not $RayCast2D2.has_overlapping_bodies():
|
||||
position += 200 * delta * $EarthAligner.global_from_local(Vector2.DOWN)
|
||||
var y = position.length()
|
||||
var ratio = - move_dir * broadth / (2 * y)
|
||||
var rot_angle = - 2 * asin(ratio)
|
||||
iframe_time = max(0, iframe_time - delta)
|
||||
angle -= TAU * delta * angular_speed * move_dir
|
||||
if(angle > PI + abs(rot_angle) / 2 or angle < - abs(rot_angle) / 2):
|
||||
angle = fmod(angle + PI, PI)
|
||||
position = position.rotated(rot_angle)
|
||||
if dead:
|
||||
return
|
||||
if(move_dir == 1 and angle < 1 or move_dir == -1 and angle > PI - 1):
|
||||
$RayCast2D.global_position = position.rotated(rot_angle)
|
||||
$RayCast2D.rotation = rot_angle
|
||||
if(move_dir == 1 and angle < 0.5 or move_dir == -1 and angle > PI - 0.5):
|
||||
if(not $RayCast2D.has_overlapping_bodies()):
|
||||
move_dir *= -1
|
||||
if dead:
|
||||
return
|
||||
for i in range(segment_count):
|
||||
var segment_pos_data = calculate_segment_location_and_rotation(i)
|
||||
if not is_instance_valid(segments[i]):
|
||||
get_tree().get_root().print_tree_pretty()
|
||||
segments[i].position = segment_pos_data.position
|
||||
segments[i].rotation = segment_pos_data.rotation
|
||||
|
||||
func calculate_segment_location_and_rotation (i) -> Dictionary:
|
||||
var aerial_end_location = Vector2.from_angle(-angle) * broadth
|
||||
|
|
|
|||
|
|
@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.cte
|
|||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
|||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
extends Item
|
||||
|
||||
func collect():
|
||||
player.jump_strength = 1500
|
||||
player.jump_strength = 1600
|
||||
$SoundCollect.play()
|
||||
return true
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://cxo6bq26huau7"]
|
||||
[gd_scene load_steps=15 format=3 uid="uid://cxo6bq26huau7"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cmaovvr15b3qk" path="res://player/player.tscn" id="2_1bvp3"]
|
||||
[ext_resource type="Texture2D" uid="uid://d3fpq76anm4t7" path="res://world/Background Prototype/Background prototype.png" id="3_kek77"]
|
||||
|
|
@ -13,6 +13,7 @@
|
|||
[ext_resource type="PackedScene" uid="uid://ca5ndobertnp4" path="res://water/water.tscn" id="10_4c57u"]
|
||||
[ext_resource type="Script" uid="uid://cpaskpj67pnaj" path="res://enemies/boss/boss_spawner.gd" id="10_efxa6"]
|
||||
[ext_resource type="PackedScene" uid="uid://cpe4s6vsn0ujd" path="res://enemies/boss/boss.tscn" id="11_efxa6"]
|
||||
[ext_resource type="PackedScene" uid="uid://bpgo1djj8f1rg" path="res://items/permanent_items/high_jump.tscn" id="14_w48qg"]
|
||||
|
||||
[node name="main" type="Node2D"]
|
||||
|
||||
|
|
@ -88,6 +89,9 @@ texture = ExtResource("3_kek77")
|
|||
script = ExtResource("10_efxa6")
|
||||
boss = ExtResource("11_efxa6")
|
||||
|
||||
[node name="HighJump" parent="." instance=ExtResource("14_w48qg")]
|
||||
position = Vector2(139, -3123)
|
||||
|
||||
[connection signal="active_item_changed" from="Player" to="UIOverlay/ItemUI" method="_on_player_active_item_changed"]
|
||||
[connection signal="health_changed" from="Player" to="UIOverlay/Healthbar" method="_on_player_health_changed"]
|
||||
[connection signal="max_hp_changed" from="Player" to="UIOverlay/Healthbar" method="_on_player_max_hp_changed"]
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ var gravity = 100;
|
|||
# Movement
|
||||
var facing = -1;
|
||||
var hspeed = 150;
|
||||
var jump_strength = 1100;
|
||||
var jump_strength = 1200;
|
||||
var air_jumps_max = 1;
|
||||
var air_jumps_current = 1;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue