mirror of
https://github.com/kristoferssolo/FuncIt.git
synced 2025-10-21 19:30:35 +00:00
added username on player
This commit is contained in:
parent
4e88129264
commit
9b5a48e5f0
10
Game_4/code/game.gd
Normal file
10
Game_4/code/game.gd
Normal 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()
|
||||
@ -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")
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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()
|
||||
|
||||
|
||||
15
Game_4/code/username_text.gd
Normal file
15
Game_4/code/username_text.gd
Normal 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
11
Game_4/scenes/game.tscn
Normal 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 )
|
||||
@ -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"]
|
||||
|
||||
@ -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 )]
|
||||
|
||||
|
||||
21
Game_4/scenes/username_text.tscn
Normal file
21
Game_4/scenes/username_text.tscn
Normal 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
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user