UI: 打牌区域分行显示、聊天框透明

This commit is contained in:
2020-06-02 23:56:27 +08:00
parent 1eaccc25c0
commit 9969a04e7b
11 changed files with 136 additions and 115 deletions
+3
View File
@@ -19,6 +19,7 @@ class Tile:
const OPPOSITE_HAND_HEIGHT = 120 const OPPOSITE_HAND_HEIGHT = 120
const OPPOSITE_DROP_WIDTH = 76 const OPPOSITE_DROP_WIDTH = 76
const OPPOSITE_DROP_HEIGHT = 118 const OPPOSITE_DROP_HEIGHT = 118
const OPPOSITE_DROP_THICK = 32
const SIDE_SCALE = 0.6 const SIDE_SCALE = 0.6
const SIDE_HAND_WIDTH = 50 const SIDE_HAND_WIDTH = 50
@@ -33,6 +34,8 @@ class Tile:
const BOTTOM_DROP_WIDTH = 76 const BOTTOM_DROP_WIDTH = 76
const BOTTOM_DROP_HEIGHT = 118 const BOTTOM_DROP_HEIGHT = 118
const BOTTOM_DROP_THICK = 32 const BOTTOM_DROP_THICK = 32
const BOTTOM_DROP_MARGIN_X = 400
const BOTTOM_DROP_COUNT_MAX = 14
const BOTTOM_SHOWN_SEP = 20 const BOTTOM_SHOWN_SEP = 20
const RESULT_SCALE = 0.7 const RESULT_SCALE = 0.7
+5 -2
View File
@@ -28,9 +28,12 @@ func get_tile_instance(suit, number):
return tile return tile
func show_tiles(): func show_tiles():
var row = -1
for i in range(get_children().size()): for i in range(get_children().size()):
get_children()[i].position = Vector2(i*Constants.Tile.BOTTOM_DROP_WIDTH, 0) if i % 14 == 0:
pass row += 1
get_children()[i].set_z_index(5-row)
get_children()[i].position = Vector2((i%14)*Constants.Tile.BOTTOM_DROP_WIDTH, -row*(Constants.Tile.BOTTOM_DROP_HEIGHT-Constants.Tile.BOTTOM_DROP_THICK))
func clear_tiles(): func clear_tiles():
for tile in get_children(): for tile in get_children():
+6 -3
View File
@@ -29,10 +29,13 @@ func get_tile_instance(suit, number):
return tile return tile
func show_tiles(): func show_tiles():
# self.position = Vector2(Constants.Table.) var row = -1
for i in range(get_children().size()): for i in range(get_children().size()):
get_children()[i].position = Vector2(-i*Constants.Tile.SIDE_DROP_DIFF,
i*(Constants.Tile.SIDE_DROP_HEIGHT-Constants.Tile.SIDE_DROP_THICK)) if i % 13 == 0:
row += 1
get_children()[i].position = Vector2(row*Constants.Tile.SIDE_DROP_HEIGHT,
(i%13)*(Constants.Tile.SIDE_DROP_HEIGHT-Constants.Tile.SIDE_DROP_THICK))
func clear_tiles(): func clear_tiles():
for tile in get_children(): for tile in get_children():
+1 -1
View File
@@ -15,7 +15,7 @@ func _ready():
hide_texture = ImageTexture.new() hide_texture = ImageTexture.new()
hide_texture = load("res://Asset/Tile/HideTileBottom.png") hide_texture = load("res://Asset/Tile/HideTileBottom.png")
position = Vector2(Constants.Screen.WIDTH-Constants.Table.BOTTOM_SHOWN_MARGIN_X- position = Vector2(Constants.Screen.WIDTH-Constants.Table.BOTTOM_SHOWN_MARGIN_X-
3*Constants.Tile.BOTTOM_DROP_WIDTH, Constants.Table.BOTTOM_SHOWN_MARGIN_Y+Constants.Tile.OPPOSITE_HAND_HEIGHT) 3*Constants.Tile.BOTTOM_DROP_WIDTH, Constants.Table.BOTTOM_SHOWN_MARGIN_Y+Constants.Tile.OPPOSITE_HAND_HEIGHT-20)
func show_tiles(tiles): func show_tiles(tiles):
+4 -2
View File
@@ -28,9 +28,11 @@ func get_tile_instance(suit, number):
return tile return tile
func show_tiles(): func show_tiles():
var row = -1
for i in range(get_children().size()): for i in range(get_children().size()):
get_children()[i].position = Vector2(-i*Constants.Tile.OPPOSITE_DROP_WIDTH, 0) if i % 14 == 0:
pass row += 1
get_children()[i].position = Vector2(-(i%14)*Constants.Tile.OPPOSITE_DROP_WIDTH, row*(Constants.Tile.OPPOSITE_DROP_HEIGHT-Constants.Tile.OPPOSITE_DROP_THICK))
func clear_tiles(): func clear_tiles():
for tile in get_children(): for tile in get_children():
+1 -1
View File
@@ -30,7 +30,7 @@ func rearrange_tiles():
tiles[i].position = Vector2(i*Constants.Tile.OPPOSITE_HAND_WIDTH, 0) tiles[i].position = Vector2(i*Constants.Tile.OPPOSITE_HAND_WIDTH, 0)
var x = (Constants.Screen.WIDTH - get_children().size()*Constants.Tile.OPPOSITE_HAND_WIDTH)/2.0 var x = (Constants.Screen.WIDTH - get_children().size()*Constants.Tile.OPPOSITE_HAND_WIDTH)/2.0
var y = Constants.Table.OPPO_HAND_MARGIN_Y var y = Constants.Table.OPPO_HAND_MARGIN_Y
self.position = Vector2(x, y) self.position = Vector2(x, y-20)
func get_tile_instance(): func get_tile_instance():
var tile = Sprite.new() var tile = Sprite.new()
+1
View File
@@ -16,6 +16,7 @@ func _ready():
func show_result(msg): func show_result(msg):
set("z", 6)
clear_tiles() clear_tiles()
popup_centered(Vector2(1200, 550)) popup_centered(Vector2(1200, 550))
for i in range(4): for i in range(4):
+5 -2
View File
@@ -32,9 +32,12 @@ func get_tile_instance(suit, number):
return tile return tile
func show_tiles(): func show_tiles():
var row = -1
for i in range(tiles.size()): for i in range(tiles.size()):
tiles[i].position = Vector2(-i*Constants.Tile.SIDE_DROP_DIFF, if i % 13 == 0:
-i*(Constants.Tile.SIDE_DROP_HEIGHT-Constants.Tile.SIDE_DROP_THICK)) row += 1
tiles[i].position = Vector2(-row*Constants.Tile.SIDE_DROP_HEIGHT,
-(i%13)*(Constants.Tile.SIDE_DROP_HEIGHT-Constants.Tile.SIDE_DROP_THICK))
func clear_tiles(): func clear_tiles():
+1 -1
View File
@@ -15,7 +15,7 @@ func _ready():
hide_texture = ImageTexture.new() hide_texture = ImageTexture.new()
hide_texture = load("res://Asset/Tile/HideTileRight.png") hide_texture = load("res://Asset/Tile/HideTileRight.png")
position = Vector2(Constants.Screen.WIDTH-Constants.Tile.SIDE_DROP_WIDTH-Constants.Table.SIDE_SHOWN_MARGIN_X, position = Vector2(Constants.Screen.WIDTH-Constants.Tile.SIDE_DROP_WIDTH-Constants.Table.SIDE_SHOWN_MARGIN_X,
Constants.Screen.HEIGHT-Constants.Table.SIDE_SHOWN_MARGIN_Y-3*(Constants.Tile.SIDE_DROP_HEIGHT-Constants.Tile.SIDE_DROP_THICK)-Constants.Tile.SIDE_DROP_THICK) Constants.Screen.HEIGHT-Constants.Table.SIDE_SHOWN_MARGIN_Y-3*(Constants.Tile.SIDE_DROP_HEIGHT-Constants.Tile.SIDE_DROP_THICK)-Constants.Tile.SIDE_DROP_THICK+40)
func show_tiles(tiles): func show_tiles(tiles):
+2 -3
View File
@@ -22,8 +22,7 @@ func _ready():
ConnManager.connect("recv_join_msg", self, "handle_join_msg") ConnManager.connect("recv_join_msg", self, "handle_join_msg")
ConnManager.connect("conn_failed", self, "handle_conn_failed") ConnManager.connect("conn_failed", self, "handle_conn_failed")
$ChatNode/ChatField.connect("send_chat", self, "handle_send_chat_pressed")
$ChatField.connect("send_chat", self, "handle_send_chat_pressed")
$PlayerAction/Chow.connect("pressed", self, "handle_chow") $PlayerAction/Chow.connect("pressed", self, "handle_chow")
@@ -66,7 +65,7 @@ func handle_game_result_msg(msg):
var winner = int(msg["winner"]) var winner = int(msg["winner"])
if winner >= 0: if winner >= 0:
play_action_audio(Message.player_action.WIN, msg["user_list"][winner]["gender"]) play_action_audio(Message.player_action.WIN, msg["user_list"][winner]["gender"])
$GameResultPanel.show_result(msg) $ResultNode/GameResultPanel.show_result(msg)
$PlayerAction.hide() $PlayerAction.hide()
$ReadyButton.show() $ReadyButton.show()
print_debug("winner: ", winner) print_debug("winner: ", winner)
+107 -100
View File
@@ -72,22 +72,6 @@ font_data = ExtResource( 41 )
size = 32 size = 32
font_data = ExtResource( 41 ) font_data = ExtResource( 41 )
[sub_resource type="StyleBoxTexture" id=5]
texture = ExtResource( 44 )
region_rect = Rect2( 0, 0, 660, 60 )
[sub_resource type="DynamicFont" id=6]
size = 32
font_data = ExtResource( 41 )
[sub_resource type="StyleBoxTexture" id=7]
texture = ExtResource( 52 )
region_rect = Rect2( 0, 0, 640, 569 )
[sub_resource type="DynamicFont" id=8]
size = 32
font_data = ExtResource( 41 )
[sub_resource type="StyleBoxTexture" id=9] [sub_resource type="StyleBoxTexture" id=9]
texture = ExtResource( 52 ) texture = ExtResource( 52 )
region_rect = Rect2( 0, 0, 640, 569 ) region_rect = Rect2( 0, 0, 640, 569 )
@@ -104,6 +88,23 @@ load_path = "res://.import/ExitButton.png-90bb905636ba19a1a2935f9c69eb1cf7.stex"
size = 64 size = 64
font_data = ExtResource( 41 ) font_data = ExtResource( 41 )
[sub_resource type="StyleBoxTexture" id=5]
texture = ExtResource( 44 )
region_rect = Rect2( 0, 0, 660, 60 )
modulate_color = Color( 1, 1, 1, 0.588235 )
[sub_resource type="DynamicFont" id=6]
size = 32
font_data = ExtResource( 41 )
[sub_resource type="StyleBoxTexture" id=7]
texture = ExtResource( 52 )
region_rect = Rect2( 0, 0, 640, 569 )
[sub_resource type="DynamicFont" id=8]
size = 32
font_data = ExtResource( 41 )
[node name="Table" type="Node2D"] [node name="Table" type="Node2D"]
script = ExtResource( 6 ) script = ExtResource( 6 )
@@ -170,11 +171,11 @@ position = Vector2( 896.551, 142.818 )
script = ExtResource( 8 ) script = ExtResource( 8 )
[node name="OppoShown" type="Node2D" parent="."] [node name="OppoShown" type="Node2D" parent="."]
position = Vector2( 1573.25, 148.362 ) position = Vector2( 1573.25, 138.362 )
script = ExtResource( 24 ) script = ExtResource( 24 )
[node name="OppositeDropArea" type="Node2D" parent="."] [node name="OppositeDropArea" type="Node2D" parent="."]
position = Vector2( 1222.13, 256.318 ) position = Vector2( 1450, 285 )
script = ExtResource( 1 ) script = ExtResource( 1 )
[node name="LeftHand" type="Node2D" parent="."] [node name="LeftHand" type="Node2D" parent="."]
@@ -186,7 +187,7 @@ position = Vector2( 256.542, 126.726 )
script = ExtResource( 25 ) script = ExtResource( 25 )
[node name="LeftDropArea" type="Node2D" parent="."] [node name="LeftDropArea" type="Node2D" parent="."]
position = Vector2( 383.452, 332.188 ) position = Vector2( 250, 250 )
script = ExtResource( 22 ) script = ExtResource( 22 )
[node name="RightHand" type="Node2D" parent="."] [node name="RightHand" type="Node2D" parent="."]
@@ -198,11 +199,11 @@ position = Vector2( 1718.52, 856.17 )
script = ExtResource( 26 ) script = ExtResource( 26 )
[node name="RightDropArea" type="Node2D" parent="."] [node name="RightDropArea" type="Node2D" parent="."]
position = Vector2( 1570.72, 658.225 ) position = Vector2( 1600, 820 )
script = ExtResource( 3 ) script = ExtResource( 3 )
[node name="BottomDropArea" type="Node2D" parent="."] [node name="BottomDropArea" type="Node2D" parent="."]
position = Vector2( 621.315, 779.207 ) position = Vector2( 400, 779.207 )
script = ExtResource( 20 ) script = ExtResource( 20 )
[node name="BottomShown" type="Node2D" parent="."] [node name="BottomShown" type="Node2D" parent="."]
@@ -297,12 +298,11 @@ margin_bottom = 37.0
text = "Start" text = "Start"
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
visible = false margin_right = 904.0
margin_top = 45.0 margin_bottom = 37.0
margin_right = 1377.0
margin_bottom = 82.0
[node name="Button" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="Button" type="Button" parent="VBoxContainer/HBoxContainer"]
visible = false
margin_right = 111.0 margin_right = 111.0
margin_bottom = 37.0 margin_bottom = 37.0
text = "Add Tile" text = "Add Tile"
@@ -311,14 +311,14 @@ __meta__ = {
} }
[node name="Button3" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="Button3" type="Button" parent="VBoxContainer/HBoxContainer"]
margin_left = 119.0 visible = false
margin_right = 261.0 margin_right = 142.0
margin_bottom = 37.0 margin_bottom = 37.0
text = "Add to Left" text = "Add to Left"
[node name="Button2" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="Button2" type="Button" parent="VBoxContainer/HBoxContainer"]
margin_left = 269.0 visible = false
margin_right = 465.0 margin_right = 196.0
margin_bottom = 37.0 margin_bottom = 37.0
text = "Add to Oppotite" text = "Add to Oppotite"
__meta__ = { __meta__ = {
@@ -326,38 +326,37 @@ __meta__ = {
} }
[node name="Button4" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="Button4" type="Button" parent="VBoxContainer/HBoxContainer"]
margin_left = 473.0 margin_right = 137.0
margin_right = 610.0
margin_bottom = 37.0 margin_bottom = 37.0
text = "RightHand" text = "RightHand"
[node name="Button5" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="Button5" type="Button" parent="VBoxContainer/HBoxContainer"]
margin_left = 618.0 margin_left = 145.0
margin_right = 777.0 margin_right = 304.0
margin_bottom = 37.0 margin_bottom = 37.0
text = "BottomDrop" text = "BottomDrop"
[node name="Button6" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="Button6" type="Button" parent="VBoxContainer/HBoxContainer"]
margin_left = 785.0 margin_left = 312.0
margin_right = 904.0 margin_right = 431.0
margin_bottom = 37.0 margin_bottom = 37.0
text = "LeftDrop" text = "LeftDrop"
[node name="Button7" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="Button7" type="Button" parent="VBoxContainer/HBoxContainer"]
margin_left = 912.0 margin_left = 439.0
margin_right = 1045.0 margin_right = 572.0
margin_bottom = 37.0 margin_bottom = 37.0
text = "RightDrop" text = "RightDrop"
[node name="Button8" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="Button8" type="Button" parent="VBoxContainer/HBoxContainer"]
margin_left = 1053.0 margin_left = 580.0
margin_right = 1191.0 margin_right = 718.0
margin_bottom = 37.0 margin_bottom = 37.0
text = "OppoDrop" text = "OppoDrop"
[node name="Button9" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="Button9" type="Button" parent="VBoxContainer/HBoxContainer"]
margin_left = 1199.0 margin_left = 726.0
margin_right = 1377.0 margin_right = 904.0
margin_bottom = 37.0 margin_bottom = 37.0
text = "BottomShown" text = "BottomShown"
@@ -594,6 +593,7 @@ wait_time = 2.0
one_shot = true one_shot = true
[node name="Chat" type="TextureRect" parent="OppoAvatar"] [node name="Chat" type="TextureRect" parent="OppoAvatar"]
visible = false
margin_left = 127.0 margin_left = 127.0
margin_right = 487.0 margin_right = 487.0
margin_bottom = 231.0 margin_bottom = 231.0
@@ -697,64 +697,6 @@ __meta__ = {
wait_time = 2.0 wait_time = 2.0
one_shot = true one_shot = true
[node name="ChatField" type="HBoxContainer" parent="."]
margin_left = 1364.08
margin_top = 821.17
margin_right = 1897.08
margin_bottom = 872.17
script = ExtResource( 43 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="LineEdit" type="LineEdit" parent="ChatField"]
margin_right = 423.0
margin_bottom = 51.0
size_flags_horizontal = 3
custom_styles/normal = SubResource( 5 )
custom_fonts/font = SubResource( 6 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
placeholder_text = "输入聊天消息"
[node name="SendButton" type="TextureButton" parent="ChatField"]
margin_left = 431.0
margin_right = 533.0
margin_bottom = 51.0
texture_normal = ExtResource( 45 )
[node name="GameResultPanel" type="PopupPanel" parent="."]
margin_left = 493.0
margin_top = 251.0
margin_right = 1426.0
margin_bottom = 751.0
rect_min_size = Vector2( 950, 550 )
custom_styles/panel = SubResource( 7 )
script = ExtResource( 53 )
[node name="Nickname0" type="Label" parent="GameResultPanel"]
margin_right = 950.0
margin_bottom = 550.0
custom_fonts/font = SubResource( 8 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
[node name="Nickname1" type="Label" parent="GameResultPanel"]
margin_right = 950.0
margin_bottom = 550.0
custom_fonts/font = SubResource( 8 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
[node name="Nickname2" type="Label" parent="GameResultPanel"]
margin_right = 950.0
margin_bottom = 550.0
custom_fonts/font = SubResource( 8 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
[node name="Nickname3" type="Label" parent="GameResultPanel"]
margin_right = 950.0
margin_bottom = 550.0
custom_fonts/font = SubResource( 8 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
[node name="DisconnectDialog" type="PopupDialog" parent="."] [node name="DisconnectDialog" type="PopupDialog" parent="."]
margin_right = 600.0 margin_right = 600.0
margin_bottom = 400.0 margin_bottom = 400.0
@@ -837,6 +779,71 @@ text = "00000"
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="ChatNode" type="Node2D" parent="."]
z_index = 6
[node name="ChatField" type="HBoxContainer" parent="ChatNode"]
margin_left = 1364.08
margin_top = 821.17
margin_right = 1897.08
margin_bottom = 872.17
script = ExtResource( 43 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="LineEdit" type="LineEdit" parent="ChatNode/ChatField"]
margin_right = 423.0
margin_bottom = 51.0
size_flags_horizontal = 3
custom_styles/normal = SubResource( 5 )
custom_fonts/font = SubResource( 6 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
context_menu_enabled = false
placeholder_text = "输入聊天消息"
[node name="SendButton" type="TextureButton" parent="ChatNode/ChatField"]
margin_left = 431.0
margin_right = 533.0
margin_bottom = 51.0
texture_normal = ExtResource( 45 )
[node name="ResultNode" type="Node2D" parent="."]
z_index = 6
[node name="GameResultPanel" type="PopupPanel" parent="ResultNode"]
margin_left = 493.0
margin_top = 251.0
margin_right = 1443.0
margin_bottom = 801.0
rect_min_size = Vector2( 950, 550 )
custom_styles/panel = SubResource( 7 )
script = ExtResource( 53 )
[node name="Nickname0" type="Label" parent="ResultNode/GameResultPanel"]
margin_right = 950.0
margin_bottom = 550.0
custom_fonts/font = SubResource( 8 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
[node name="Nickname1" type="Label" parent="ResultNode/GameResultPanel"]
margin_right = 950.0
margin_bottom = 550.0
custom_fonts/font = SubResource( 8 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
[node name="Nickname2" type="Label" parent="ResultNode/GameResultPanel"]
margin_right = 950.0
margin_bottom = 550.0
custom_fonts/font = SubResource( 8 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
[node name="Nickname3" type="Label" parent="ResultNode/GameResultPanel"]
margin_right = 950.0
margin_bottom = 550.0
custom_fonts/font = SubResource( 8 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
[connection signal="pressed" from="VBoxContainer/TestButtons/StartButton" to="." method="_on_Button9_pressed"] [connection signal="pressed" from="VBoxContainer/TestButtons/StartButton" to="." method="_on_Button9_pressed"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Button" to="." method="_on_Button_pressed"] [connection signal="pressed" from="VBoxContainer/HBoxContainer/Button" to="." method="_on_Button_pressed"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Button3" to="." method="_on_Button3_pressed"] [connection signal="pressed" from="VBoxContainer/HBoxContainer/Button3" to="." method="_on_Button3_pressed"]
@@ -853,4 +860,4 @@ __meta__ = {
[connection signal="timeout" from="RightAvatar/Timer" to="RightAvatar" method="_on_Timer_timeout"] [connection signal="timeout" from="RightAvatar/Timer" to="RightAvatar" method="_on_Timer_timeout"]
[connection signal="timeout" from="OppoAvatar/Timer" to="OppoAvatar" method="_on_Timer_timeout"] [connection signal="timeout" from="OppoAvatar/Timer" to="OppoAvatar" method="_on_Timer_timeout"]
[connection signal="timeout" from="LeftAvatar/Timer" to="LeftAvatar" method="_on_Timer_timeout"] [connection signal="timeout" from="LeftAvatar/Timer" to="LeftAvatar" method="_on_Timer_timeout"]
[connection signal="pressed" from="ChatField/SendButton" to="ChatField" method="_on_SendButton_pressed"] [connection signal="pressed" from="ChatNode/ChatField/SendButton" to="ChatNode/ChatField" method="_on_SendButton_pressed"]