From 23afbdfdbe4914b2615d63a002795986c5683071 Mon Sep 17 00:00:00 2001 From: adrienmalin <41926238+adrienmalin@users.noreply.github.com> Date: Tue, 1 Jan 2019 14:42:28 +0100 Subject: [PATCH] clean midi, delete trail --- ExplodingLine/ExplodingLine.tscn | 2 +- GridMap/GridMap.gd | 16 +-- GridMap/GridMap.tscn | 5 +- Tetrominos/Mino/Mino.tscn | 145 +--------------------- Tetrominos/Mino/SparkSpatialmaterial.tres | 59 --------- Tetrominos/Mino/TrailMaterial.tres | 55 -------- Tetrominos/Tetromino.gd | 6 +- WorldEnvironment.tscn | 15 +++ midi/MidiPlayer.gd | 30 +++-- 9 files changed, 45 insertions(+), 288 deletions(-) delete mode 100644 Tetrominos/Mino/SparkSpatialmaterial.tres delete mode 100644 Tetrominos/Mino/TrailMaterial.tres diff --git a/ExplodingLine/ExplodingLine.tscn b/ExplodingLine/ExplodingLine.tscn index 62f544c..563ac1c 100644 --- a/ExplodingLine/ExplodingLine.tscn +++ b/ExplodingLine/ExplodingLine.tscn @@ -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 diff --git a/GridMap/GridMap.gd b/GridMap/GridMap.gd index 19c5fac..364bfca 100644 --- a/GridMap/GridMap.gd +++ b/GridMap/GridMap.gd @@ -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) diff --git a/GridMap/GridMap.tscn b/GridMap/GridMap.tscn index fa287da..cf525d6 100644 --- a/GridMap/GridMap.tscn +++ b/GridMap/GridMap.tscn @@ -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 diff --git a/Tetrominos/Mino/Mino.tscn b/Tetrominos/Mino/Mino.tscn index 4d4aaaf..4720e6d 100644 --- a/Tetrominos/Mino/Mino.tscn +++ b/Tetrominos/Mino/Mino.tscn @@ -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 diff --git a/Tetrominos/Mino/SparkSpatialmaterial.tres b/Tetrominos/Mino/SparkSpatialmaterial.tres deleted file mode 100644 index 85047a5..0000000 --- a/Tetrominos/Mino/SparkSpatialmaterial.tres +++ /dev/null @@ -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" ] - diff --git a/Tetrominos/Mino/TrailMaterial.tres b/Tetrominos/Mino/TrailMaterial.tres deleted file mode 100644 index bcb8f91..0000000 --- a/Tetrominos/Mino/TrailMaterial.tres +++ /dev/null @@ -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" ] - diff --git a/Tetrominos/Tetromino.gd b/Tetrominos/Tetromino.gd index 5016530..f74c78d 100644 --- a/Tetrominos/Tetromino.gd +++ b/Tetrominos/Tetromino.gd @@ -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 \ No newline at end of file + return false \ No newline at end of file diff --git a/WorldEnvironment.tscn b/WorldEnvironment.tscn index 5977bf4..692ad18 100644 --- a/WorldEnvironment.tscn +++ b/WorldEnvironment.tscn @@ -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 + diff --git a/midi/MidiPlayer.gd b/midi/MidiPlayer.gd index 751639b..8c60006 100644 --- a/midi/MidiPlayer.gd +++ b/midi/MidiPlayer.gd @@ -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 \ No newline at end of file + 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]) \ No newline at end of file