From da193ee9535fc2565a1ed602f91fcc2c0090aaea Mon Sep 17 00:00:00 2001 From: karl Date: Wed, 17 Nov 2021 23:31:27 +0100 Subject: [PATCH] Add all shapes and select randomly --- GameBoard.gd | 19 +++++++++++++++---- GameBoard.tscn | 5 +---- ShapeI.tscn | 19 +++++++++++++++++++ ShapeJ.tscn | 19 +++++++++++++++++++ ShapeSquare.tscn => ShapeO.tscn | 0 ShapeS.tscn | 19 +++++++++++++++++++ ShapeT.tscn | 19 +++++++++++++++++++ ShapeZ.tscn | 19 +++++++++++++++++++ 8 files changed, 111 insertions(+), 8 deletions(-) create mode 100644 ShapeI.tscn create mode 100644 ShapeJ.tscn rename ShapeSquare.tscn => ShapeO.tscn (100%) create mode 100644 ShapeS.tscn create mode 100644 ShapeT.tscn create mode 100644 ShapeZ.tscn diff --git a/GameBoard.gd b/GameBoard.gd index 40df3e6..96c59f9 100644 --- a/GameBoard.gd +++ b/GameBoard.gd @@ -1,7 +1,17 @@ extends Node2D -onready var active_shape: TetrisShape = $ShapeSquare +var shapes = [ + preload("res://ShapeI.tscn"), + preload("res://ShapeJ.tscn"), + preload("res://ShapeL.tscn"), + preload("res://ShapeZ.tscn"), + preload("res://ShapeS.tscn"), + preload("res://ShapeT.tscn"), + preload("res://ShapeO.tscn") +] + +var active_shape: TetrisShape const RASTER_SIZE = 64 const BOTTOM = RASTER_SIZE * 10 @@ -9,11 +19,12 @@ const BOTTOM = RASTER_SIZE * 10 func _ready(): $GravityTimer.connect("timeout", self, "update_board") + + active_shape = get_random_shape() func get_random_shape(): - # TODO: Make random - var new_shape = preload("res://ShapeL.tscn").instance() + var new_shape = shapes[randi() % shapes.size()].instance() add_child(new_shape) return new_shape @@ -33,7 +44,7 @@ func move_active_down(): func can_active_move_down(): - if active_shape.position.y >= RASTER_SIZE * 10: + if active_shape.position.y >= BOTTOM: return false for block in active_shape.get_blocks(): diff --git a/GameBoard.tscn b/GameBoard.tscn index 610e327..8d02587 100644 --- a/GameBoard.tscn +++ b/GameBoard.tscn @@ -1,8 +1,7 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=3 format=2] [ext_resource path="res://background.png" type="Texture" id=1] [ext_resource path="res://GameBoard.gd" type="Script" id=2] -[ext_resource path="res://ShapeSquare.tscn" type="PackedScene" id=3] [node name="GameBoard" type="Node2D"] script = ExtResource( 2 ) @@ -16,6 +15,4 @@ process_mode = 0 wait_time = 0.5 autostart = true -[node name="ShapeSquare" parent="." instance=ExtResource( 3 )] - [node name="StaticBlocks" type="Node2D" parent="."] diff --git a/ShapeI.tscn b/ShapeI.tscn new file mode 100644 index 0000000..ec43bf6 --- /dev/null +++ b/ShapeI.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://Block.tscn" type="PackedScene" id=1] +[ext_resource path="res://TetrisShape.gd" type="Script" id=2] + +[node name="ShapeI" type="Node2D"] +script = ExtResource( 2 ) + +[node name="Block" parent="." instance=ExtResource( 1 )] +position = Vector2( 32, 32 ) + +[node name="Block2" parent="." instance=ExtResource( 1 )] +position = Vector2( 32, -32 ) + +[node name="Block3" parent="." instance=ExtResource( 1 )] +position = Vector2( 32, -96 ) + +[node name="Block4" parent="." instance=ExtResource( 1 )] +position = Vector2( 32, -160 ) diff --git a/ShapeJ.tscn b/ShapeJ.tscn new file mode 100644 index 0000000..ffbe4ce --- /dev/null +++ b/ShapeJ.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://Block.tscn" type="PackedScene" id=1] +[ext_resource path="res://TetrisShape.gd" type="Script" id=2] + +[node name="ShapeJ" type="Node2D"] +script = ExtResource( 2 ) + +[node name="Block" parent="." instance=ExtResource( 1 )] +position = Vector2( -32, 32 ) + +[node name="Block2" parent="." instance=ExtResource( 1 )] +position = Vector2( 32, 32 ) + +[node name="Block3" parent="." instance=ExtResource( 1 )] +position = Vector2( 32, -32 ) + +[node name="Block4" parent="." instance=ExtResource( 1 )] +position = Vector2( 32, -96 ) diff --git a/ShapeSquare.tscn b/ShapeO.tscn similarity index 100% rename from ShapeSquare.tscn rename to ShapeO.tscn diff --git a/ShapeS.tscn b/ShapeS.tscn new file mode 100644 index 0000000..21330d8 --- /dev/null +++ b/ShapeS.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://Block.tscn" type="PackedScene" id=1] +[ext_resource path="res://TetrisShape.gd" type="Script" id=2] + +[node name="ShapeS" type="Node2D"] +script = ExtResource( 2 ) + +[node name="Block" parent="." instance=ExtResource( 1 )] +position = Vector2( -32, 32 ) + +[node name="Block2" parent="." instance=ExtResource( 1 )] +position = Vector2( 32, 32 ) + +[node name="Block3" parent="." instance=ExtResource( 1 )] +position = Vector2( 32, -32 ) + +[node name="Block4" parent="." instance=ExtResource( 1 )] +position = Vector2( 96, -32 ) diff --git a/ShapeT.tscn b/ShapeT.tscn new file mode 100644 index 0000000..e14f5d3 --- /dev/null +++ b/ShapeT.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://Block.tscn" type="PackedScene" id=1] +[ext_resource path="res://TetrisShape.gd" type="Script" id=2] + +[node name="ShapeT" type="Node2D"] +script = ExtResource( 2 ) + +[node name="Block" parent="." instance=ExtResource( 1 )] +position = Vector2( -32, 32 ) + +[node name="Block2" parent="." instance=ExtResource( 1 )] +position = Vector2( 32, 32 ) + +[node name="Block3" parent="." instance=ExtResource( 1 )] +position = Vector2( 32, -32 ) + +[node name="Block4" parent="." instance=ExtResource( 1 )] +position = Vector2( 96, 32 ) diff --git a/ShapeZ.tscn b/ShapeZ.tscn new file mode 100644 index 0000000..429aae7 --- /dev/null +++ b/ShapeZ.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://Block.tscn" type="PackedScene" id=1] +[ext_resource path="res://TetrisShape.gd" type="Script" id=2] + +[node name="ShapeZ" type="Node2D"] +script = ExtResource( 2 ) + +[node name="Block" parent="." instance=ExtResource( 1 )] +position = Vector2( -32, -32 ) + +[node name="Block2" parent="." instance=ExtResource( 1 )] +position = Vector2( 32, -32 ) + +[node name="Block3" parent="." instance=ExtResource( 1 )] +position = Vector2( 32, 32 ) + +[node name="Block4" parent="." instance=ExtResource( 1 )] +position = Vector2( 96, 32 )