Combined movementSystem0.0.3 and Multiplayer

This commit is contained in:
Kristofers Solo 2021-10-30 18:39:12 +03:00
parent ec00903c2c
commit f9125edb50
5 changed files with 87 additions and 5 deletions

View File

@ -1,6 +1,6 @@
extends Node
const DEFAULT_PORT = 28960
const DEFAULT_PORT = 28914
const MAX_CLIENTS = 4
var server = null

View File

@ -1,6 +1,6 @@
extends Control
var player = load("res://scenes/player.tscn")
var player = load("res://source/entities/player/player_node.tscn")
var current_spawn_location_instance_number = 1
var current_player_for_spawn_location_number = null
@ -88,4 +88,4 @@ func _on_start_game_pressed():
sync func switch_to_game() -> void:
get_tree().change_scene("res://scenes/game.tscn")
get_tree().change_scene("res://source/levels/trinity_site/trinitySite-level.tscn")

View File

@ -1,5 +1,5 @@
extends Node
func update(userStateInstance):
# userStateInstance.rotateBy(-1)
userStateInstance.rotateBy(-1)
pass

View File

@ -1,10 +1,89 @@
extends Node2D
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, PersistentNodes, 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 statePassback():
return {"node_global_position": transform.origin, "rotation": null}
func set_scale(scale) -> void:
$player_body/player_sprite_na.scale = Vector2(scale, scale)
$player_body/player_sprite.scale = Vector2(scale, scale)
$player_body/player_collider.scale = Vector2(scale, scale)
pass
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 get_tree().has_network_peer():
if is_network_master():
rset_unreliable("puppet_position", global_position)
#rset_unreliable("puppet_velocity", velocity)
rset_unreliable("puppet_rotation", rotation_degrees)
sync func update_position(pos):
global_position = pos
puppet_position = pos
sync func destroy() -> void:
username_text_instance.visible = false
visible = false
$CollisionShape2D.disabled = true
$Hitbox/CollisionShape2D.disabled = true
Global.alive_players.erase(self)
if get_tree().has_network_peer():
if is_network_master():
Global.player_master = null
func _exit_tree() -> void:
Global.alive_players.erase(self)
if get_tree().has_network_peer():
if is_network_master():
Global.player_master = null

View File

@ -31,7 +31,10 @@ animations = [ {
[node name="player_node" type="Node2D"]
script = ExtResource( 15 )
[node name="player_body" type="KinematicBody2D" parent="."]
[node name="player_body" type="KinematicBody2D" parent="." groups=[
"Net",
"Player",
]]
script = ExtResource( 16 )
[node name="player_collider" type="CollisionShape2D" parent="player_body"]