add DepthButton
This commit is contained in:
		
							parent
							
								
									e758168757
								
							
						
					
					
						commit
						47234f1bc1
					
				
					 9 changed files with 304 additions and 62 deletions
				
			
		|  | @ -1,4 +1,4 @@ | ||||||
| [gd_resource type="Theme" load_steps=7 format=2] | [gd_resource type="Theme" load_steps=8 format=2] | ||||||
| 
 | 
 | ||||||
| [ext_resource path="res://assets/fonts/Montserrat-ExtraBolt-48.tres" type="DynamicFont" id=1] | [ext_resource path="res://assets/fonts/Montserrat-ExtraBolt-48.tres" type="DynamicFont" id=1] | ||||||
| 
 | 
 | ||||||
|  | @ -9,13 +9,16 @@ bg_color = Color( 0.12549, 0.235294, 0.337255, 1 ) | ||||||
| bg_color = Color( 0.12549, 0.235294, 0.337255, 1 ) | bg_color = Color( 0.12549, 0.235294, 0.337255, 1 ) | ||||||
| 
 | 
 | ||||||
| [sub_resource type="StyleBoxFlat" id=3] | [sub_resource type="StyleBoxFlat" id=3] | ||||||
| bg_color = Color( 0.0509804, 0.168627, 0.270588, 1 ) | bg_color = Color( 0.12549, 0.235294, 0.337255, 1 ) | ||||||
| 
 | 
 | ||||||
| [sub_resource type="StyleBoxFlat" id=4] | [sub_resource type="StyleBoxFlat" id=4] | ||||||
| bg_color = Color( 1, 0.831373, 0.639216, 1 ) | bg_color = Color( 0.0509804, 0.168627, 0.270588, 1 ) | ||||||
| 
 | 
 | ||||||
| [sub_resource type="StyleBoxFlat" id=5] | [sub_resource type="StyleBoxFlat" id=5] | ||||||
| bg_color = Color( 1, 0.831373, 0.639216, 1 ) | bg_color = Color( 1, 0.831373, 0.639216, 1 ) | ||||||
|  | 
 | ||||||
|  | [sub_resource type="StyleBoxFlat" id=6] | ||||||
|  | bg_color = Color( 1, 0.831373, 0.639216, 1 ) | ||||||
| border_width_left = 4 | border_width_left = 4 | ||||||
| border_width_top = 4 | border_width_top = 4 | ||||||
| border_width_right = 4 | border_width_right = 4 | ||||||
|  | @ -37,9 +40,9 @@ Button/colors/font_color_pressed = Color( 1, 0.92549, 0.839216, 1 ) | ||||||
| Button/constants/hseparation = 2 | Button/constants/hseparation = 2 | ||||||
| Button/fonts/font = null | Button/fonts/font = null | ||||||
| Button/styles/disabled = null | Button/styles/disabled = null | ||||||
| Button/styles/focus = null | Button/styles/focus = SubResource( 1 ) | ||||||
| Button/styles/hover = SubResource( 1 ) | Button/styles/hover = SubResource( 2 ) | ||||||
| Button/styles/normal = SubResource( 2 ) | Button/styles/normal = SubResource( 3 ) | ||||||
| Button/styles/pressed = SubResource( 3 ) | Button/styles/pressed = SubResource( 4 ) | ||||||
| Panel/styles/panel = SubResource( 4 ) | Panel/styles/panel = SubResource( 5 ) | ||||||
| PopupPanel/styles/panel = SubResource( 5 ) | PopupPanel/styles/panel = SubResource( 6 ) | ||||||
|  |  | ||||||
|  | @ -9,6 +9,11 @@ | ||||||
| config_version=4 | config_version=4 | ||||||
| 
 | 
 | ||||||
| _global_script_classes=[ { | _global_script_classes=[ { | ||||||
|  | "base": "Control", | ||||||
|  | "class": "DepthButton", | ||||||
|  | "language": "GDScript", | ||||||
|  | "path": "res://src/DepthButton.gd" | ||||||
|  | }, { | ||||||
| "base": "PopupPanel", | "base": "PopupPanel", | ||||||
| "class": "NewGamePanel", | "class": "NewGamePanel", | ||||||
| "language": "GDScript", | "language": "GDScript", | ||||||
|  | @ -25,6 +30,7 @@ _global_script_classes=[ { | ||||||
| "path": "res://src/Taquin.gd" | "path": "res://src/Taquin.gd" | ||||||
| } ] | } ] | ||||||
| _global_script_class_icons={ | _global_script_class_icons={ | ||||||
|  | "DepthButton": "", | ||||||
| "NewGamePanel": "", | "NewGamePanel": "", | ||||||
| "Piece": "", | "Piece": "", | ||||||
| "Taquin": "" | "Taquin": "" | ||||||
|  | @ -37,15 +43,29 @@ run/main_scene="res://src/Main.tscn" | ||||||
| config/icon="res://icon.png" | config/icon="res://icon.png" | ||||||
| run/main_scene.mobile="res://src/MainMobile.tscn" | run/main_scene.mobile="res://src/MainMobile.tscn" | ||||||
| 
 | 
 | ||||||
|  | [autoload] | ||||||
|  | 
 | ||||||
|  | Styles="*res://src/Styles.gd" | ||||||
|  | 
 | ||||||
| [display] | [display] | ||||||
| 
 | 
 | ||||||
| window/size/resizable=false | window/size/resizable=false | ||||||
| window/handheld/orientation.mobile="portrait" | window/dpi/allow_hidpi=true | ||||||
|  | window/handheld/orientation="portrait" | ||||||
| window/size/width.mobile=600 | window/size/width.mobile=600 | ||||||
| window/size/height.mobile=1200 | window/size/height.mobile=1200 | ||||||
| window/stretch/mode.mobile="2d" | window/stretch/mode.mobile="2d" | ||||||
| window/stretch/aspect.mobile="expand" | window/stretch/aspect.mobile="expand" | ||||||
| 
 | 
 | ||||||
|  | [filesystem] | ||||||
|  | 
 | ||||||
|  | import/open_asset_import/use_fbx=false | ||||||
|  | 
 | ||||||
|  | [gui] | ||||||
|  | 
 | ||||||
|  | theme/use_hidpi=true | ||||||
|  | theme/custom="res://assets/taqin_theme.tres" | ||||||
|  | 
 | ||||||
| [input_devices] | [input_devices] | ||||||
| 
 | 
 | ||||||
| pointing/emulate_touch_from_mouse=true | pointing/emulate_touch_from_mouse=true | ||||||
|  |  | ||||||
							
								
								
									
										110
									
								
								src/DepthButton.gd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								src/DepthButton.gd
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,110 @@ | ||||||
|  | tool | ||||||
|  | class_name DepthButton | ||||||
|  | extends Control | ||||||
|  | 
 | ||||||
|  | signal pressed() | ||||||
|  | signal button_down() | ||||||
|  | signal button_up() | ||||||
|  | 
 | ||||||
|  | export var text := "" | ||||||
|  | export(Styles.CornerType) var corner_type = Styles.CornerType.SINGLE | ||||||
|  | export var corner_radius := 10 | ||||||
|  | export var depth := 10 | ||||||
|  | export var toggle_mode := false | ||||||
|  | export var group: ButtonGroup | ||||||
|  | 
 | ||||||
|  | var pressed setget set_pressed, is_pressed | ||||||
|  | 
 | ||||||
|  | var _pressed_depth := 4 | ||||||
|  | var _toggled := false | ||||||
|  | var _toggled_depth := _pressed_depth + 3 | ||||||
|  | 
 | ||||||
|  | onready var background := $Background | ||||||
|  | onready var button: Button = $Button | ||||||
|  | 
 | ||||||
|  | func _ready(): | ||||||
|  | 	assert(_toggled_depth > _pressed_depth) | ||||||
|  | 	 | ||||||
|  | 	button.text = text | ||||||
|  | 	button.margin_bottom = -depth | ||||||
|  | 	button.toggle_mode = toggle_mode | ||||||
|  | 	button.group = group | ||||||
|  | 	button.rect_size.y = rect_size.y - depth | ||||||
|  | 
 | ||||||
|  | 	# | ||||||
|  | 	# Styles | ||||||
|  | 	# | ||||||
|  | 	var background_style := Styles.get_stylebox_flat(background.get_stylebox("panel", "panel"), "button_background", corner_type) | ||||||
|  | 	background_style.set_bg_color(Color(1, 1, 1)) | ||||||
|  | 	background.set('custom_styles/panel', background_style) | ||||||
|  | 	match corner_type: | ||||||
|  | 		Styles.CornerType.SINGLE: | ||||||
|  | 			background_style.corner_radius_bottom_left = corner_radius | ||||||
|  | 			background_style.corner_radius_bottom_right = corner_radius | ||||||
|  | 		Styles.CornerType.LEFT: | ||||||
|  | 			background_style.corner_radius_bottom_left = corner_radius | ||||||
|  | 			background_style.corner_radius_bottom_right = 0 | ||||||
|  | 		Styles.CornerType.MIDDLE: | ||||||
|  | 			background_style.corner_radius_bottom_left = 0 | ||||||
|  | 			background_style.corner_radius_bottom_right = 0 | ||||||
|  | 		Styles.CornerType.RIGHT: | ||||||
|  | 			background_style.corner_radius_bottom_left = 0 | ||||||
|  | 			background_style.corner_radius_bottom_right = corner_radius | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	for style_name in ["normal", "hover", "focus", "pressed"]: | ||||||
|  | 		var original_style = button.get_stylebox(style_name) | ||||||
|  | #		print_debug("style for ", style_name, ": ", original_style) | ||||||
|  | 		var stylebox := Styles.get_stylebox_flat(original_style, style_name, corner_type) | ||||||
|  | 		button.set("custom_styles/%s" % style_name, stylebox) | ||||||
|  | 
 | ||||||
|  | 		match corner_type: | ||||||
|  | 			Styles.CornerType.SINGLE: | ||||||
|  | 				stylebox.corner_radius_top_left = corner_radius | ||||||
|  | 				stylebox.corner_radius_bottom_left = corner_radius | ||||||
|  | 				stylebox.corner_radius_top_right = corner_radius | ||||||
|  | 				stylebox.corner_radius_bottom_right = corner_radius | ||||||
|  | 			Styles.CornerType.LEFT: | ||||||
|  | 				stylebox.corner_radius_top_left = corner_radius | ||||||
|  | 				stylebox.corner_radius_bottom_left = corner_radius | ||||||
|  | 				stylebox.corner_radius_top_right = 0 | ||||||
|  | 				stylebox.corner_radius_bottom_right = 0 | ||||||
|  | 			Styles.CornerType.MIDDLE: | ||||||
|  | 				stylebox.corner_radius_top_left = 0 | ||||||
|  | 				stylebox.corner_radius_bottom_left = 0 | ||||||
|  | 				stylebox.corner_radius_top_right = 0 | ||||||
|  | 				stylebox.corner_radius_bottom_right = 0 | ||||||
|  | 			Styles.CornerType.RIGHT: | ||||||
|  | 				stylebox.corner_radius_top_left = 0 | ||||||
|  | 				stylebox.corner_radius_bottom_left = 0 | ||||||
|  | 				stylebox.corner_radius_top_right = corner_radius | ||||||
|  | 				stylebox.corner_radius_bottom_right = corner_radius | ||||||
|  | 
 | ||||||
|  | func is_pressed() -> bool: | ||||||
|  | 	return button.is_pressed() | ||||||
|  | 
 | ||||||
|  | func set_pressed(value: bool) -> void: | ||||||
|  | 	button.set_pressed(value) | ||||||
|  | 
 | ||||||
|  | # | ||||||
|  | # Signals | ||||||
|  | # | ||||||
|  | func _on_Button_button_down(): | ||||||
|  | 	button.rect_position.y += depth - _pressed_depth | ||||||
|  | 	emit_signal("button_down") | ||||||
|  | 
 | ||||||
|  | func _on_Button_button_up(): | ||||||
|  | 	button.rect_position.y -= depth - _pressed_depth | ||||||
|  | 	emit_signal("button_up") | ||||||
|  | 
 | ||||||
|  | func _on_Button_toggled(button_pressed): | ||||||
|  | 	var delta = depth - _toggled_depth | ||||||
|  | 	if button_pressed: # off -> on | ||||||
|  | 		button.rect_position.y += depth - _toggled_depth | ||||||
|  | 	else: # on -> off | ||||||
|  | 		button.rect_position.y -= depth - _toggled_depth | ||||||
|  | 
 | ||||||
|  | 	_toggled = button_pressed | ||||||
|  | 
 | ||||||
|  | func _on_Button_pressed(): | ||||||
|  | 	emit_signal("pressed") | ||||||
							
								
								
									
										34
									
								
								src/DepthButton.tscn
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								src/DepthButton.tscn
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,34 @@ | ||||||
|  | [gd_scene load_steps=3 format=2] | ||||||
|  | 
 | ||||||
|  | [ext_resource path="res://assets/taqin_theme.tres" type="Theme" id=1] | ||||||
|  | [ext_resource path="res://src/DepthButton.gd" type="Script" id=2] | ||||||
|  | 
 | ||||||
|  | [node name="DepthButton" type="Control"] | ||||||
|  | anchor_right = 1.0 | ||||||
|  | anchor_bottom = 1.0 | ||||||
|  | margin_right = -734.0 | ||||||
|  | margin_bottom = -464.0 | ||||||
|  | theme = ExtResource( 1 ) | ||||||
|  | script = ExtResource( 2 ) | ||||||
|  | __meta__ = { | ||||||
|  | "_edit_use_anchors_": false | ||||||
|  | } | ||||||
|  | text = "Press Me" | ||||||
|  | 
 | ||||||
|  | [node name="Background" type="Panel" parent="."] | ||||||
|  | anchor_top = 0.5 | ||||||
|  | anchor_right = 1.0 | ||||||
|  | anchor_bottom = 1.0 | ||||||
|  | 
 | ||||||
|  | [node name="Button" type="Button" parent="."] | ||||||
|  | anchor_right = 1.0 | ||||||
|  | anchor_bottom = 1.0 | ||||||
|  | margin_bottom = -10.0 | ||||||
|  | text = "Press Me" | ||||||
|  | __meta__ = { | ||||||
|  | "_edit_use_anchors_": false | ||||||
|  | } | ||||||
|  | [connection signal="button_down" from="Button" to="." method="_on_Button_button_down"] | ||||||
|  | [connection signal="button_up" from="Button" to="." method="_on_Button_button_up"] | ||||||
|  | [connection signal="pressed" from="Button" to="." method="_on_Button_pressed"] | ||||||
|  | [connection signal="toggled" from="Button" to="." method="_on_Button_toggled"] | ||||||
|  | @ -65,7 +65,7 @@ func _on_New_game_pressed(): | ||||||
| 	$NewGamePanel.popup_centered_ratio($NewGamePanel.window_scale_factor) | 	$NewGamePanel.popup_centered_ratio($NewGamePanel.window_scale_factor) | ||||||
| 
 | 
 | ||||||
| func _on_NewGamePanel_about_to_show(): | func _on_NewGamePanel_about_to_show(): | ||||||
| 	$HSplitContainer/Taquin.set_process_input(false) | 	taquin.set_process_input(false) | ||||||
| 
 | 
 | ||||||
| func _on_NewGamePanel_popup_hide(): | func _on_NewGamePanel_popup_hide(): | ||||||
| 	$HSplitContainer/Taquin.set_process_input(true) | 	taquin.set_process_input(true) | ||||||
|  |  | ||||||
|  | @ -1,8 +1,9 @@ | ||||||
| [gd_scene load_steps=5 format=2] | [gd_scene load_steps=6 format=2] | ||||||
| 
 | 
 | ||||||
| [ext_resource path="res://src/Main.gd" type="Script" id=1] | [ext_resource path="res://src/Main.gd" type="Script" id=1] | ||||||
| [ext_resource path="res://src/Taquin.tscn" type="PackedScene" id=2] | [ext_resource path="res://src/Taquin.tscn" type="PackedScene" id=2] | ||||||
| [ext_resource path="res://src/NewGamePanel.tscn" type="PackedScene" id=3] | [ext_resource path="res://src/NewGamePanel.tscn" type="PackedScene" id=3] | ||||||
|  | [ext_resource path="res://src/DepthButton.tscn" type="PackedScene" id=4] | ||||||
| [ext_resource path="res://assets/taqin_theme.tres" type="Theme" id=5] | [ext_resource path="res://assets/taqin_theme.tres" type="Theme" id=5] | ||||||
| 
 | 
 | ||||||
| [node name="Main" type="Control"] | [node name="Main" type="Control"] | ||||||
|  | @ -42,30 +43,35 @@ anchor_bottom = 0.0 | ||||||
| margin_right = 540.0 | margin_right = 540.0 | ||||||
| margin_bottom = 560.0 | margin_bottom = 560.0 | ||||||
| 
 | 
 | ||||||
| [node name="VSplitContainer" type="VBoxContainer" parent="HSplitContainer"] | [node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer"] | ||||||
| margin_left = 548.0 | margin_left = 556.0 | ||||||
| margin_right = 984.0 | margin_right = 984.0 | ||||||
| margin_bottom = 560.0 | margin_bottom = 560.0 | ||||||
| alignment = 1 | alignment = 1 | ||||||
| 
 | 
 | ||||||
| [node name="New game" type="Button" parent="HSplitContainer/VSplitContainer"] | [node name="New Game" parent="HSplitContainer/VBoxContainer" instance=ExtResource( 4 )] | ||||||
| margin_top = 233.0 | anchor_right = 0.0 | ||||||
| margin_right = 436.0 | anchor_bottom = 0.0 | ||||||
| margin_bottom = 278.0 | margin_top = 206.0 | ||||||
| text = "NEW GAME" | margin_right = 428.0 | ||||||
|  | margin_bottom = 276.0 | ||||||
|  | rect_min_size = Vector2( 0, 70 ) | ||||||
|  | text = "New Game" | ||||||
| 
 | 
 | ||||||
| [node name="Hints" type="Button" parent="HSplitContainer/VSplitContainer"] | [node name="Hints" parent="HSplitContainer/VBoxContainer" instance=ExtResource( 4 )] | ||||||
| margin_top = 282.0 | anchor_right = 0.0 | ||||||
| margin_right = 436.0 | anchor_bottom = 0.0 | ||||||
| margin_bottom = 327.0 | margin_top = 284.0 | ||||||
| text = "HINTS" | margin_right = 428.0 | ||||||
|  | margin_bottom = 354.0 | ||||||
|  | rect_min_size = Vector2( 0, 70 ) | ||||||
|  | text = "Hints" | ||||||
| 
 | 
 | ||||||
| [node name="NewGamePanel" parent="." instance=ExtResource( 3 )] | [node name="NewGamePanel" parent="." instance=ExtResource( 3 )] | ||||||
| window_scale_factor = 0.9 |  | ||||||
| [connection signal="state_changed" from="HSplitContainer/Taquin" to="." method="_on_Taquin_state_changed"] | [connection signal="state_changed" from="HSplitContainer/Taquin" to="." method="_on_Taquin_state_changed"] | ||||||
| [connection signal="pressed" from="HSplitContainer/VSplitContainer/New game" to="." method="_on_New_game_pressed"] | [connection signal="pressed" from="HSplitContainer/VBoxContainer/New Game" to="." method="_on_New_game_pressed"] | ||||||
| [connection signal="button_down" from="HSplitContainer/VSplitContainer/Hints" to="HSplitContainer/Taquin" method="_on_Hints_button_down"] | [connection signal="button_down" from="HSplitContainer/VBoxContainer/Hints" to="HSplitContainer/Taquin" method="_on_Hints_button_down"] | ||||||
| [connection signal="button_up" from="HSplitContainer/VSplitContainer/Hints" to="HSplitContainer/Taquin" method="_on_Hints_button_up"] | [connection signal="button_up" from="HSplitContainer/VBoxContainer/Hints" to="HSplitContainer/Taquin" method="_on_Hints_button_up"] | ||||||
| [connection signal="about_to_show" from="NewGamePanel" to="." method="_on_NewGamePanel_about_to_show"] | [connection signal="about_to_show" from="NewGamePanel" to="." method="_on_NewGamePanel_about_to_show"] | ||||||
| [connection signal="popup_hide" from="NewGamePanel" to="." method="_on_NewGamePanel_popup_hide"] | [connection signal="popup_hide" from="NewGamePanel" to="." method="_on_NewGamePanel_popup_hide"] | ||||||
| [connection signal="start_triggered" from="NewGamePanel" to="HSplitContainer/Taquin" method="_on_NewGamePanel_start_triggered"] | [connection signal="start_triggered" from="NewGamePanel" to="HSplitContainer/Taquin" method="_on_NewGamePanel_start_triggered"] | ||||||
|  |  | ||||||
|  | @ -15,6 +15,9 @@ var fade_scale_factor = 0.9 | ||||||
| onready var popup = $"." | onready var popup = $"." | ||||||
| onready var panel = $Panel | onready var panel = $Panel | ||||||
| onready var tween = $Tween | onready var tween = $Tween | ||||||
|  | onready var easy_button = $Panel/Difficulty/Easy | ||||||
|  | onready var normal_button = $Panel/Difficulty/Normal | ||||||
|  | onready var hard_button = $Panel/Difficulty/Hard | ||||||
| 
 | 
 | ||||||
| func _init(): | func _init(): | ||||||
| 	var err = preferences.load(pref_path) | 	var err = preferences.load(pref_path) | ||||||
|  | @ -45,11 +48,11 @@ func _on_Cancel_pressed(): | ||||||
| 	fade_out() | 	fade_out() | ||||||
| 
 | 
 | ||||||
| func _on_Start_pressed(): | func _on_Start_pressed(): | ||||||
| 	if $Panel/HBoxContainer/Easy.pressed: | 	if easy_button.pressed: | ||||||
| 		preferences.set_value("game", "difficulty", "easy") | 		preferences.set_value("game", "difficulty", "easy") | ||||||
| 	if $Panel/HBoxContainer/Normal.pressed: | 	if normal_button.pressed: | ||||||
| 		preferences.set_value("game", "difficulty", "normal") | 		preferences.set_value("game", "difficulty", "normal") | ||||||
| 	if $Panel/HBoxContainer/Hard.pressed: | 	if hard_button.pressed: | ||||||
| 		preferences.set_value("game", "difficulty", "hard") | 		preferences.set_value("game", "difficulty", "hard") | ||||||
| 
 | 
 | ||||||
| 	preferences.save(pref_path) | 	preferences.save(pref_path) | ||||||
|  | @ -58,21 +61,10 @@ func _on_Start_pressed(): | ||||||
| 	fade_out() | 	fade_out() | ||||||
| 
 | 
 | ||||||
| func _on_NewGamePanel_about_to_show(): | func _on_NewGamePanel_about_to_show(): | ||||||
| 	$Panel/HBoxContainer/Easy.pressed = false |  | ||||||
| 	$Panel/HBoxContainer/Normal.pressed = false |  | ||||||
| 	$Panel/HBoxContainer/Hard.pressed = false |  | ||||||
| 
 |  | ||||||
| 	var difficulty = preferences.get_value("game", "difficulty", "normal") | 	var difficulty = preferences.get_value("game", "difficulty", "normal") | ||||||
| 	match difficulty: | 	easy_button.pressed = difficulty == "easy" | ||||||
| 		"easy": | 	normal_button.pressed = difficulty == "normal" | ||||||
| 			$Panel/HBoxContainer/Easy.pressed = true | 	hard_button.pressed = difficulty == "hard" | ||||||
| 		"normal": |  | ||||||
| 			$Panel/HBoxContainer/Normal.pressed = true |  | ||||||
| 		"hard": |  | ||||||
| 			$Panel/HBoxContainer/Hard.pressed = true |  | ||||||
| 		_: |  | ||||||
| 			assert("Invalid value") |  | ||||||
| 			$Panel/HBoxContainer/Normal.pressed = true |  | ||||||
| 
 | 
 | ||||||
| 	$Panel/Start.grab_focus() | 	$Panel/Start.grab_focus() | ||||||
| 
 | 
 | ||||||
|  | @ -83,4 +75,3 @@ func _on_NewGamePanel_about_to_show(): | ||||||
| 	tween.interpolate_property(self, "rect_position", scaled_center_position, original_position, fade_duration, Tween.TRANS_LINEAR, Tween.EASE_IN) | 	tween.interpolate_property(self, "rect_position", scaled_center_position, original_position, fade_duration, Tween.TRANS_LINEAR, Tween.EASE_IN) | ||||||
| 	tween.interpolate_property(self, "modulate:a", 0.0, 1.0, fade_duration, Tween.TRANS_LINEAR, Tween.EASE_IN) | 	tween.interpolate_property(self, "modulate:a", 0.0, 1.0, fade_duration, Tween.TRANS_LINEAR, Tween.EASE_IN) | ||||||
| 	tween.start() | 	tween.start() | ||||||
| 
 |  | ||||||
|  |  | ||||||
|  | @ -1,8 +1,16 @@ | ||||||
| [gd_scene load_steps=4 format=2] | [gd_scene load_steps=6 format=2] | ||||||
| 
 | 
 | ||||||
| [ext_resource path="res://assets/taqin_theme.tres" type="Theme" id=1] | [ext_resource path="res://assets/taqin_theme.tres" type="Theme" id=1] | ||||||
| [ext_resource path="res://src/difficulty_buttongroup.tres" type="ButtonGroup" id=2] | [ext_resource path="res://src/difficulty_buttongroup.tres" type="ButtonGroup" id=2] | ||||||
| [ext_resource path="res://src/NewGamePanel.gd" type="Script" id=3] | [ext_resource path="res://src/NewGamePanel.gd" type="Script" id=3] | ||||||
|  | [ext_resource path="res://src/DepthButton.tscn" type="PackedScene" id=4] | ||||||
|  | 
 | ||||||
|  | [sub_resource type="StyleBoxFlat" id=1] | ||||||
|  | bg_color = Color( 1, 0.831373, 0.639216, 1 ) | ||||||
|  | corner_radius_top_left = 20 | ||||||
|  | corner_radius_top_right = 20 | ||||||
|  | corner_radius_bottom_right = 20 | ||||||
|  | corner_radius_bottom_left = 20 | ||||||
| 
 | 
 | ||||||
| [node name="NewGamePanel" type="PopupPanel"] | [node name="NewGamePanel" type="PopupPanel"] | ||||||
| anchor_right = 1.0 | anchor_right = 1.0 | ||||||
|  | @ -21,11 +29,13 @@ margin_left = 4.0 | ||||||
| margin_top = 4.0 | margin_top = 4.0 | ||||||
| margin_right = -4.0 | margin_right = -4.0 | ||||||
| margin_bottom = -4.0 | margin_bottom = -4.0 | ||||||
|  | custom_styles/panel = SubResource( 1 ) | ||||||
| __meta__ = { | __meta__ = { | ||||||
| "_edit_use_anchors_": false | "_edit_use_anchors_": false | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| [node name="HBoxContainer" type="HBoxContainer" parent="Panel"] | [node name="HBoxContainer" type="HBoxContainer" parent="Panel"] | ||||||
|  | visible = false | ||||||
| anchor_left = 0.5 | anchor_left = 0.5 | ||||||
| anchor_right = 0.5 | anchor_right = 0.5 | ||||||
| margin_left = -304.0 | margin_left = -304.0 | ||||||
|  | @ -46,8 +56,8 @@ group = ExtResource( 2 ) | ||||||
| text = "Easy" | text = "Easy" | ||||||
| 
 | 
 | ||||||
| [node name="Normal" type="Button" parent="Panel/HBoxContainer"] | [node name="Normal" type="Button" parent="Panel/HBoxContainer"] | ||||||
| margin_left = 204.0 | margin_left = 208.0 | ||||||
| margin_right = 404.0 | margin_right = 408.0 | ||||||
| margin_bottom = 70.0 | margin_bottom = 70.0 | ||||||
| rect_min_size = Vector2( 200, 70 ) | rect_min_size = Vector2( 200, 70 ) | ||||||
| toggle_mode = true | toggle_mode = true | ||||||
|  | @ -55,29 +65,68 @@ group = ExtResource( 2 ) | ||||||
| text = "Normal" | text = "Normal" | ||||||
| 
 | 
 | ||||||
| [node name="Hard" type="Button" parent="Panel/HBoxContainer"] | [node name="Hard" type="Button" parent="Panel/HBoxContainer"] | ||||||
| margin_left = 408.0 | margin_left = 416.0 | ||||||
| margin_right = 608.0 | margin_right = 616.0 | ||||||
| margin_bottom = 70.0 | margin_bottom = 70.0 | ||||||
| rect_min_size = Vector2( 200, 70 ) | rect_min_size = Vector2( 200, 70 ) | ||||||
| toggle_mode = true | toggle_mode = true | ||||||
| group = ExtResource( 2 ) | group = ExtResource( 2 ) | ||||||
| text = "Hard" | text = "Hard" | ||||||
| 
 | 
 | ||||||
| [node name="Start" type="Button" parent="Panel"] | [node name="Difficulty" type="HBoxContainer" parent="Panel"] | ||||||
| anchor_left = 1.0 |  | ||||||
| anchor_top = 1.0 |  | ||||||
| anchor_right = 1.0 | anchor_right = 1.0 | ||||||
| anchor_bottom = 1.0 | margin_top = 20.0 | ||||||
| margin_left = -220.0 | rect_min_size = Vector2( 0, 70 ) | ||||||
| margin_top = -90.0 | alignment = 1 | ||||||
| margin_right = -20.0 |  | ||||||
| margin_bottom = -20.0 |  | ||||||
| rect_min_size = Vector2( 200, 70 ) |  | ||||||
| text = "Start" |  | ||||||
| __meta__ = { | __meta__ = { | ||||||
| "_edit_use_anchors_": false | "_edit_use_anchors_": false | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | [node name="Easy" parent="Panel/Difficulty" instance=ExtResource( 4 )] | ||||||
|  | anchor_right = 0.0 | ||||||
|  | anchor_bottom = 0.0 | ||||||
|  | margin_left = 200.0 | ||||||
|  | margin_right = 400.0 | ||||||
|  | margin_bottom = 80.0 | ||||||
|  | rect_min_size = Vector2( 200, 80 ) | ||||||
|  | text = "Easy" | ||||||
|  | corner_type = 1 | ||||||
|  | toggle_mode = true | ||||||
|  | group = ExtResource( 2 ) | ||||||
|  | 
 | ||||||
|  | [node name="Normal" parent="Panel/Difficulty" instance=ExtResource( 4 )] | ||||||
|  | anchor_right = 0.0 | ||||||
|  | anchor_bottom = 0.0 | ||||||
|  | margin_left = 408.0 | ||||||
|  | margin_right = 608.0 | ||||||
|  | margin_bottom = 80.0 | ||||||
|  | rect_min_size = Vector2( 200, 80 ) | ||||||
|  | text = "Normal" | ||||||
|  | corner_type = 2 | ||||||
|  | toggle_mode = true | ||||||
|  | group = ExtResource( 2 ) | ||||||
|  | 
 | ||||||
|  | [node name="Hard" parent="Panel/Difficulty" instance=ExtResource( 4 )] | ||||||
|  | anchor_right = 0.0 | ||||||
|  | anchor_bottom = 0.0 | ||||||
|  | margin_left = 616.0 | ||||||
|  | margin_right = 816.0 | ||||||
|  | margin_bottom = 80.0 | ||||||
|  | rect_min_size = Vector2( 200, 80 ) | ||||||
|  | text = "Hard" | ||||||
|  | corner_type = 3 | ||||||
|  | toggle_mode = true | ||||||
|  | group = ExtResource( 2 ) | ||||||
|  | 
 | ||||||
|  | [node name="Start" parent="Panel" instance=ExtResource( 4 )] | ||||||
|  | anchor_left = 1.0 | ||||||
|  | anchor_top = 1.0 | ||||||
|  | margin_left = -235.0 | ||||||
|  | margin_top = -138.0 | ||||||
|  | margin_right = -20.0 | ||||||
|  | margin_bottom = -20.0 | ||||||
|  | text = "Start" | ||||||
|  | 
 | ||||||
| [node name="Cancel" type="Button" parent="Panel"] | [node name="Cancel" type="Button" parent="Panel"] | ||||||
| anchor_top = 1.0 | anchor_top = 1.0 | ||||||
| anchor_bottom = 1.0 | anchor_bottom = 1.0 | ||||||
|  | @ -88,6 +137,9 @@ margin_bottom = -20.0 | ||||||
| rect_min_size = Vector2( 200, 70 ) | rect_min_size = Vector2( 200, 70 ) | ||||||
| text = "Cancel" | text = "Cancel" | ||||||
| flat = true | flat = true | ||||||
|  | __meta__ = { | ||||||
|  | "_edit_use_anchors_": false | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| [node name="Tween" type="Tween" parent="."] | [node name="Tween" type="Tween" parent="."] | ||||||
| [connection signal="about_to_show" from="." to="." method="_on_NewGamePanel_about_to_show"] | [connection signal="about_to_show" from="." to="." method="_on_NewGamePanel_about_to_show"] | ||||||
|  |  | ||||||
							
								
								
									
										26
									
								
								src/Styles.gd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								src/Styles.gd
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,26 @@ | ||||||
|  | extends Node | ||||||
|  | 
 | ||||||
|  | enum CornerType { | ||||||
|  | 	SINGLE, | ||||||
|  | 	LEFT, | ||||||
|  | 	MIDDLE, | ||||||
|  | 	RIGHT | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | var _rounded_styles = {} | ||||||
|  | 
 | ||||||
|  | func _ready(): | ||||||
|  | 	pass # Replace with function body. | ||||||
|  | 
 | ||||||
|  | func get_key(name: String, corner_type) -> String: | ||||||
|  | 	return "%s_%s" % [name, CornerType.keys()[corner_type]] | ||||||
|  | 
 | ||||||
|  | func get_stylebox_flat(original: StyleBoxFlat, name: String, corner_type) -> StyleBoxFlat: | ||||||
|  | 	var key = get_key(name, corner_type) | ||||||
|  | 	if _rounded_styles.has(key): | ||||||
|  | 		return _rounded_styles[key] | ||||||
|  | 
 | ||||||
|  | 	if original != null: | ||||||
|  | 		return original.duplicate() as StyleBoxFlat | ||||||
|  | 
 | ||||||
|  | 	return StyleBoxFlat.new() | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue