diff options
author | cflip <cflip@cflip.net> | 2022-09-30 21:20:48 -0600 |
---|---|---|
committer | cflip <cflip@cflip.net> | 2022-09-30 21:20:48 -0600 |
commit | 1d485122123d59dfee0ddf6989f86832129f7220 (patch) | |
tree | 9b2b9cfc445374f046b1480b61e57c10a0c4e835 | |
parent | b76c6de83b01cddaf589669ef15081ffdbe6148b (diff) |
Add an indicator for the last point where the ball was released
-rw-r--r-- | scenes/basketball.tscn | 8 | ||||
-rw-r--r-- | scripts/basketball.gd | 10 | ||||
-rw-r--r-- | textures/release_indicator.png | bin | 0 -> 133 bytes | |||
-rw-r--r-- | textures/release_indicator.png.import | 35 |
4 files changed, 52 insertions, 1 deletions
diff --git a/scenes/basketball.tscn b/scenes/basketball.tscn index cdf2b5d..b46962f 100644 --- a/scenes/basketball.tscn +++ b/scenes/basketball.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=6 format=2] [ext_resource path="res://textures/basketball.png" type="Texture" id=1] [ext_resource path="res://scripts/basketball.gd" type="Script" id=2] +[ext_resource path="res://textures/release_indicator.png" type="Texture" id=3] [sub_resource type="PhysicsMaterial" id=2] bounce = 0.65 @@ -32,5 +33,10 @@ texture = ExtResource( 1 ) [node name="CollisionShape2D2" type="CollisionShape2D" parent="InnerShape"] shape = SubResource( 1 ) +[node name="ReleaseIndicator" type="Sprite" parent="."] +visible = false +modulate = Color( 1, 1, 1, 0.498039 ) +texture = ExtResource( 3 ) + [connection signal="mouse_entered" from="InnerShape" to="." method="_on_InnerShape_mouse_entered"] [connection signal="mouse_exited" from="InnerShape" to="." method="_on_InnerShape_mouse_exited"] diff --git a/scripts/basketball.gd b/scripts/basketball.gd index 9e95d35..bd3756b 100644 --- a/scripts/basketball.gd +++ b/scripts/basketball.gd @@ -27,6 +27,11 @@ func toggle_mode(): var shoot_power = -$Sprite.position * power_magnitude apply_impulse(Vector2(2, 2), shoot_power) + var shootAngle = atan2($Sprite.position.y, $Sprite.position.x) + $ReleaseIndicator.visible = false + $ReleaseIndicator.position = $Sprite.position + $ReleaseIndicator.rotation = shootAngle - PI / 2 + is_dragging = false $GhostSprite.visible = false $Sprite.position = Vector2(0, 0) @@ -34,6 +39,11 @@ func toggle_mode(): # Adds offset of ball's rotation to sprite AFTER the entire object has rotated from physics. # Done to keep appearance of same rotation to add consistency when resetting the ball. $Sprite.rotation += rotation + + # Hide the release indicator for the first throw in the next round + if !$"../Hoop".has_scored: + $ReleaseIndicator.visible = true + emit_signal("reset") waiting_for_shoot = true set_use_custom_integrator(waiting_for_shoot) diff --git a/textures/release_indicator.png b/textures/release_indicator.png Binary files differnew file mode 100644 index 0000000..d7ba268 --- /dev/null +++ b/textures/release_indicator.png diff --git a/textures/release_indicator.png.import b/textures/release_indicator.png.import new file mode 100644 index 0000000..e36f822 --- /dev/null +++ b/textures/release_indicator.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/release_indicator.png-d6a350a4a291ddea8c967f467eb2d21a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://textures/release_indicator.png" +dest_files=[ "res://.import/release_indicator.png-d6a350a4a291ddea8c967f467eb2d21a.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 |