From 9d7f99c3fe1e03d0c0517fc2833c716547cd3d93 Mon Sep 17 00:00:00 2001 From: Josh Date: Mon, 2 Dec 2024 20:08:06 -0500 Subject: [PATCH] spinning is basically working --- .vs/slots/DesignTimeBuild/.dtbcache.v2 | Bin 0 -> 82353 bytes ...2c1cb54c-884e-46af-88be-dbb8b2b2cd87.vsidx | Bin 0 -> 11869 bytes ...6af12eb4-b31e-4107-84ad-4cdf8492e115.vsidx | Bin 0 -> 2691 bytes ...e07062da-369f-4b06-ac47-2208fc8c53f6.vsidx | Bin 0 -> 3323 bytes .vs/slots/FileContentIndex/read.lock | 0 .vs/slots/v17/.suo | Bin 0 -> 22016 bytes SlotMachine.cs | 31 +++++ SlotSymbol.cs | 36 ++++++ Wheel.cs | 61 ++++++++-- game.tscn | 110 +++++++++++++++--- project.godot | 2 +- 11 files changed, 211 insertions(+), 29 deletions(-) create mode 100644 .vs/slots/DesignTimeBuild/.dtbcache.v2 create mode 100644 .vs/slots/FileContentIndex/2c1cb54c-884e-46af-88be-dbb8b2b2cd87.vsidx create mode 100644 .vs/slots/FileContentIndex/6af12eb4-b31e-4107-84ad-4cdf8492e115.vsidx create mode 100644 .vs/slots/FileContentIndex/e07062da-369f-4b06-ac47-2208fc8c53f6.vsidx create mode 100644 .vs/slots/FileContentIndex/read.lock create mode 100644 .vs/slots/v17/.suo create mode 100644 SlotMachine.cs create mode 100644 SlotSymbol.cs diff --git a/.vs/slots/DesignTimeBuild/.dtbcache.v2 b/.vs/slots/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000000000000000000000000000000000000..b070215b995f5f7173fd48c9e3a9585f91128860 GIT binary patch literal 82353 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 literal 0 HcmV?d00001 diff --git a/.vs/slots/FileContentIndex/2c1cb54c-884e-46af-88be-dbb8b2b2cd87.vsidx b/.vs/slots/FileContentIndex/2c1cb54c-884e-46af-88be-dbb8b2b2cd87.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..0b32014751d0e8edc21183edd559bee2897cdcb9 GIT binary patch literal 11869 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 literal 0 HcmV?d00001 diff --git a/SlotMachine.cs b/SlotMachine.cs new file mode 100644 index 0000000..f1d5468 --- /dev/null +++ b/SlotMachine.cs @@ -0,0 +1,31 @@ +using Godot; +using System; + +public partial class SlotMachine : Sprite2D +{ + [Export] public Wheel[] Wheels; + public override void _Ready() + { + } + + // Called every frame. 'delta' is the elapsed time since the previous frame. + public override void _Process(double delta) + { + } + public override void _Input(InputEvent @event) + { + if (@event is InputEventKey keyEvent && keyEvent.Pressed) + { + if (keyEvent.Keycode == Key.Enter || keyEvent.Keycode == Key.KpEnter) + { + float extraLength = 0f; + + foreach (Wheel wheel in Wheels) + { + wheel.Spin(extraLength); + extraLength += 1f; + } + } + } + } +} diff --git a/SlotSymbol.cs b/SlotSymbol.cs new file mode 100644 index 0000000..7e4a6e9 --- /dev/null +++ b/SlotSymbol.cs @@ -0,0 +1,36 @@ +using Godot; +using System; + +public partial class SlotSymbol : Sprite2D +{ + public enum Type + { + BELL, + BAR, + SEVEN, + CHERRY, + BLANK + } + + [Export] public Type SlotType; + + public override void _Ready() + { + } + + // Called every frame. 'delta' is the elapsed time since the previous frame. + public override void _Process(double delta) + { + const float WRAPAROUND_DISTANCE = 109 * 5; + + if (GlobalPosition.Y < 320 - 184) + { + Position = new Vector2(Position.X, Position.Y + WRAPAROUND_DISTANCE); + } + + if (GlobalPosition.Y > 320 + 218) + { + Position = new Vector2(Position.X, Position.Y - WRAPAROUND_DISTANCE); + } + } +} diff --git a/Wheel.cs b/Wheel.cs index 7b0e2fc..a35992d 100644 --- a/Wheel.cs +++ b/Wheel.cs @@ -1,33 +1,74 @@ using Godot; using System; +using System.Collections.Generic; +using System.Threading.Tasks; public partial class Wheel : Sprite2D { - float _speed; - // Called when the node enters the scene tree for the first time. - public override void _Ready() + public float Speed; + bool _spinning = false; + // Called when the node enters the scene tree for the first time. + public override void _Ready() { - _speed = 1000f; } + public async void Spin(float extraLength) + { + _spinning = true; + Speed = (float)GD.RandRange(1200f, 2000f); + await ToSignal(GetTree().CreateTimer(2.0f + extraLength), SceneTreeTimer.SignalName.Timeout); + + Tween tween = GetTree().CreateTween(); + tween.TweenProperty(this, "Speed", 0, 1.0f); + } + + //Export] public Godot.Collections.Array Symbols; + [Export] public SlotSymbol[] SlotSymbols; + // Called every frame. 'delta' is the elapsed time since the previous frame. public override void _Process(double delta) - { + { + if (_spinning == false) + return; float dt = (float)delta; - _speed -= dt * 250f; + float minSpeed = 100f; + const float SPACING = 109f; - if (_speed <= 0) - return; + float originalMod = this.Position.Y % SPACING; + if (Speed <= minSpeed) { + Speed = minSpeed; - this.Position += new Vector2(0f, _speed * dt); + if (originalMod < 2) + { + _spinning = false; + Speed = 0; + } + } + + if (Speed <= 0) + return; + this.Position += new Vector2(0f, Speed * dt); + + /* + //check if we overshot the target + if (Speed <= minSpeed && this.Position.Y % SPACING > originalMod) + { + _spinning = false; + Speed = 0f; + } + */ + + + /* const float Y_WRAPAROUND = 464; if (Position.Y > Y_WRAPAROUND) { Position -= new Vector2(0f, Y_WRAPAROUND); } - } + */ + } } \ No newline at end of file diff --git a/game.tscn b/game.tscn index 63c5422..ddae43b 100644 --- a/game.tscn +++ b/game.tscn @@ -1,50 +1,124 @@ -[gd_scene load_steps=8 format=3 uid="uid://bxnxpcc3hwrrf"] +[gd_scene load_steps=10 format=3 uid="uid://bxnxpcc3hwrrf"] [ext_resource type="Texture2D" uid="uid://45e6o8fnn5g6" path="res://sprites/slot-machine1.png" id="1_67gbi"] [ext_resource type="Texture2D" uid="uid://cl1qwesnw8di7" path="res://sprites/slot-symbol2.png" id="2_epvcj"] +[ext_resource type="Script" path="res://SlotMachine.cs" id="2_fbgsk"] [ext_resource type="Script" path="res://Wheel.cs" id="2_p4s0j"] [ext_resource type="Texture2D" uid="uid://bqupkucthyf6k" path="res://sprites/slot-symbol1.png" id="3_mqf40"] [ext_resource type="Texture2D" uid="uid://b7512aakq5qsn" path="res://sprites/slot-symbol3.png" id="4_cdn8h"] +[ext_resource type="Script" path="res://SlotSymbol.cs" id="5_3my0i"] [ext_resource type="Texture2D" uid="uid://b746l2ipvabqy" path="res://sprites/slot-symbol4.png" id="5_gusk3"] [ext_resource type="Texture2D" uid="uid://dhid2cal2tbv2" path="res://sprites/slot-machine4.png" id="6_u8o3a"] [node name="Game" type="Node2D"] -[node name="slot-reference" type="Sprite2D" parent="."] +[node name="slot machine" type="Sprite2D" parent="." node_paths=PackedStringArray("Wheels")] position = Vector2(288, 320) texture = ExtResource("1_67gbi") +script = ExtResource("2_fbgsk") +Wheels = [NodePath("wheel"), NodePath("wheel2"), NodePath("wheel3")] -[node name="wheel" type="Sprite2D" parent="slot-reference"] +[node name="wheel" type="Sprite2D" parent="slot machine" node_paths=PackedStringArray("SlotSymbols")] script = ExtResource("2_p4s0j") +SlotSymbols = [NodePath("Slot-symbol1"), NodePath("Slot-symbol2"), NodePath("Slot-symbol3"), NodePath("Slot-symbol4"), NodePath("Slot-symbol5")] -[node name="top repeat" type="Sprite2D" parent="slot-reference/wheel"] -position = Vector2(-120, -422) +[node name="Slot-symbol1" type="Sprite2D" parent="slot machine/wheel"] +position = Vector2(-126, -293) +texture = ExtResource("3_mqf40") +script = ExtResource("5_3my0i") +SlotType = 2 + +[node name="Slot-symbol2" type="Sprite2D" parent="slot machine/wheel"] +position = Vector2(-130, -184) +texture = ExtResource("2_epvcj") +script = ExtResource("5_3my0i") +SlotType = 3 + +[node name="Slot-symbol3" type="Sprite2D" parent="slot machine/wheel"] +position = Vector2(-123, -75) +texture = ExtResource("4_cdn8h") +script = ExtResource("5_3my0i") + +[node name="Slot-symbol4" type="Sprite2D" parent="slot machine/wheel"] +position = Vector2(-120, 34) texture = ExtResource("5_gusk3") +script = ExtResource("5_3my0i") +SlotType = 1 + +[node name="Slot-symbol5" type="Sprite2D" parent="slot machine/wheel"] +position = Vector2(-120, 143) +texture = ExtResource("2_epvcj") +script = ExtResource("5_3my0i") +SlotType = 1 -[node name="Slot-symbol1" type="Sprite2D" parent="slot-reference/wheel"] -position = Vector2(-126, -304) +[node name="wheel2" type="Sprite2D" parent="slot machine" node_paths=PackedStringArray("SlotSymbols")] +position = Vector2(127, 0) +script = ExtResource("2_p4s0j") +SlotSymbols = [NodePath("Slot-symbol1"), NodePath("Slot-symbol2"), NodePath("Slot-symbol3"), NodePath("Slot-symbol4"), NodePath("Slot-symbol5")] + +[node name="Slot-symbol1" type="Sprite2D" parent="slot machine/wheel2"] +position = Vector2(-126, -293) texture = ExtResource("3_mqf40") +script = ExtResource("5_3my0i") +SlotType = 2 -[node name="Slot-symbol2" type="Sprite2D" parent="slot-reference/wheel"] -position = Vector2(-130, -190) +[node name="Slot-symbol2" type="Sprite2D" parent="slot machine/wheel2"] +position = Vector2(-130, -184) texture = ExtResource("2_epvcj") +script = ExtResource("5_3my0i") +SlotType = 3 -[node name="Slot-symbol3" type="Sprite2D" parent="slot-reference/wheel"] -position = Vector2(-123, -76) +[node name="Slot-symbol3" type="Sprite2D" parent="slot machine/wheel2"] +position = Vector2(-123, -75) texture = ExtResource("4_cdn8h") +script = ExtResource("5_3my0i") + +[node name="Slot-symbol4" type="Sprite2D" parent="slot machine/wheel2"] +position = Vector2(-120, 34) +texture = ExtResource("5_gusk3") +script = ExtResource("5_3my0i") +SlotType = 1 + +[node name="Slot-symbol5" type="Sprite2D" parent="slot machine/wheel2"] +position = Vector2(-120, 143) +texture = ExtResource("2_epvcj") +script = ExtResource("5_3my0i") +SlotType = 1 + +[node name="wheel3" type="Sprite2D" parent="slot machine" node_paths=PackedStringArray("SlotSymbols")] +position = Vector2(259, 0) +script = ExtResource("2_p4s0j") +SlotSymbols = [NodePath("Slot-symbol1"), NodePath("Slot-symbol2"), NodePath("Slot-symbol3"), NodePath("Slot-symbol4"), NodePath("Slot-symbol5")] -[node name="top repeat2" type="Sprite2D" parent="slot-reference/wheel"] -position = Vector2(-123, -537) +[node name="Slot-symbol1" type="Sprite2D" parent="slot machine/wheel3"] +position = Vector2(-126, -293) +texture = ExtResource("3_mqf40") +script = ExtResource("5_3my0i") +SlotType = 2 + +[node name="Slot-symbol2" type="Sprite2D" parent="slot machine/wheel3"] +position = Vector2(-130, -184) +texture = ExtResource("2_epvcj") +script = ExtResource("5_3my0i") +SlotType = 3 + +[node name="Slot-symbol3" type="Sprite2D" parent="slot machine/wheel3"] +position = Vector2(-123, -75) texture = ExtResource("4_cdn8h") +script = ExtResource("5_3my0i") -[node name="Slot-symbol5" type="Sprite2D" parent="slot-reference/wheel"] +[node name="Slot-symbol4" type="Sprite2D" parent="slot machine/wheel3"] position = Vector2(-120, 34) texture = ExtResource("5_gusk3") +script = ExtResource("5_3my0i") +SlotType = 1 -[node name="bottom repeat" type="Sprite2D" parent="slot-reference/wheel"] -position = Vector2(-126, 143) -texture = ExtResource("3_mqf40") +[node name="Slot-symbol5" type="Sprite2D" parent="slot machine/wheel3"] +position = Vector2(-120, 143) +texture = ExtResource("2_epvcj") +script = ExtResource("5_3my0i") +SlotType = 1 -[node name="slot-front" type="Sprite2D" parent="slot-reference"] +[node name="slot-front" type="Sprite2D" parent="slot machine"] position = Vector2(2, -3) texture = ExtResource("6_u8o3a") diff --git a/project.godot b/project.godot index 878bf6d..1319fc8 100644 --- a/project.godot +++ b/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="slots" run/main_scene="res://game.tscn" -config/features=PackedStringArray("4.3", "Forward Plus") +config/features=PackedStringArray("4.3", "C#", "Forward Plus") config/icon="res://icon.svg" [dotnet]