added username on player

This commit is contained in:
Kristofers Solo 2021-10-20 13:40:49 +03:00
parent 4e88129264
commit 9b5a48e5f0
9 changed files with 144 additions and 11 deletions

10
Game_4/code/game.gd Normal file
View File

@ -0,0 +1,10 @@
extends Node2D
func _ready() -> void:
get_tree().connect("network_peer_disconnected", self, "_player_disconnected")
func _player_disconnected(id) -> void:
if Players.has_node(str(id)):
Players.get_node(str(id)).username_text_instance.queue_free()
Players.get_node(str(id)).queue_free()

View File

@ -5,6 +5,7 @@ var player = load("res://scenes/player.tscn")
onready var multiplayer_config_ui = $multiplayer_configure
onready var username_text_edit = $multiplayer_configure/username_text_edit
onready var device_ip_address = $CanvasLayer/device_ip_address
onready var start_game = $CanvasLayer/start_game
func _ready():
@ -13,6 +14,20 @@ func _ready():
get_tree().connect("connected_to_server", self, "_connected_to_server")
device_ip_address.text = Network.ip_address
if get_tree().network_peer != null:
pass
else:
start_game.hide()
func _process(delta: float) -> void:
if get_tree().network_peer != null:
if get_tree().get_network_connected_peers().size() >= 0 and get_tree().is_network_server():
start_game.show()
else:
start_game.hide()
func _player_connected(id) -> void:
print("Player " + str(id) + " has connected")
@ -22,6 +37,7 @@ func _player_connected(id) -> void:
func _player_disconnected(id) -> void:
print("Player " + str(id) + " has disconnected")
if Players.has_node(str(id)):
Players.get_node(str(id)).username_text_instance.queue_free()
Players.get_node(str(id)).queue_free()
@ -49,3 +65,12 @@ func instance_player(id) -> void:
var player_instance = Global.instance_node_at_location(player, Players, Vector2(rand_range(0, 1920), rand_range(0, 1080)))
player_instance.name = str(id)
player_instance.set_network_master(id)
player_instance.username = username_text_edit.text
func _on_start_game_pressed():
rpc("switch_to_game")
sync func switch_to_game() -> void:
get_tree().change_scene("res://scenes/game.tscn")

View File

@ -9,11 +9,29 @@ var speed = 50
var velocity = Vector2()
var fly = false
var username_text = load("res://scenes/username_text.tscn")
var username setget username_set
var username_text_instance = null
puppet var puppet_position = Vector2(0, 0) setget puppet_position_set
puppet var puppet_velocity = Vector2()
puppet var puppet_rotaion = 0
puppet var puppet_username = "" setget puppet_username_set
onready var tween = $Tween
func _ready():
get_tree().connect("network_peer_connected", self, "_network_peer_connected")
username_text_instance = Global.instance_node_at_location(username_text, Players, global_position)
username_text_instance.player_following = self
func _process(delta: float) -> void:
if username_text_instance != null:
username_text_instance.name = "username" + name
func _physics_process(delta):
if is_network_master():
mode_switch(delta)
@ -50,7 +68,6 @@ func movement(delta):
if Input.is_action_pressed("jump") and is_on_floor():
velocity.y -= JUMP_FORCE
velocity = move_and_slide(velocity, Vector2.UP)
print(velocity)
func flying():
@ -65,7 +82,6 @@ func flying():
if Input.is_action_pressed("move_up"):
velocity.y -= 1
velocity = velocity.normalized() * fly_speed
print(velocity)
velocity = move_and_slide(velocity)
@ -76,12 +92,30 @@ func screen_wrap():
if position.x >= get_viewport_rect().size.x + 10:
position.x = 0
func puppet_position_set(new_value) -> void:
puppet_position = new_value
tween.interpolate_property(self, "global_position", global_position, puppet_position, 0.1)
tween.start()
func username_set(new_value) -> void:
username = new_value
if is_network_master() and username_text_instance != null:
username_text_instance.text = username
rset("puppet_username", username)
func puppet_username_set(new_value) -> void:
puppet_username = new_value
if not is_network_master() and username_text_instance != null:
username_text_instance.text = puppet_username
func _network_peer_connected(id) -> void:
rset_id(id, "puppet_username", username)
func _on_network_tick_rate_timeout():
if is_network_master():
rset_unreliable("puppet_position", global_position)

View File

@ -25,9 +25,9 @@ func _on_server_listener_remove_server(serverIp):
func _on_manual_setup_pressed():
if manual_setup_button.text != "exit setup":
if manual_setup_button.text != "Exit setup":
server_ip_text_edit.show()
manual_setup_button.text = "exit setup"
manual_setup_button.text = "Exit setup"
server_container.hide()
server_ip_text_edit.call_deferred("grab_focus")
else:
@ -37,7 +37,8 @@ func _on_manual_setup_pressed():
func _on_join_server_pressed():
Network.ip_address = server_ip_text_edit.text
if server_ip_text_edit.text != "":
Network.ip_address = server_ip_text_edit.text
hide()
Network.join_server()

View File

@ -0,0 +1,15 @@
extends Node2D
var player_following = null
var text = "" setget text_set
onready var label = $Label
func _process(delta: float) -> void:
if player_following != null:
global_position = player_following.global_position
func text_set(new_text) -> void:
text = new_text
label.text = text

11
Game_4/scenes/game.tscn Normal file
View File

@ -0,0 +1,11 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://scenes/floor.tscn" type="PackedScene" id=1]
[ext_resource path="res://code/game.gd" type="Script" id=2]
[node name="game" type="Node2D"]
script = ExtResource( 2 )
[node name="floor" parent="." instance=ExtResource( 1 )]
position = Vector2( 960, 1056 )
scale = Vector2( 2, 1 )

View File

@ -1,8 +1,7 @@
[gd_scene load_steps=4 format=2]
[gd_scene load_steps=3 format=2]
[ext_resource path="res://font/roboto.tres" type="DynamicFont" id=1]
[ext_resource path="res://code/network_setup.gd" type="Script" id=2]
[ext_resource path="res://scenes/floor.tscn" type="PackedScene" id=3]
[node name="network_setup" type="Control"]
anchor_right = 1.0
@ -62,6 +61,17 @@ __meta__ = {
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="start_game" type="Button" parent="CanvasLayer"]
margin_left = 27.0
margin_top = 27.0
margin_right = 391.0
margin_bottom = 158.0
custom_fonts/font = ExtResource( 1 )
text = "Start game"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="device_ip_address" type="Label" parent="CanvasLayer"]
anchor_top = 1.0
anchor_right = 1.0
@ -74,9 +84,6 @@ __meta__ = {
"_edit_use_anchors_": false
}
[node name="floor" parent="." instance=ExtResource( 3 )]
position = Vector2( 960, 1056 )
scale = Vector2( 2, 1 )
[connection signal="pressed" from="multiplayer_configure/create_server" to="." method="_on_create_server_pressed"]
[connection signal="pressed" from="multiplayer_configure/join_server" to="." method="_on_join_server_pressed"]
[connection signal="pressed" from="CanvasLayer/start_game" to="." method="_on_start_game_pressed"]

View File

@ -64,6 +64,9 @@ margin_right = 473.0
margin_bottom = -25.0
custom_fonts/font = ExtResource( 1 )
text = "Go back"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="server_ip_text_edit" type="LineEdit" parent="background_panel"]
anchor_left = 0.5
@ -107,6 +110,9 @@ margin_left = 70.0
margin_top = 40.0
margin_right = -70.0
margin_bottom = -175.0
__meta__ = {
"_edit_use_anchors_": false
}
[node name="searching_for_servers" type="Label" parent="background_panel/VBoxContainer"]
margin_right = 1588.0
@ -129,6 +135,9 @@ custom_fonts/font = ExtResource( 1 )
text = "Server Browser"
align = 1
valign = 1
__meta__ = {
"_edit_use_anchors_": false
}
[node name="server_listener" parent="." instance=ExtResource( 2 )]

View File

@ -0,0 +1,21 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://font/roboto.tres" type="DynamicFont" id=1]
[ext_resource path="res://code/username_text.gd" type="Script" id=2]
[node name="username_text" type="Node2D"]
z_index = 10
script = ExtResource( 2 )
[node name="Label" type="Label" parent="."]
margin_left = -197.0
margin_top = -125.0
margin_right = 197.0
margin_bottom = -49.0
custom_fonts/font = ExtResource( 1 )
text = "null"
align = 1
valign = 1
__meta__ = {
"_edit_use_anchors_": false
}