summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcflip <cflip@cflip.net>2022-09-30 21:20:48 -0600
committercflip <cflip@cflip.net>2022-09-30 21:20:48 -0600
commit1d485122123d59dfee0ddf6989f86832129f7220 (patch)
tree9b2b9cfc445374f046b1480b61e57c10a0c4e835
parentb76c6de83b01cddaf589669ef15081ffdbe6148b (diff)
Add an indicator for the last point where the ball was released
-rw-r--r--scenes/basketball.tscn8
-rw-r--r--scripts/basketball.gd10
-rw-r--r--textures/release_indicator.pngbin0 -> 133 bytes
-rw-r--r--textures/release_indicator.png.import35
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
new file mode 100644
index 0000000..d7ba268
--- /dev/null
+++ b/textures/release_indicator.png
Binary files differ
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