mirror of
https://github.com/Steffo99/particle-clash.git
synced 2024-11-25 00:54:18 +00:00
Improved things here and there
haha atomic commits in a game jam come on
This commit is contained in:
parent
1fce7cb55b
commit
98aded7b07
7 changed files with 150 additions and 70 deletions
71
src/Main.gd
71
src/Main.gd
|
@ -4,19 +4,86 @@ func _on_LeftColorPicker_color_changed(color: Color):
|
||||||
$Background/Left.modulate = color
|
$Background/Left.modulate = color
|
||||||
$Gameplay/LeftPlayArea.self_modulate = color
|
$Gameplay/LeftPlayArea.self_modulate = color
|
||||||
$Gameplay/LeftPlayArea/Tiles.self_modulate = color
|
$Gameplay/LeftPlayArea/Tiles.self_modulate = color
|
||||||
|
$Gameplay/LeftPlayArea/Label.self_modulate = color
|
||||||
$Gameplay/Minimap/Left.self_modulate = color
|
$Gameplay/Minimap/Left.self_modulate = color
|
||||||
|
|
||||||
func _on_RightColorPicker_color_changed(color: Color):
|
func _on_RightColorPicker_color_changed(color: Color):
|
||||||
$Background/Right.modulate = color
|
$Background/Right.modulate = color
|
||||||
$Gameplay/RightPlayArea.self_modulate = color
|
$Gameplay/RightPlayArea.self_modulate = color
|
||||||
$Gameplay/RightPlayArea/Tiles.self_modulate = color
|
$Gameplay/RightPlayArea/Tiles.self_modulate = color
|
||||||
|
$Gameplay/RightPlayArea/Label.self_modulate = color
|
||||||
$Gameplay/Minimap/Right.self_modulate = color
|
$Gameplay/Minimap/Right.self_modulate = color
|
||||||
|
|
||||||
|
|
||||||
|
const SHAPE = [
|
||||||
|
# Cross
|
||||||
|
[
|
||||||
|
" GG ",
|
||||||
|
" YY ",
|
||||||
|
" YGGY ",
|
||||||
|
"RBRWWRBR",
|
||||||
|
"RBRWWRBR",
|
||||||
|
" YGGY ",
|
||||||
|
" YY ",
|
||||||
|
" GG "
|
||||||
|
],
|
||||||
|
# Larger
|
||||||
|
[
|
||||||
|
" GGBB ",
|
||||||
|
" GRRYYB ",
|
||||||
|
"GRRRYYYB",
|
||||||
|
"GRRRYYYB",
|
||||||
|
"YBBBGGGR",
|
||||||
|
"YBBBGGGR",
|
||||||
|
" YBBGGR ",
|
||||||
|
" YYRR "
|
||||||
|
],
|
||||||
|
# Donut
|
||||||
|
[
|
||||||
|
" RBBR ",
|
||||||
|
" RBRRBR ",
|
||||||
|
"RBRBBRBR",
|
||||||
|
"BRB BRB",
|
||||||
|
"BRB BRB",
|
||||||
|
"RBRBBRBR",
|
||||||
|
" RBRRBR ",
|
||||||
|
" RBBR "
|
||||||
|
],
|
||||||
|
# Good intro level
|
||||||
|
[
|
||||||
|
" RRBB ",
|
||||||
|
"RRBRBB",
|
||||||
|
"RBRBRB",
|
||||||
|
"BRBRBR",
|
||||||
|
"BBRBRR",
|
||||||
|
" BBRR "
|
||||||
|
],
|
||||||
|
# With a trick
|
||||||
|
[
|
||||||
|
" RBBR ",
|
||||||
|
"RBRRBR",
|
||||||
|
"BRWWRB",
|
||||||
|
"BRWWRB",
|
||||||
|
"RBRRBR",
|
||||||
|
" RBBR "
|
||||||
|
],
|
||||||
|
# TODO: Find solution?
|
||||||
|
[
|
||||||
|
" RRBB ",
|
||||||
|
"RBBRRB",
|
||||||
|
"BRRBBR",
|
||||||
|
"RBB RB",
|
||||||
|
"BRRBBR",
|
||||||
|
" BBRR "
|
||||||
|
],
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
func _on_Button_button_up():
|
func _on_Button_button_up():
|
||||||
$Menu.visible = false
|
$Menu.visible = false
|
||||||
$Gameplay.visible = true
|
$Gameplay.visible = true
|
||||||
$Gameplay/LeftPlayArea.tiles_init()
|
$Gameplay/LeftPlayArea.tiles_init(SHAPE[0])
|
||||||
$Gameplay/LeftPlayArea.cursor_init()
|
$Gameplay/LeftPlayArea.cursor_init()
|
||||||
$Gameplay/RightPlayArea.tiles_init()
|
$Gameplay/RightPlayArea.tiles_init(SHAPE[0])
|
||||||
$Gameplay/RightPlayArea.cursor_init()
|
$Gameplay/RightPlayArea.cursor_init()
|
||||||
$Gameplay/Timer.start()
|
$Gameplay/Timer.start()
|
||||||
|
|
|
@ -5,3 +5,8 @@ func _process(_delta):
|
||||||
var timer = $Timer
|
var timer = $Timer
|
||||||
$Minimap/Left.position.x = (1 - timer.time_left / timer.wait_time) * (get_viewport().size.x / 2)
|
$Minimap/Left.position.x = (1 - timer.time_left / timer.wait_time) * (get_viewport().size.x / 2)
|
||||||
$Minimap/Right.position.x = get_viewport().size.x - (1 - timer.time_left / timer.wait_time) * (get_viewport().size.x / 2)
|
$Minimap/Right.position.x = get_viewport().size.x - (1 - timer.time_left / timer.wait_time) * (get_viewport().size.x / 2)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Timer_timeout():
|
||||||
|
$LeftPlayArea.can_act = false
|
||||||
|
$RightPlayArea.can_act = false
|
||||||
|
|
|
@ -14,6 +14,7 @@ position = Vector2( 400, 450 )
|
||||||
player = "p1"
|
player = "p1"
|
||||||
|
|
||||||
[node name="Tiles" parent="LeftPlayArea" index="1"]
|
[node name="Tiles" parent="LeftPlayArea" index="1"]
|
||||||
|
visible = true
|
||||||
self_modulate = Color( 1, 0.701961, 0.701961, 1 )
|
self_modulate = Color( 1, 0.701961, 0.701961, 1 )
|
||||||
|
|
||||||
[node name="RightPlayArea" parent="." instance=ExtResource( 6 )]
|
[node name="RightPlayArea" parent="." instance=ExtResource( 6 )]
|
||||||
|
@ -22,6 +23,7 @@ position = Vector2( 1200, 450 )
|
||||||
player = "p2"
|
player = "p2"
|
||||||
|
|
||||||
[node name="Tiles" parent="RightPlayArea" index="1"]
|
[node name="Tiles" parent="RightPlayArea" index="1"]
|
||||||
|
visible = true
|
||||||
self_modulate = Color( 0.701961, 0.701961, 1, 1 )
|
self_modulate = Color( 0.701961, 0.701961, 1, 1 )
|
||||||
|
|
||||||
[node name="Timer" parent="." instance=ExtResource( 7 )]
|
[node name="Timer" parent="." instance=ExtResource( 7 )]
|
||||||
|
@ -41,5 +43,7 @@ position = Vector2( 1600, 0 )
|
||||||
scale = Vector2( 0.5, 0.5 )
|
scale = Vector2( 0.5, 0.5 )
|
||||||
texture = ExtResource( 2 )
|
texture = ExtResource( 2 )
|
||||||
|
|
||||||
|
[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]
|
||||||
|
|
||||||
[editable path="LeftPlayArea"]
|
[editable path="LeftPlayArea"]
|
||||||
[editable path="RightPlayArea"]
|
[editable path="RightPlayArea"]
|
||||||
|
|
|
@ -27,28 +27,35 @@ anchor_bottom = 1.0
|
||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
[node name="Title" type="Label" parent="VBoxContainer"]
|
[node name="Title" type="Label" parent="VBoxContainer"]
|
||||||
margin_top = 95.0
|
margin_top = 528.0
|
||||||
margin_right = 1600.0
|
margin_right = 3200.0
|
||||||
margin_bottom = 153.0
|
margin_bottom = 586.0
|
||||||
custom_fonts/font = SubResource( 3 )
|
custom_fonts/font = SubResource( 3 )
|
||||||
text = "Atomic Clash"
|
text = "Atomic Clash"
|
||||||
align = 1
|
align = 1
|
||||||
|
|
||||||
|
[node name="Title2" type="Label" parent="VBoxContainer"]
|
||||||
|
margin_top = 590.0
|
||||||
|
margin_right = 3200.0
|
||||||
|
margin_bottom = 620.0
|
||||||
|
text = "Pick your (preferably light) colors!"
|
||||||
|
align = 1
|
||||||
|
|
||||||
[node name="Padding" type="HBoxContainer" parent="VBoxContainer"]
|
[node name="Padding" type="HBoxContainer" parent="VBoxContainer"]
|
||||||
margin_top = 157.0
|
margin_top = 624.0
|
||||||
margin_right = 1600.0
|
margin_right = 3200.0
|
||||||
margin_bottom = 197.0
|
margin_bottom = 664.0
|
||||||
rect_min_size = Vector2( 0, 40 )
|
rect_min_size = Vector2( 0, 40 )
|
||||||
|
|
||||||
[node name="Colors" type="HBoxContainer" parent="VBoxContainer"]
|
[node name="Colors" type="HBoxContainer" parent="VBoxContainer"]
|
||||||
margin_top = 201.0
|
margin_top = 668.0
|
||||||
margin_right = 1600.0
|
margin_right = 3200.0
|
||||||
margin_bottom = 709.0
|
margin_bottom = 1176.0
|
||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
[node name="Left Player" type="VBoxContainer" parent="VBoxContainer/Colors"]
|
[node name="Left Player" type="VBoxContainer" parent="VBoxContainer/Colors"]
|
||||||
margin_left = 304.0
|
margin_left = 1104.0
|
||||||
margin_right = 724.0
|
margin_right = 1524.0
|
||||||
margin_bottom = 508.0
|
margin_bottom = 508.0
|
||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
|
@ -58,10 +65,9 @@ margin_bottom = 30.0
|
||||||
text = "Left Player [WASD + Space]"
|
text = "Left Player [WASD + Space]"
|
||||||
|
|
||||||
[node name="ColorPicker" type="ColorPicker" parent="VBoxContainer/Colors/Left Player"]
|
[node name="ColorPicker" type="ColorPicker" parent="VBoxContainer/Colors/Left Player"]
|
||||||
margin_left = 4.0
|
margin_top = 34.0
|
||||||
margin_top = 38.0
|
margin_right = 420.0
|
||||||
margin_right = 424.0
|
margin_bottom = 508.0
|
||||||
margin_bottom = 512.0
|
|
||||||
color = Color( 1, 0.7, 0.7, 1 )
|
color = Color( 1, 0.7, 0.7, 1 )
|
||||||
edit_alpha = false
|
edit_alpha = false
|
||||||
hsv_mode = true
|
hsv_mode = true
|
||||||
|
@ -69,8 +75,8 @@ presets_enabled = false
|
||||||
presets_visible = false
|
presets_visible = false
|
||||||
|
|
||||||
[node name="Vs" type="VBoxContainer" parent="VBoxContainer/Colors"]
|
[node name="Vs" type="VBoxContainer" parent="VBoxContainer/Colors"]
|
||||||
margin_left = 728.0
|
margin_left = 1528.0
|
||||||
margin_right = 872.0
|
margin_right = 1672.0
|
||||||
margin_bottom = 508.0
|
margin_bottom = 508.0
|
||||||
rect_min_size = Vector2( 144, 0 )
|
rect_min_size = Vector2( 144, 0 )
|
||||||
alignment = 1
|
alignment = 1
|
||||||
|
@ -84,8 +90,8 @@ align = 1
|
||||||
valign = 1
|
valign = 1
|
||||||
|
|
||||||
[node name="Right Player" type="VBoxContainer" parent="VBoxContainer/Colors"]
|
[node name="Right Player" type="VBoxContainer" parent="VBoxContainer/Colors"]
|
||||||
margin_left = 876.0
|
margin_left = 1676.0
|
||||||
margin_right = 1296.0
|
margin_right = 2096.0
|
||||||
margin_bottom = 508.0
|
margin_bottom = 508.0
|
||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
|
@ -96,10 +102,9 @@ text = "[↑←↓→ + Enter] Right Player"
|
||||||
align = 2
|
align = 2
|
||||||
|
|
||||||
[node name="ColorPicker" type="ColorPicker" parent="VBoxContainer/Colors/Right Player"]
|
[node name="ColorPicker" type="ColorPicker" parent="VBoxContainer/Colors/Right Player"]
|
||||||
margin_left = 4.0
|
margin_top = 34.0
|
||||||
margin_top = 38.0
|
margin_right = 420.0
|
||||||
margin_right = 424.0
|
margin_bottom = 508.0
|
||||||
margin_bottom = 512.0
|
|
||||||
color = Color( 0.7, 0.7, 1, 1 )
|
color = Color( 0.7, 0.7, 1, 1 )
|
||||||
edit_alpha = false
|
edit_alpha = false
|
||||||
hsv_mode = true
|
hsv_mode = true
|
||||||
|
@ -107,16 +112,16 @@ presets_enabled = false
|
||||||
presets_visible = false
|
presets_visible = false
|
||||||
|
|
||||||
[node name="Padding2" type="HBoxContainer" parent="VBoxContainer"]
|
[node name="Padding2" type="HBoxContainer" parent="VBoxContainer"]
|
||||||
margin_top = 713.0
|
margin_top = 1180.0
|
||||||
margin_right = 1600.0
|
margin_right = 3200.0
|
||||||
margin_bottom = 753.0
|
margin_bottom = 1220.0
|
||||||
rect_min_size = Vector2( 0, 40 )
|
rect_min_size = Vector2( 0, 40 )
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="VBoxContainer"]
|
[node name="Button" type="Button" parent="VBoxContainer"]
|
||||||
margin_left = 720.0
|
margin_left = 1520.0
|
||||||
margin_top = 757.0
|
margin_top = 1224.0
|
||||||
margin_right = 880.0
|
margin_right = 1680.0
|
||||||
margin_bottom = 805.0
|
margin_bottom = 1272.0
|
||||||
rect_min_size = Vector2( 160, 48 )
|
rect_min_size = Vector2( 160, 48 )
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
text = "Start!"
|
text = "Start!"
|
||||||
|
|
|
@ -1,24 +1,20 @@
|
||||||
extends Sprite
|
extends Sprite
|
||||||
|
|
||||||
|
|
||||||
func tiles_init():
|
var can_act = true
|
||||||
$Tiles.set_shape([
|
|
||||||
" RRBB ",
|
|
||||||
"RRBRBB",
|
func tiles_init(shape):
|
||||||
"RBRBRB",
|
$Tiles.set_shape(shape)
|
||||||
"BRBRBR",
|
|
||||||
"BBRBRR",
|
|
||||||
" BBRR "
|
|
||||||
])
|
|
||||||
check_matches()
|
check_matches()
|
||||||
|
|
||||||
|
|
||||||
var cursor_pos setget set_cursor_pos
|
var cursor_pos setget set_cursor_pos
|
||||||
func set_cursor_pos(val):
|
func set_cursor_pos(val):
|
||||||
var offset = $Tiles.size / 2
|
var offset = $Tiles.size / 2 - 1
|
||||||
$Tiles/Cursor.position = Vector2( \
|
$Tiles/Cursor.position = Vector2( \
|
||||||
(val.x - offset) * $Tiles.TILE_SIZE + 43, \
|
(val.x - offset) * $Tiles.TILE_SIZE, \
|
||||||
(val.y - offset) * $Tiles.TILE_SIZE + 43 \
|
(val.y - offset) * $Tiles.TILE_SIZE \
|
||||||
)
|
)
|
||||||
cursor_pos = val
|
cursor_pos = val
|
||||||
|
|
||||||
|
@ -53,24 +49,27 @@ func cursor_init():
|
||||||
get_tree().quit()
|
get_tree().quit()
|
||||||
|
|
||||||
func cursor_up():
|
func cursor_up():
|
||||||
|
if can_act:
|
||||||
cursor_move(Vector2(cursor_pos.x, cursor_pos.y - 1))
|
cursor_move(Vector2(cursor_pos.x, cursor_pos.y - 1))
|
||||||
|
|
||||||
func cursor_right():
|
func cursor_right():
|
||||||
|
if can_act:
|
||||||
cursor_move(Vector2(cursor_pos.x + 1, cursor_pos.y))
|
cursor_move(Vector2(cursor_pos.x + 1, cursor_pos.y))
|
||||||
|
|
||||||
func cursor_down():
|
func cursor_down():
|
||||||
|
if can_act:
|
||||||
cursor_move(Vector2(cursor_pos.x, cursor_pos.y + 1))
|
cursor_move(Vector2(cursor_pos.x, cursor_pos.y + 1))
|
||||||
|
|
||||||
func cursor_left():
|
func cursor_left():
|
||||||
|
if can_act:
|
||||||
cursor_move(Vector2(cursor_pos.x - 1, cursor_pos.y))
|
cursor_move(Vector2(cursor_pos.x - 1, cursor_pos.y))
|
||||||
|
|
||||||
func cursor_move(dest):
|
func cursor_move(dest):
|
||||||
if not cursor_would_collide(dest):
|
if not cursor_would_collide(dest):
|
||||||
set_cursor_pos(dest)
|
set_cursor_pos(dest)
|
||||||
else:
|
|
||||||
print("Cursor collided @ %d, %d" % [dest.x, dest.y])
|
|
||||||
|
|
||||||
func cursor_rotate():
|
func cursor_rotate():
|
||||||
|
if can_act:
|
||||||
var top_left = $Tiles.atoms[cursor_pos.y][cursor_pos.x]
|
var top_left = $Tiles.atoms[cursor_pos.y][cursor_pos.x]
|
||||||
var top_right = $Tiles.atoms[cursor_pos.y][cursor_pos.x+1]
|
var top_right = $Tiles.atoms[cursor_pos.y][cursor_pos.x+1]
|
||||||
var bottom_left = $Tiles.atoms[cursor_pos.y+1][cursor_pos.x]
|
var bottom_left = $Tiles.atoms[cursor_pos.y+1][cursor_pos.x]
|
||||||
|
|
|
@ -35,7 +35,7 @@ func set_shape(val):
|
||||||
set_cell(x, y, 0)
|
set_cell(x, y, 0)
|
||||||
var atom = ATOM.instance()
|
var atom = ATOM.instance()
|
||||||
atom.self_modulate = COLORS[col]
|
atom.self_modulate = COLORS[col]
|
||||||
atom.position = Vector2(x * TILE_SIZE, y * TILE_SIZE)
|
atom.position = Vector2(x * TILE_SIZE + TILE_SIZE / 2, y * TILE_SIZE + TILE_SIZE / 2)
|
||||||
add_child(atom)
|
add_child(atom)
|
||||||
atoms_row.append(atom)
|
atoms_row.append(atom)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
[sub_resource type="TileSet" id=1]
|
[sub_resource type="TileSet" id=1]
|
||||||
0/name = "grid-tile.png 0"
|
0/name = "grid-tile.png 0"
|
||||||
0/texture = ExtResource( 1 )
|
0/texture = ExtResource( 1 )
|
||||||
0/tex_offset = Vector2( -43, -43 )
|
0/tex_offset = Vector2( 0, 0 )
|
||||||
0/modulate = Color( 1, 1, 1, 1 )
|
0/modulate = Color( 1, 1, 1, 1 )
|
||||||
0/region = Rect2( 0, 0, 85, 85 )
|
0/region = Rect2( 0, 0, 85, 85 )
|
||||||
0/tile_mode = 0
|
0/tile_mode = 0
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
0/z_index = 0
|
0/z_index = 0
|
||||||
|
|
||||||
[node name="Tiles" type="TileMap"]
|
[node name="Tiles" type="TileMap"]
|
||||||
position = Vector2( 43, 43 )
|
visible = false
|
||||||
tile_set = SubResource( 1 )
|
tile_set = SubResource( 1 )
|
||||||
cell_size = Vector2( 86, 86 )
|
cell_size = Vector2( 86, 86 )
|
||||||
cell_tile_origin = 1
|
cell_tile_origin = 1
|
||||||
|
|
Loading…
Reference in a new issue