Compare commits

...

3 commits

Author SHA1 Message Date
fd4c08975d shoot ball straight up on power hit 2025-11-17 22:23:40 -03:00
8351708490 modify power hit collision 2025-11-17 22:16:48 -03:00
6f235f99b9 modify power hit range and sprite 2025-11-17 22:15:48 -03:00
7 changed files with 34 additions and 60 deletions

View file

@ -31,17 +31,15 @@ func play_animation(speed_scale: float = 0) -> void:
sprite.play("default") sprite.play("default")
func decelerate_to_stop(duration: float = 0.3) -> void: # Call this after collision func decelerate_to_stop(duration: float = 0.3) -> void:
# KILL ANY EXISTING TWEEN (one at a time guaranteed!)
if current_decel_tween: if current_decel_tween:
current_decel_tween.kill() current_decel_tween.kill()
# CREATE NEW ONE
current_decel_tween = create_tween() current_decel_tween = create_tween()
current_decel_tween.tween_property(sprite, "speed_scale", 0.0, duration) current_decel_tween.tween_property(sprite, "speed_scale", 0.0, duration)
current_decel_tween.tween_callback(func() -> void: current_decel_tween.tween_callback(func() -> void:
sprite.pause() # Freeze on last frame sprite.pause()
current_decel_tween = null # Clean up current_decel_tween = null
) )
@ -53,8 +51,8 @@ func _on_hit(hitbox: Hit) -> void:
print("ball not hit yet") print("ball not hit yet")
var player: Player = hitbox.get_parent() var player: Player = hitbox.get_parent()
var timer: Timer = player.hit_timer var timer: Timer = player.hit_timer
var angle: float = randf_range(3*PI/4, PI/4) * (-1 if player.id == 1 else 1) var angle: float = (PI/2 if hitbox.power_hit else randf_range(3*PI/4, PI/4)) * (-1 if player.id == 1 else 1)
var speed: float = randf_range(300, 350) if hitbox.power_hit else 0.0 # o.o var speed: float = randf_range(350, 450) if hitbox.power_hit else 0.0 # o.o
launch(angle, speed) launch(angle, speed)
print("ball hit") print("ball hit")
if not timer.is_connected("timeout", _on_hit_end): if not timer.is_connected("timeout", _on_hit_end):

View file

@ -7,8 +7,6 @@ collision_layer = 64
collision_mask = 0 collision_mask = 0
script = ExtResource("1_udkr8") script = ExtResource("1_udkr8")
[node name="Sprite2D" type="Sprite2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
rotation = 1.5707964 rotation = 1.5707964
debug_color = Color(0.6205005, 0.42311785, 0.8432588, 0.41960785) debug_color = Color(0.6205005, 0.42311785, 0.8432588, 0.41960785)

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 B

View file

@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d3qem75thpant"
path="res://.godot/imported/power_hit.png-d86fdff5941c4bbd15b7b007109f3e9d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://scenes/hit/assets/power_hit.png"
dest_files=["res://.godot/imported/power_hit.png-d86fdff5941c4bbd15b7b007109f3e9d.ctex"]
[params]
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
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
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -1,10 +1,11 @@
[gd_scene load_steps=4 format=3 uid="uid://d0c57c37o75b0"] [gd_scene load_steps=4 format=3 uid="uid://d0c57c37o75b0"]
[ext_resource type="Texture2D" uid="uid://d3qem75thpant" path="res://scenes/hit/assets/power_hit.png" id="1_g005q"]
[ext_resource type="Script" uid="uid://b440ri3521uio" path="res://scenes/classes/hit.gd" id="1_kwsj5"] [ext_resource type="Script" uid="uid://b440ri3521uio" path="res://scenes/classes/hit.gd" id="1_kwsj5"]
[ext_resource type="Texture2D" uid="uid://c6a62gvw7218s" path="res://scenes/hit/assets/hit.png" id="2_kwsj5"]
[sub_resource type="CircleShape2D" id="CircleShape2D_g005q"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_kwsj5"]
radius = 21.023796 radius = 30.0
height = 70.0
[node name="PowerHit2D" type="Area2D" groups=["hit"]] [node name="PowerHit2D" type="Area2D" groups=["hit"]]
collision_layer = 64 collision_layer = 64
@ -14,10 +15,27 @@ power_hit = true
metadata/_custom_type_script = "uid://b440ri3521uio" metadata/_custom_type_script = "uid://b440ri3521uio"
metadata/power_hit = true metadata/power_hit = true
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("1_g005q")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
rotation = 1.5707964 rotation = 1.5707964
shape = SubResource("CircleShape2D_g005q") shape = SubResource("CapsuleShape2D_kwsj5")
debug_color = Color(0.6205005, 0.42311785, 0.8432588, 0.41960785) debug_color = Color(0.6205005, 0.42311785, 0.8432588, 0.41960785)
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(20, -22)
texture = ExtResource("2_kwsj5")
[node name="Sprite2D2" type="Sprite2D" parent="."]
position = Vector2(-20, -22)
texture = ExtResource("2_kwsj5")
flip_h = true
[node name="Sprite2D3" type="Sprite2D" parent="."]
position = Vector2(20, 22)
texture = ExtResource("2_kwsj5")
flip_v = true
[node name="Sprite2D4" type="Sprite2D" parent="."]
position = Vector2(-20, 22)
texture = ExtResource("2_kwsj5")
flip_h = true
flip_v = true

View file

@ -14,12 +14,12 @@ script = ExtResource("1_dk3vy")
metadata/_custom_type_script = "uid://b440ri3521uio" metadata/_custom_type_script = "uid://b440ri3521uio"
metadata/power_hit = false metadata/power_hit = false
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(7, -4)
texture = ExtResource("1_rmj1p")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(4, 1) position = Vector2(4, 1)
rotation = 1.5707964 rotation = 1.5707964
shape = SubResource("CapsuleShape2D_fxeki") shape = SubResource("CapsuleShape2D_fxeki")
debug_color = Color(0.6205005, 0.42311785, 0.8432588, 0.41960785) debug_color = Color(0.6205005, 0.42311785, 0.8432588, 0.41960785)
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(7, -4)
texture = ExtResource("1_rmj1p")