clean midi, delete trail
This commit is contained in:
parent
50821bbb8f
commit
23afbdfdbe
@ -86,7 +86,7 @@ lod_min_hysteresis = 0.0
|
||||
lod_max_distance = 0.0
|
||||
lod_max_hysteresis = 0.0
|
||||
emitting = false
|
||||
amount = 1000
|
||||
amount = 800
|
||||
lifetime = 2.0
|
||||
one_shot = true
|
||||
preprocess = 0.0
|
||||
|
@ -35,7 +35,7 @@ const SCORES = [
|
||||
const LINES_CLEARED_NAMES = ["", "SINGLE", "DOUBLE", "TRIPLE", "TETRIS"]
|
||||
const T_SPIN_NAMES = ["", "T-SPIN", "MINI T-SPIN"]
|
||||
|
||||
const MIDI_MOVE_CHANNELS = [] #[7, 8, 9, 11, 12]
|
||||
const LINE_CLEAR_MIDI_CHANNELS = [2, 6]
|
||||
|
||||
var next_piece = random_piece()
|
||||
var current_piece
|
||||
@ -85,7 +85,6 @@ func random_piece():
|
||||
func new_piece():
|
||||
current_piece = next_piece
|
||||
current_piece.translation = START_POSITION
|
||||
current_piece.emit_trail(true)
|
||||
autoshift_action = ""
|
||||
next_piece = random_piece()
|
||||
next_piece.translation = NEXT_POSITION
|
||||
@ -205,15 +204,14 @@ func line_clear():
|
||||
print(T_SPIN_NAMES[current_piece.t_spin], ' ', LINES_CLEARED_NAMES[lines_cleared], " Score ", score)
|
||||
|
||||
if lines_cleared == Tetromino.NB_MINOES:
|
||||
for channel in $MidiPlayer.line_clear_notes:
|
||||
for channel in LINE_CLEAR_MIDI_CHANNELS:
|
||||
$MidiPlayer.channel_status[channel].vomume = 127
|
||||
$MidiPlayer/LineCLearTimer.wait_time = 0.86
|
||||
else:
|
||||
for channel in $MidiPlayer.line_clear_notes:
|
||||
for channel in LINE_CLEAR_MIDI_CHANNELS:
|
||||
$MidiPlayer.channel_status[channel].vomume = 100
|
||||
$MidiPlayer/LineCLearTimer.wait_time = 0.43
|
||||
$MidiPlayer.mute_midi_channels($MidiPlayer.line_clear_notes, false)
|
||||
$MidiPlayer.play_line_clear()
|
||||
$MidiPlayer.unmute_channels(LINE_CLEAR_MIDI_CHANNELS)
|
||||
$MidiPlayer/LineCLearTimer.start()
|
||||
if goal <= 0:
|
||||
new_level()
|
||||
@ -222,13 +220,11 @@ func line_clear():
|
||||
|
||||
func hold():
|
||||
if not current_piece_held:
|
||||
current_piece.emit_trail(false)
|
||||
if held_piece:
|
||||
var tmp = held_piece
|
||||
held_piece = current_piece
|
||||
current_piece = tmp
|
||||
current_piece.translation = START_POSITION
|
||||
current_piece.emit_trail(true)
|
||||
else:
|
||||
held_piece = current_piece
|
||||
new_piece()
|
||||
@ -240,7 +236,7 @@ func resume():
|
||||
$DropTimer.start()
|
||||
$LockDelay.start()
|
||||
$MidiPlayer.resume()
|
||||
$MidiPlayer.mute_midi_channels($MidiPlayer.line_clear_notes, true)
|
||||
$MidiPlayer.mute_channels(LINE_CLEAR_MIDI_CHANNELS)
|
||||
print("RESUME")
|
||||
|
||||
func pause():
|
||||
@ -261,4 +257,4 @@ func _notification(what):
|
||||
resume()
|
||||
|
||||
func _on_LineCLearTimer_timeout():
|
||||
$MidiPlayer.mute_midi_channels($MidiPlayer.line_clear_notes, true)
|
||||
$MidiPlayer.mute_channels(LINE_CLEAR_MIDI_CHANNELS)
|
||||
|
@ -15,8 +15,9 @@ subdivide_width = 0
|
||||
subdivide_height = 0
|
||||
subdivide_depth = 0
|
||||
|
||||
[node name="GridMap" type="GridMap"]
|
||||
[node name="GridMap" type="GridMap" index="0"]
|
||||
|
||||
editor/display_folded = true
|
||||
theme = ExtResource( 1 )
|
||||
cell_size = Vector3( 1, 1, 1 )
|
||||
cell_octant_size = 8
|
||||
@ -60,7 +61,7 @@ autostart = false
|
||||
[node name="AutoShiftTimer" type="Timer" parent="." index="3"]
|
||||
|
||||
process_mode = 1
|
||||
wait_time = 0.02
|
||||
wait_time = 0.03
|
||||
one_shot = false
|
||||
autostart = true
|
||||
|
||||
|
@ -1,117 +1,10 @@
|
||||
[gd_scene load_steps=9 format=2]
|
||||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://Tetrominos/Mino/MinoMesh.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://Tetrominos/Mino/MinoMesh.tres" type="CubeMesh" id=2]
|
||||
[ext_resource path="res://Tetrominos/Mino/TrailMaterial.tres" type="Material" id=3]
|
||||
[ext_resource path="res://Tetrominos/Mino/SpotLight.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://Tetrominos/Mino/SpotLight.tscn" type="PackedScene" id=3]
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=1]
|
||||
|
||||
render_priority = 0
|
||||
flags_transparent = true
|
||||
flags_unshaded = false
|
||||
flags_vertex_lighting = false
|
||||
flags_no_depth_test = false
|
||||
flags_use_point_size = false
|
||||
flags_world_triplanar = false
|
||||
flags_fixed_size = false
|
||||
flags_albedo_tex_force_srgb = false
|
||||
vertex_color_use_as_albedo = false
|
||||
vertex_color_is_srgb = false
|
||||
params_diffuse_mode = 0
|
||||
params_specular_mode = 0
|
||||
params_blend_mode = 1
|
||||
params_cull_mode = 0
|
||||
params_depth_draw_mode = 0
|
||||
params_line_width = 1.0
|
||||
params_point_size = 1.0
|
||||
params_billboard_mode = 0
|
||||
params_grow = false
|
||||
params_use_alpha_scissor = false
|
||||
albedo_color = Color( 0.601563, 0.775878, 1, 0.270275 )
|
||||
metallic = 0.68
|
||||
metallic_specular = 1.0
|
||||
metallic_texture_channel = 0
|
||||
roughness = 0.0
|
||||
roughness_texture_channel = 0
|
||||
emission_enabled = false
|
||||
normal_enabled = false
|
||||
rim_enabled = false
|
||||
clearcoat_enabled = false
|
||||
anisotropy_enabled = false
|
||||
ao_enabled = false
|
||||
depth_enabled = false
|
||||
subsurf_scatter_enabled = false
|
||||
transmission_enabled = false
|
||||
refraction_enabled = false
|
||||
detail_enabled = false
|
||||
uv1_scale = Vector3( 1, 1, 1 )
|
||||
uv1_offset = Vector3( 0, 0, 0 )
|
||||
uv1_triplanar = false
|
||||
uv1_triplanar_sharpness = 1.0
|
||||
uv2_scale = Vector3( 1, 1, 1 )
|
||||
uv2_offset = Vector3( 0, 0, 0 )
|
||||
uv2_triplanar = false
|
||||
uv2_triplanar_sharpness = 1.0
|
||||
proximity_fade_enable = true
|
||||
proximity_fade_distance = 1.0
|
||||
distance_fade_enable = false
|
||||
_sections_unfolded = [ "Albedo", "Emission", "Metallic", "NormalMap", "Proximity Fade" ]
|
||||
|
||||
[sub_resource type="GradientTexture" id=2]
|
||||
|
||||
flags = 4
|
||||
width = 2048
|
||||
|
||||
[sub_resource type="ParticlesMaterial" id=3]
|
||||
|
||||
render_priority = 0
|
||||
trail_divisor = 1
|
||||
emission_shape = 0
|
||||
flag_align_y = false
|
||||
flag_rotate_y = false
|
||||
flag_disable_z = true
|
||||
spread = 0.0
|
||||
flatness = 0.0
|
||||
gravity = Vector3( 0, 0, 0 )
|
||||
initial_velocity = 0.0
|
||||
initial_velocity_random = 0.0
|
||||
angular_velocity = 0.0
|
||||
angular_velocity_random = 0.0
|
||||
orbit_velocity = 0.0
|
||||
orbit_velocity_random = 0.0
|
||||
linear_accel = 0.0
|
||||
linear_accel_random = 0.0
|
||||
radial_accel = 0.0
|
||||
radial_accel_random = 0.0
|
||||
tangential_accel = 0.0
|
||||
tangential_accel_random = 0.0
|
||||
damping = 0.0
|
||||
damping_random = 0.0
|
||||
angle = 0.0
|
||||
angle_random = 0.0
|
||||
scale = 1.0
|
||||
scale_random = 0.0
|
||||
color_ramp = SubResource( 2 )
|
||||
hue_variation = 0.0
|
||||
hue_variation_random = 0.0
|
||||
anim_speed = 0.0
|
||||
anim_speed_random = 0.0
|
||||
anim_offset = 0.0
|
||||
anim_offset_random = 0.0
|
||||
anim_loop = false
|
||||
_sections_unfolded = [ "Color", "Gravity" ]
|
||||
|
||||
[sub_resource type="CubeMesh" id=4]
|
||||
|
||||
material = ExtResource( 3 )
|
||||
custom_aabb = AABB( 0, 0, 0, 0, 0, 0 )
|
||||
size = Vector3( 0.9, 0.9, 0.9 )
|
||||
subdivide_width = 0
|
||||
subdivide_height = 0
|
||||
subdivide_depth = 0
|
||||
|
||||
[node name="Mino" type="Spatial"]
|
||||
[node name="Mino" type="Spatial" index="0"]
|
||||
|
||||
_sections_unfolded = [ "Pause", "Transform", "Visibility" ]
|
||||
|
||||
@ -121,38 +14,10 @@ mesh = ExtResource( 2 )
|
||||
material/0 = null
|
||||
_sections_unfolded = [ "Geometry", "Transform", "material" ]
|
||||
|
||||
[node name="Trail" type="Particles" parent="." index="1"]
|
||||
|
||||
layers = 1
|
||||
material_override = SubResource( 1 )
|
||||
cast_shadow = 1
|
||||
extra_cull_margin = 0.0
|
||||
use_in_baked_light = false
|
||||
lod_min_distance = 0.0
|
||||
lod_min_hysteresis = 0.0
|
||||
lod_max_distance = 0.0
|
||||
lod_max_hysteresis = 0.0
|
||||
emitting = false
|
||||
amount = 4
|
||||
lifetime = 0.1
|
||||
one_shot = false
|
||||
preprocess = 0.0
|
||||
speed_scale = 1.0
|
||||
explosiveness = 0.0
|
||||
randomness = 0.0
|
||||
fixed_fps = 0
|
||||
fract_delta = true
|
||||
visibility_aabb = AABB( -0.5, -0.5, -0.5, 1, 1, 1 )
|
||||
local_coords = false
|
||||
draw_order = 0
|
||||
process_material = SubResource( 3 )
|
||||
draw_passes = 1
|
||||
draw_pass_1 = SubResource( 4 )
|
||||
_sections_unfolded = [ "Draw Passes", "Drawing", "Geometry", "LOD", "Process Material", "Time", "Transform" ]
|
||||
|
||||
[node name="SpotLight" parent="." index="2" instance=ExtResource( 4 )]
|
||||
[node name="SpotLight" parent="." index="1" instance=ExtResource( 3 )]
|
||||
|
||||
transform = Transform( 1, 0, 0, 0, -4.37114e-008, 1, 0, -1, -4.37114e-008, 0, 0, 1 )
|
||||
light_energy = 4.0
|
||||
light_cull_mask = -1
|
||||
|
||||
|
||||
|
@ -1,59 +0,0 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
|
||||
render_priority = 0
|
||||
flags_transparent = true
|
||||
flags_unshaded = false
|
||||
flags_vertex_lighting = false
|
||||
flags_no_depth_test = false
|
||||
flags_use_point_size = false
|
||||
flags_world_triplanar = false
|
||||
flags_fixed_size = false
|
||||
flags_albedo_tex_force_srgb = false
|
||||
vertex_color_use_as_albedo = false
|
||||
vertex_color_is_srgb = false
|
||||
params_diffuse_mode = 0
|
||||
params_specular_mode = 0
|
||||
params_blend_mode = 1
|
||||
params_cull_mode = 0
|
||||
params_depth_draw_mode = 0
|
||||
params_line_width = 1.0
|
||||
params_point_size = 1.0
|
||||
params_billboard_mode = 0
|
||||
params_grow = false
|
||||
params_use_alpha_scissor = false
|
||||
albedo_color = Color( 0.67451, 1, 0.988235, 0.108118 )
|
||||
metallic = 0.22
|
||||
metallic_specular = 1.0
|
||||
metallic_texture_channel = 0
|
||||
roughness = 0.49
|
||||
roughness_texture_channel = 0
|
||||
emission_enabled = true
|
||||
emission = Color( 0.700471, 1, 0.98947, 1 )
|
||||
emission_energy = 0.2
|
||||
emission_operator = 0
|
||||
emission_on_uv2 = false
|
||||
normal_enabled = false
|
||||
rim_enabled = false
|
||||
clearcoat_enabled = false
|
||||
anisotropy_enabled = false
|
||||
ao_enabled = false
|
||||
depth_enabled = false
|
||||
subsurf_scatter_enabled = false
|
||||
transmission_enabled = false
|
||||
refraction_enabled = false
|
||||
detail_enabled = false
|
||||
uv1_scale = Vector3( 1, 1, 1 )
|
||||
uv1_offset = Vector3( 0, 0, 0 )
|
||||
uv1_triplanar = false
|
||||
uv1_triplanar_sharpness = 1.0
|
||||
uv2_scale = Vector3( 1, 1, 1 )
|
||||
uv2_offset = Vector3( 0, 0, 0 )
|
||||
uv2_triplanar = false
|
||||
uv2_triplanar_sharpness = 1.0
|
||||
proximity_fade_enable = true
|
||||
proximity_fade_distance = 1.0
|
||||
distance_fade_enable = false
|
||||
_sections_unfolded = [ "Albedo", "Emission", "Metallic", "Parameters" ]
|
||||
|
@ -1,55 +0,0 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
|
||||
render_priority = 0
|
||||
flags_transparent = true
|
||||
flags_unshaded = false
|
||||
flags_vertex_lighting = false
|
||||
flags_no_depth_test = false
|
||||
flags_use_point_size = false
|
||||
flags_world_triplanar = false
|
||||
flags_fixed_size = false
|
||||
flags_albedo_tex_force_srgb = false
|
||||
vertex_color_use_as_albedo = false
|
||||
vertex_color_is_srgb = false
|
||||
params_diffuse_mode = 0
|
||||
params_specular_mode = 0
|
||||
params_blend_mode = 1
|
||||
params_cull_mode = 0
|
||||
params_depth_draw_mode = 0
|
||||
params_line_width = 1.0
|
||||
params_point_size = 1.0
|
||||
params_billboard_mode = 0
|
||||
params_grow = false
|
||||
params_use_alpha_scissor = false
|
||||
albedo_color = Color( 0.601563, 0.775878, 1, 0.0196078 )
|
||||
metallic = 0.68
|
||||
metallic_specular = 1.0
|
||||
metallic_texture_channel = 0
|
||||
roughness = 0.0
|
||||
roughness_texture_channel = 0
|
||||
emission_enabled = false
|
||||
normal_enabled = false
|
||||
rim_enabled = false
|
||||
clearcoat_enabled = false
|
||||
anisotropy_enabled = false
|
||||
ao_enabled = false
|
||||
depth_enabled = false
|
||||
subsurf_scatter_enabled = false
|
||||
transmission_enabled = false
|
||||
refraction_enabled = false
|
||||
detail_enabled = false
|
||||
uv1_scale = Vector3( 1, 1, 1 )
|
||||
uv1_offset = Vector3( 0, 0, 0 )
|
||||
uv1_triplanar = false
|
||||
uv1_triplanar_sharpness = 1.0
|
||||
uv2_scale = Vector3( 1, 1, 1 )
|
||||
uv2_offset = Vector3( 0, 0, 0 )
|
||||
uv2_triplanar = false
|
||||
uv2_triplanar_sharpness = 1.0
|
||||
proximity_fade_enable = true
|
||||
proximity_fade_distance = 1.0
|
||||
distance_fade_enable = false
|
||||
_sections_unfolded = [ "Albedo", "Emission", "Proximity Fade" ]
|
||||
|
@ -120,8 +120,4 @@ func rotate(direction):
|
||||
apply_positions(rotated_positions)
|
||||
translate(movement)
|
||||
return true
|
||||
return false
|
||||
|
||||
func emit_trail(emit):
|
||||
for mino in minoes:
|
||||
mino.get_node("Trail").emitting = emit
|
||||
return false
|
@ -144,4 +144,19 @@ data = {
|
||||
"cells": PoolIntArray( )
|
||||
}
|
||||
|
||||
[node name="HUD" type="Control" parent="." index="3"]
|
||||
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.0
|
||||
anchor_right = 0.0
|
||||
anchor_bottom = 0.0
|
||||
margin_right = 40.0
|
||||
margin_bottom = 40.0
|
||||
rect_pivot_offset = Vector2( 0, 0 )
|
||||
rect_clip_content = false
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 1
|
||||
size_flags_vertical = 1
|
||||
|
||||
|
||||
|
@ -38,8 +38,7 @@ var audio_stream_players = []
|
||||
|
||||
var _used_program_numbers = []
|
||||
|
||||
var line_clear_notes = {2: {}, 6: {}}
|
||||
var line_clear_notes_to_stop
|
||||
var muted_events = []
|
||||
var paused_position = 0
|
||||
|
||||
signal changed_tempo( tempo )
|
||||
@ -181,6 +180,7 @@ func _init_channel( ):
|
||||
"drum_track": drum_track,
|
||||
"pan": 0.5,
|
||||
})
|
||||
self.muted_events.append({})
|
||||
|
||||
"""
|
||||
再生
|
||||
@ -278,12 +278,11 @@ func _process_track( ):
|
||||
|
||||
match event.type:
|
||||
SMF.MIDIEventType.note_off:
|
||||
if event_chunk.channel_number in line_clear_notes:
|
||||
line_clear_notes[event_chunk.channel_number].erase(event.note)
|
||||
muted_events[event_chunk.channel_number].erase(event.note)
|
||||
self._process_track_event_note_off( channel, event )
|
||||
SMF.MIDIEventType.note_on:
|
||||
if event_chunk.channel_number in line_clear_notes:
|
||||
line_clear_notes[event_chunk.channel_number][event.note] = event
|
||||
if self.channel_mute[event_chunk.channel_number]:
|
||||
muted_events[event_chunk.channel_number][event.note] = event
|
||||
self._process_track_event_note_on( channel, event )
|
||||
SMF.MIDIEventType.program_change:
|
||||
channel.program = event.number
|
||||
@ -411,14 +410,13 @@ func get_now_playing_polyphony( ):
|
||||
|
||||
func resume():
|
||||
play(position)
|
||||
|
||||
func play_line_clear():
|
||||
line_clear_notes_to_stop = {2: {}, 6:{}}
|
||||
for channel in line_clear_notes:
|
||||
for note in line_clear_notes[channel]:
|
||||
_process_track_event_note_on(channel_status[channel], line_clear_notes[channel][note])
|
||||
line_clear_notes_to_stop[channel][note] = line_clear_notes[channel][note]
|
||||
|
||||
func mute_midi_channels(channels, muted):
|
||||
|
||||
func mute_channels(channels):
|
||||
for channel_id in channels:
|
||||
channel_mute[channel_id] = muted
|
||||
channel_mute[channel_id] = true
|
||||
|
||||
func unmute_channels(channels):
|
||||
for channel_id in channels:
|
||||
channel_mute[channel_id] = false
|
||||
for note in muted_events[channel_id]:
|
||||
_process_track_event_note_on(channel_status[channel_id], muted_events[channel_id][note])
|
Loading…
x
Reference in New Issue
Block a user