reorganize
This commit is contained in:
parent
74e288c870
commit
47b7bc24b0
@ -6,16 +6,17 @@ const ExplodingLine = preload("res://ExplodingLine.tscn")
|
|||||||
const EMPTY_CELL = -1
|
const EMPTY_CELL = -1
|
||||||
const MINO = 0
|
const MINO = 0
|
||||||
|
|
||||||
export (int) var NB_LINES = 20
|
|
||||||
export (int) var NB_COLLUMNS = 10
|
|
||||||
|
|
||||||
var exploding_lines = []
|
var exploding_lines = []
|
||||||
|
var nb_collumns
|
||||||
|
var nb_lines
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
for y in range(NB_LINES):
|
nb_collumns = int($Matrix.scale.x)
|
||||||
|
nb_lines = int($Matrix.scale.y)
|
||||||
|
for y in range(nb_lines):
|
||||||
exploding_lines.append(ExplodingLine.instance())
|
exploding_lines.append(ExplodingLine.instance())
|
||||||
add_child(exploding_lines[y])
|
add_child(exploding_lines[y])
|
||||||
exploding_lines[y].translation = Vector3(NB_COLLUMNS/2, y, 1)
|
exploding_lines[y].translation = Vector3(nb_collumns/2, y, 1)
|
||||||
|
|
||||||
func clear():
|
func clear():
|
||||||
for position in get_used_cells():
|
for position in get_used_cells():
|
||||||
@ -23,7 +24,7 @@ func clear():
|
|||||||
|
|
||||||
func is_free_cell(position):
|
func is_free_cell(position):
|
||||||
return (
|
return (
|
||||||
0 <= position.x and position.x < NB_COLLUMNS
|
0 <= position.x and position.x < nb_collumns
|
||||||
and position.y >= 0
|
and position.y >= 0
|
||||||
and get_cell_item(position.x, position.y, 0) == GridMap.INVALID_CELL_ITEM
|
and get_cell_item(position.x, position.y, 0) == GridMap.INVALID_CELL_ITEM
|
||||||
)
|
)
|
||||||
@ -43,7 +44,7 @@ func possible_positions(initial_positions, movement):
|
|||||||
func lock(piece):
|
func lock(piece):
|
||||||
var minoes_over_grid = 0
|
var minoes_over_grid = 0
|
||||||
for position in piece.positions():
|
for position in piece.positions():
|
||||||
if position.y >= NB_LINES:
|
if position.y >= nb_lines:
|
||||||
minoes_over_grid += 1
|
minoes_over_grid += 1
|
||||||
set_cell_item(position.x, position.y, 0, MINO)
|
set_cell_item(position.x, position.y, 0, MINO)
|
||||||
return minoes_over_grid < Tetromino.NB_MINOES
|
return minoes_over_grid < Tetromino.NB_MINOES
|
||||||
@ -51,15 +52,15 @@ func lock(piece):
|
|||||||
func clear_lines():
|
func clear_lines():
|
||||||
var line_cleared
|
var line_cleared
|
||||||
var lines_cleared = 0
|
var lines_cleared = 0
|
||||||
for y in range(NB_LINES-1, -1, -1):
|
for y in range(nb_lines-1, -1, -1):
|
||||||
line_cleared = true
|
line_cleared = true
|
||||||
for x in range(NB_COLLUMNS):
|
for x in range(nb_collumns):
|
||||||
if not get_cell_item(x, y, 0) == MINO:
|
if not get_cell_item(x, y, 0) == MINO:
|
||||||
line_cleared = false
|
line_cleared = false
|
||||||
break
|
break
|
||||||
if line_cleared:
|
if line_cleared:
|
||||||
for y2 in range(y, NB_LINES+2):
|
for y2 in range(y, nb_lines+2):
|
||||||
for x in range(NB_COLLUMNS):
|
for x in range(nb_collumns):
|
||||||
set_cell_item(x, y2, 0, get_cell_item(x, y2+1, 0))
|
set_cell_item(x, y2, 0, get_cell_item(x, y2+1, 0))
|
||||||
lines_cleared += 1
|
lines_cleared += 1
|
||||||
exploding_lines[y].emitting = true
|
exploding_lines[y].emitting = true
|
||||||
|
@ -11,9 +11,6 @@ const TetroZ = preload("res://Tetrominos/TetroZ.tscn")
|
|||||||
|
|
||||||
const password = "TETRIS 3000"
|
const password = "TETRIS 3000"
|
||||||
|
|
||||||
const NEXT_POSITION = Vector3(13, 16, 0)
|
|
||||||
const START_POSITION = Vector3(5, 20, 0)
|
|
||||||
const HOLD_POSITION = Vector3(-5, 16, 0)
|
|
||||||
const THERE = Vector3(0, 0, 0)
|
const THERE = Vector3(0, 0, 0)
|
||||||
|
|
||||||
const movements = {
|
const movements = {
|
||||||
@ -67,10 +64,10 @@ func new_piece():
|
|||||||
if current_piece:
|
if current_piece:
|
||||||
remove_child(current_piece)
|
remove_child(current_piece)
|
||||||
current_piece = next_piece
|
current_piece = next_piece
|
||||||
current_piece.translation = START_POSITION
|
current_piece.translation = $GridMap/Matrix/Position3D.translation
|
||||||
current_piece.emit_trail(true)
|
current_piece.emit_trail(true)
|
||||||
next_piece = random_piece()
|
next_piece = random_piece()
|
||||||
next_piece.translation = NEXT_POSITION
|
next_piece.translation = $GridMap/Next/Position3D.translation
|
||||||
if move(THERE):
|
if move(THERE):
|
||||||
$DropTimer.start()
|
$DropTimer.start()
|
||||||
$LockDelay.start()
|
$LockDelay.start()
|
||||||
@ -191,9 +188,9 @@ func hold():
|
|||||||
current_piece = held_piece
|
current_piece = held_piece
|
||||||
held_piece = swap
|
held_piece = swap
|
||||||
held_piece.emit_trail(false)
|
held_piece.emit_trail(false)
|
||||||
held_piece.translation = HOLD_POSITION
|
held_piece.translation = $GridMap/Hold/Position3D.translation
|
||||||
if current_piece:
|
if current_piece:
|
||||||
current_piece.translation = START_POSITION
|
current_piece.translation = $GridMap/Matrix/Position3D.translation
|
||||||
current_piece.emit_trail(true)
|
current_piece.emit_trail(true)
|
||||||
else:
|
else:
|
||||||
new_piece()
|
new_piece()
|
||||||
@ -208,7 +205,6 @@ func resume():
|
|||||||
$controls_ui.visible = false
|
$controls_ui.visible = false
|
||||||
$Stats.visible = true
|
$Stats.visible = true
|
||||||
$GridMap.visible = true
|
$GridMap.visible = true
|
||||||
$Backs.visible = true
|
|
||||||
current_piece.visible = true
|
current_piece.visible = true
|
||||||
if held_piece:
|
if held_piece:
|
||||||
held_piece.visible = true
|
held_piece.visible = true
|
||||||
@ -220,7 +216,6 @@ func pause(hide=true):
|
|||||||
if hide:
|
if hide:
|
||||||
$Stats.visible = false
|
$Stats.visible = false
|
||||||
$GridMap.visible = false
|
$GridMap.visible = false
|
||||||
$Backs.visible = false
|
|
||||||
current_piece.visible = false
|
current_piece.visible = false
|
||||||
if held_piece:
|
if held_piece:
|
||||||
held_piece.visible = false
|
held_piece.visible = false
|
||||||
|
@ -313,6 +313,7 @@ _sections_unfolded = [ "Light", "Transform" ]
|
|||||||
|
|
||||||
[node name="GridMap" type="GridMap" parent="." index="3"]
|
[node name="GridMap" type="GridMap" parent="." index="3"]
|
||||||
|
|
||||||
|
visible = false
|
||||||
theme = ExtResource( 3 )
|
theme = ExtResource( 3 )
|
||||||
cell_size = Vector3( 1, 1, 1 )
|
cell_size = Vector3( 1, 1, 1 )
|
||||||
cell_octant_size = 8
|
cell_octant_size = 8
|
||||||
@ -331,16 +332,10 @@ __meta__ = {
|
|||||||
"_editor_clip_": 1,
|
"_editor_clip_": 1,
|
||||||
"_editor_floor_": Vector3( 0, -1, 0 )
|
"_editor_floor_": Vector3( 0, -1, 0 )
|
||||||
}
|
}
|
||||||
NB_LINES = 20
|
|
||||||
NB_COLLUMNS = 10
|
|
||||||
|
|
||||||
[node name="Backs" type="Spatial" parent="." index="4"]
|
[node name="Matrix" type="MeshInstance" parent="GridMap" index="0"]
|
||||||
|
|
||||||
visible = false
|
transform = Transform( 8.5, 0, 0, 0, 20, 0, 0, 0, 1, 4.5, 9.5, 0 )
|
||||||
|
|
||||||
[node name="GridBack" type="MeshInstance" parent="Backs" index="0"]
|
|
||||||
|
|
||||||
transform = Transform( 10, 0, 0, 0, 20, 0, 0, 0, 1, 4.5, 9.5, 0 )
|
|
||||||
layers = 1
|
layers = 1
|
||||||
material_override = null
|
material_override = null
|
||||||
cast_shadow = 1
|
cast_shadow = 1
|
||||||
@ -355,7 +350,12 @@ skeleton = NodePath("..")
|
|||||||
material/0 = null
|
material/0 = null
|
||||||
_sections_unfolded = [ "Transform" ]
|
_sections_unfolded = [ "Transform" ]
|
||||||
|
|
||||||
[node name="HoldBack" type="MeshInstance" parent="Backs" index="1"]
|
[node name="Position3D" type="Position3D" parent="GridMap/Matrix" index="0"]
|
||||||
|
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 20, 0 )
|
||||||
|
_sections_unfolded = [ "Transform" ]
|
||||||
|
|
||||||
|
[node name="Hold" type="MeshInstance" parent="GridMap" index="1"]
|
||||||
|
|
||||||
transform = Transform( 7, 0, 0, 0, 7, 0, 0, 0, 1, -5, 16, 0 )
|
transform = Transform( 7, 0, 0, 0, 7, 0, 0, 0, 1, -5, 16, 0 )
|
||||||
layers = 1
|
layers = 1
|
||||||
@ -372,7 +372,12 @@ skeleton = NodePath("..")
|
|||||||
material/0 = null
|
material/0 = null
|
||||||
_sections_unfolded = [ "Transform" ]
|
_sections_unfolded = [ "Transform" ]
|
||||||
|
|
||||||
[node name="NextBack" type="MeshInstance" parent="Backs" index="2"]
|
[node name="Position3D" type="Position3D" parent="GridMap/Hold" index="0"]
|
||||||
|
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 16, 0 )
|
||||||
|
_sections_unfolded = [ "Transform" ]
|
||||||
|
|
||||||
|
[node name="Next" type="MeshInstance" parent="GridMap" index="2"]
|
||||||
|
|
||||||
transform = Transform( 7, 0, 0, 0, 7, 0, 0, 0, 1, 14, 16, 0 )
|
transform = Transform( 7, 0, 0, 0, 7, 0, 0, 0, 1, 14, 16, 0 )
|
||||||
layers = 1
|
layers = 1
|
||||||
@ -389,41 +394,47 @@ skeleton = NodePath("..")
|
|||||||
material/0 = null
|
material/0 = null
|
||||||
_sections_unfolded = [ "Transform" ]
|
_sections_unfolded = [ "Transform" ]
|
||||||
|
|
||||||
[node name="DropTimer" type="Timer" parent="." index="5"]
|
[node name="Position3D" type="Position3D" parent="GridMap/Next" index="0"]
|
||||||
|
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 13, 16, 0 )
|
||||||
|
_sections_unfolded = [ "Transform" ]
|
||||||
|
|
||||||
|
[node name="DropTimer" type="Timer" parent="." index="4"]
|
||||||
|
|
||||||
process_mode = 1
|
process_mode = 1
|
||||||
wait_time = 1.0
|
wait_time = 1.0
|
||||||
one_shot = false
|
one_shot = false
|
||||||
autostart = false
|
autostart = false
|
||||||
|
|
||||||
[node name="LockDelay" type="Timer" parent="." index="6"]
|
[node name="LockDelay" type="Timer" parent="." index="5"]
|
||||||
|
|
||||||
process_mode = 1
|
process_mode = 1
|
||||||
wait_time = 0.5
|
wait_time = 0.5
|
||||||
one_shot = true
|
one_shot = true
|
||||||
autostart = false
|
autostart = false
|
||||||
|
|
||||||
[node name="AutoShiftDelay" type="Timer" parent="." index="7"]
|
[node name="AutoShiftDelay" type="Timer" parent="." index="6"]
|
||||||
|
|
||||||
process_mode = 1
|
process_mode = 1
|
||||||
wait_time = 0.2
|
wait_time = 0.2
|
||||||
one_shot = true
|
one_shot = true
|
||||||
autostart = false
|
autostart = false
|
||||||
|
|
||||||
[node name="AutoShiftTimer" type="Timer" parent="." index="8"]
|
[node name="AutoShiftTimer" type="Timer" parent="." index="7"]
|
||||||
|
|
||||||
process_mode = 1
|
process_mode = 1
|
||||||
wait_time = 0.04
|
wait_time = 0.04
|
||||||
one_shot = false
|
one_shot = false
|
||||||
autostart = false
|
autostart = false
|
||||||
|
|
||||||
[node name="MidiPlayer" parent="." index="9" instance=ExtResource( 5 )]
|
[node name="MidiPlayer" parent="." index="8" instance=ExtResource( 5 )]
|
||||||
|
|
||||||
editor/display_folded = true
|
editor/display_folded = true
|
||||||
script = ExtResource( 6 )
|
script = ExtResource( 6 )
|
||||||
file = "res://midi/Tetris - Song A.mid"
|
file = "res://midi/Tetris - Song A.mid"
|
||||||
volume_db = -24
|
volume_db = -24
|
||||||
loop = true
|
loop = true
|
||||||
|
loop_start = 1.81
|
||||||
soundfont = "res://midi/TimGM6mb.sf2"
|
soundfont = "res://midi/TimGM6mb.sf2"
|
||||||
|
|
||||||
[node name="LineCLearTimer" type="Timer" parent="MidiPlayer" index="1"]
|
[node name="LineCLearTimer" type="Timer" parent="MidiPlayer" index="1"]
|
||||||
@ -433,7 +444,7 @@ wait_time = 1.41
|
|||||||
one_shot = true
|
one_shot = true
|
||||||
autostart = false
|
autostart = false
|
||||||
|
|
||||||
[node name="FlashText" type="Control" parent="." index="10"]
|
[node name="FlashText" type="Control" parent="." index="9"]
|
||||||
|
|
||||||
anchor_left = 0.5
|
anchor_left = 0.5
|
||||||
anchor_top = 0.5
|
anchor_top = 0.5
|
||||||
@ -487,7 +498,7 @@ anims/Flash = SubResource( 7 )
|
|||||||
blend_times = [ ]
|
blend_times = [ ]
|
||||||
_sections_unfolded = [ "Playback Options" ]
|
_sections_unfolded = [ "Playback Options" ]
|
||||||
|
|
||||||
[node name="Stats" parent="." index="11" instance=ExtResource( 9 )]
|
[node name="Stats" parent="." index="10" instance=ExtResource( 9 )]
|
||||||
|
|
||||||
visible = false
|
visible = false
|
||||||
anchor_left = 0.0
|
anchor_left = 0.0
|
||||||
@ -499,13 +510,13 @@ margin_top = -260.0
|
|||||||
margin_right = 130.0
|
margin_right = 130.0
|
||||||
margin_bottom = -50.0
|
margin_bottom = -50.0
|
||||||
|
|
||||||
[node name="controls_ui" parent="." index="12" instance=ExtResource( 10 )]
|
[node name="controls_ui" parent="." index="11" instance=ExtResource( 10 )]
|
||||||
|
|
||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
[node name="Start" parent="." index="13" instance=ExtResource( 11 )]
|
[node name="Start" parent="." index="12" instance=ExtResource( 11 )]
|
||||||
|
|
||||||
[node name="ReplayButton" type="Button" parent="." index="14"]
|
[node name="ReplayButton" type="Button" parent="." index="13"]
|
||||||
|
|
||||||
visible = false
|
visible = false
|
||||||
anchor_left = 1.0
|
anchor_left = 1.0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user