| -rw-r--r-- | World.gd | 3 | ||||
| -rw-r--r-- | dots/YellowDot.gd | 1 | ||||
| -rw-r--r-- | dots/dot.gd | 11 | ||||
| -rw-r--r-- | dots/dot_extras/dotcollider.tscn | 2 | ||||
| -rw-r--r-- | dots/dot_template.tscn | 3 | ||||
| -rw-r--r-- | dots/plain_dot.gd | 7 | ||||
| -rw-r--r-- | dots/plain_dot.tscn | 8 | ||||
| -rw-r--r-- | dots/reddot.gd | 5 | ||||
| -rw-r--r-- | dots/reddot.tscn | 6 | ||||
| -rw-r--r-- | dots/yellowdot.tscn | 6 | ||||
| -rw-r--r-- | global_vars.gd | 1 | ||||
| -rw-r--r-- | leveldata.gd | 4 | ||||
| -rw-r--r-- | leveldata.tscn | 7 | ||||
| -rw-r--r-- | project.godot | 3 |
14 files changed, 38 insertions, 29 deletions
@@ -10,8 +10,7 @@ var h = GlobalVars.height var w = GlobalVars.width var dots = { - "yellowdot" : load(dots_path + "yellowdot.tscn"), - "reddot" : load(dots_path + "reddot.tscn") + "dot" : load(dots_path + "plain_dot.tscn"), } func _ready(): diff --git a/dots/YellowDot.gd b/dots/YellowDot.gd deleted file mode 100644 index a5b88f0..0000000 --- a/dots/YellowDot.gd +++ /dev/null @@ -1 +0,0 @@ -extends dot diff --git a/dots/dot.gd b/dots/dot.gd index d7b915e..7383686 100644 --- a/dots/dot.gd +++ b/dots/dot.gd @@ -1,4 +1,4 @@ -extends KinematicBody2D +extends Area2D class_name dot var dotCollider = preload("res://dots/dot_extras/dotcollider.tscn" ) @@ -8,19 +8,20 @@ onready var ray : RayCast2D var tween = Tween.new() -export(Color) var color export(GlobalVars.type) var dot_type func _ready(): Events.connect("level_initialized", self, "move") Events.connect("turn_over", self, "move") + add_collider() add_child(tween) + +func add_collider(): var new_dotcollider = dotCollider.instance() add_child(new_dotcollider) dotcollider = new_dotcollider ray = dotcollider.get_ray() dotcollider.move_ray($dotsprite/pos.global_position) - $dotsprite.change_color(color) func move(): if ! GlobalVars.state == GlobalVars.states.level_turn: @@ -38,8 +39,9 @@ func extend_ray_until_collides() -> Vector2: ray.cast_to.y += 1 ray.force_raycast_update() var size = ray.cast_to.y - print(ray.get_collider()) ray.cast_to = Vector2.ZERO + print(ray.get_collider()) + print(global_position.x, global_position.y + size) return Vector2(global_position.x, global_position.y + size) func turn_off_collision(): @@ -47,4 +49,3 @@ func turn_off_collision(): func _on_dot_input(viewport, event : InputEvent, shape_idx): InputHandler._pressed(event, self) - diff --git a/dots/dot_extras/dotcollider.tscn b/dots/dot_extras/dotcollider.tscn index 0ef1a53..967837d 100644 --- a/dots/dot_extras/dotcollider.tscn +++ b/dots/dot_extras/dotcollider.tscn @@ -13,3 +13,5 @@ script = ExtResource( 2 ) [node name="dotray" parent="." instance=ExtResource( 1 )] position = Vector2( 0, 32 ) +collide_with_areas = true +collide_with_bodies = false diff --git a/dots/dot_template.tscn b/dots/dot_template.tscn index 5902e02..d921bcd 100644 --- a/dots/dot_template.tscn +++ b/dots/dot_template.tscn @@ -3,10 +3,9 @@ [ext_resource path="res://dots/dot.gd" type="Script" id=1] [ext_resource path="res://dots/dot_extras/dotsprite.tscn" type="PackedScene" id=2] -[node name="dot_template" type="KinematicBody2D"] +[node name="dot_template" type="Area2D"] collision_layer = 2 collision_mask = 0 -input_pickable = true script = ExtResource( 1 ) [node name="dotsprite" parent="." instance=ExtResource( 2 )] diff --git a/dots/plain_dot.gd b/dots/plain_dot.gd new file mode 100644 index 0000000..d124ccb --- /dev/null +++ b/dots/plain_dot.gd @@ -0,0 +1,7 @@ +extends dot + + +func _ready(): + randomize() + var i = randi() % Leveldata.dot_colors.size() + $dotsprite.change_color(Leveldata.dot_colors[i]) diff --git a/dots/plain_dot.tscn b/dots/plain_dot.tscn new file mode 100644 index 0000000..7d6ab4c --- /dev/null +++ b/dots/plain_dot.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://dots/dot_template.tscn" type="PackedScene" id=1] +[ext_resource path="res://dots/plain_dot.gd" type="Script" id=2] + +[node name="plain_dot" instance=ExtResource( 1 )] +script = ExtResource( 2 ) +color = null diff --git a/dots/reddot.gd b/dots/reddot.gd deleted file mode 100644 index 05c5a2c..0000000 --- a/dots/reddot.gd +++ /dev/null @@ -1,5 +0,0 @@ -extends "res://dots/dot.gd" - - -func _ready(): - pass diff --git a/dots/reddot.tscn b/dots/reddot.tscn deleted file mode 100644 index 46826f3..0000000 --- a/dots/reddot.tscn +++ /dev/null @@ -1,6 +0,0 @@ -[gd_scene load_steps=2 format=2] - -[ext_resource path="res://dots/dot_template.tscn" type="PackedScene" id=1] - -[node name="reddot" instance=ExtResource( 1 )] -color = Color( 1, 0.407843, 0.407843, 1 ) diff --git a/dots/yellowdot.tscn b/dots/yellowdot.tscn deleted file mode 100644 index 9f7549a..0000000 --- a/dots/yellowdot.tscn +++ /dev/null @@ -1,6 +0,0 @@ -[gd_scene load_steps=2 format=2] - -[ext_resource path="res://dots/dot_template.tscn" type="PackedScene" id=1] - -[node name="yellowdot" instance=ExtResource( 1 )] -color = Color( 1, 0.831373, 0.25098, 1 ) diff --git a/global_vars.gd b/global_vars.gd index 5847804..ec38b06 100644 --- a/global_vars.gd +++ b/global_vars.gd @@ -7,6 +7,5 @@ enum states {player_turn, level_turn} var turns_used = 0 var state = states.level_turn - const height = 8 const width = 8 diff --git a/leveldata.gd b/leveldata.gd new file mode 100644 index 0000000..63fe965 --- /dev/null +++ b/leveldata.gd @@ -0,0 +1,4 @@ +extends Node + +export(PoolColorArray) var dot_colors +export(Color) var background_collor diff --git a/leveldata.tscn b/leveldata.tscn new file mode 100644 index 0000000..d78560c --- /dev/null +++ b/leveldata.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://leveldata.gd" type="Script" id=1] + +[node name="leveldata" type="Node"] +script = ExtResource( 1 ) +dot_colors = PoolColorArray( 1, 0.211765, 0.211765, 1, 0.25098, 0.701961, 1, 1, 1, 0.792157, 0.235294, 1, 0.67451, 0.317647, 1, 1 ) diff --git a/project.godot b/project.godot index 3bfe32f..d628b7b 100644 --- a/project.godot +++ b/project.godot @@ -9,7 +9,7 @@ config_version=4 _global_script_classes=[ { -"base": "KinematicBody2D", +"base": "Area2D", "class": "dot", "language": "GDScript", "path": "res://dots/dot.gd" @@ -31,6 +31,7 @@ Utils="*res://utils.gd" Events="*res://events.gd" EntityTracker="*res://entity_tracker.gd" InputHandler="*res://InputHandler.tscn" +Leveldata="*res://leveldata.tscn" [debug] |