Added scene switching capabilities and player placement
parent
00ef404d91
commit
7ab9f07fde
|
@ -0,0 +1,11 @@
|
||||||
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Scripts/Arena.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://Scripts/Camera.gd" type="Script" id=2]
|
||||||
|
|
||||||
|
[node name="Arena" type="Spatial"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="Camera" type="Camera" parent="."]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 0.942566, 0.334021, 0, -0.334021, 0.942566, 0, 0.462908, 1.26081 )
|
||||||
|
script = ExtResource( 2 )
|
|
@ -0,0 +1,32 @@
|
||||||
|
[gd_scene format=2]
|
||||||
|
|
||||||
|
[node name="Lobby" type="Control"]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="IPLineEdit" type="LineEdit" parent="."]
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.3
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.3
|
||||||
|
margin_left = -100.0
|
||||||
|
margin_right = 100.0
|
||||||
|
margin_bottom = 25.0
|
||||||
|
placeholder_text = "Enter IP Address of Server"
|
||||||
|
|
||||||
|
[node name="StartButton" type="Button" parent="."]
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.3
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.3
|
||||||
|
margin_left = -40.0
|
||||||
|
margin_top = 40.0
|
||||||
|
margin_right = 40.0
|
||||||
|
margin_bottom = 25.0
|
||||||
|
text = "Start"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Scripts/Player.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleMesh" id=1]
|
||||||
|
radius = 0.1
|
||||||
|
mid_height = 0.5
|
||||||
|
|
||||||
|
[node name="Player" type="Spatial"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="MeshInstance" type="MeshInstance" parent="."]
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
|
@ -1,40 +1,12 @@
|
||||||
[gd_scene load_steps=2 format=2]
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Scripts/RootNode.gd" type="Script" id=1]
|
[ext_resource path="res://Scripts/RootNode.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://Scenes/Lobby.tscn" type="PackedScene" id=2]
|
||||||
|
|
||||||
[node name="RootNode" type="Node"]
|
[node name="RootNode" type="Node"]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
[node name="Lobby" type="Control" parent="."]
|
[node name="Lobby" parent="." instance=ExtResource( 2 )]
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="IPLineEdit" type="LineEdit" parent="Lobby"]
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.3
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.3
|
|
||||||
margin_left = -100.0
|
|
||||||
margin_right = 100.0
|
|
||||||
margin_bottom = 25.0
|
|
||||||
placeholder_text = "Enter IP Address of Server"
|
|
||||||
|
|
||||||
[node name="StartButton" type="Button" parent="Lobby"]
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.3
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.3
|
|
||||||
margin_left = -40.0
|
|
||||||
margin_top = 40.0
|
|
||||||
margin_right = 40.0
|
|
||||||
margin_bottom = 25.0
|
|
||||||
text = "Start"
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="ConsoleOutput" type="TextEdit" parent="."]
|
[node name="ConsoleOutput" type="TextEdit" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
|
@ -46,4 +18,3 @@ caret_moving_by_right_click = false
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
[connection signal="pressed" from="Lobby/StartButton" to="." method="_on_StartButton_pressed"]
|
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
extends Spatial
|
||||||
|
|
||||||
|
|
||||||
|
var players = {} # keys are String, values are Players
|
||||||
|
const Player = preload("res://Scenes/Player.tscn")
|
||||||
|
|
||||||
|
remote func place_player(player_id : int, position : Vector3, rotation : Vector3) -> void:
|
||||||
|
get_parent().console_print('Placing player with id: ' + String(player_id))
|
||||||
|
var player = Player.instance()
|
||||||
|
player.translation = position
|
||||||
|
player.rotation = rotation
|
||||||
|
add_child(player)
|
||||||
|
players[player_id] = player
|
||||||
|
|
||||||
|
func init():
|
||||||
|
get_parent().arena_ready()
|
|
@ -0,0 +1,16 @@
|
||||||
|
extends Camera
|
||||||
|
|
||||||
|
|
||||||
|
func _physics_process(delta : float) -> void:
|
||||||
|
if Input.is_action_pressed("camera_forward"):
|
||||||
|
translate(Vector3(0, 0, 1))
|
||||||
|
if Input.is_action_pressed("camera_backward"):
|
||||||
|
translate(Vector3(0, 0, -1))
|
||||||
|
if Input.is_action_pressed("camera_strafe_up"):
|
||||||
|
translate(Vector3(0, 1, 0))
|
||||||
|
if Input.is_action_pressed("camera_strafe_down"):
|
||||||
|
translate(Vector3(0, -1, 0))
|
||||||
|
if Input.is_action_pressed("camera_strafe_right"):
|
||||||
|
translate(Vector3(1, 0, 0))
|
||||||
|
if Input.is_action_pressed("camera_strafe_left"):
|
||||||
|
translate(Vector3(-1, 0, 0))
|
|
@ -0,0 +1,4 @@
|
||||||
|
extends Spatial
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,13 +2,15 @@ extends Node
|
||||||
|
|
||||||
|
|
||||||
const PORT : int = 9374
|
const PORT : int = 9374
|
||||||
|
const Arena = preload("res://Scenes/Arena.tscn")
|
||||||
var console_output : TextEdit = null
|
var console_output : TextEdit = null
|
||||||
|
var peer : NetworkedMultiplayerENet = null
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
get_tree().connect("connected_to_server", self, "_connected_to_server")
|
get_tree().connect("connected_to_server", self, "_connected_to_server")
|
||||||
get_tree().connect("server_disconnected", self, "_server_disconnected")
|
get_tree().connect("server_disconnected", self, "_server_disconnected")
|
||||||
get_tree().connect("connection_failed", self, "_connection_failed")
|
get_tree().connect("connection_failed", self, "_connection_failed")
|
||||||
|
$Lobby/StartButton.connect("pressed", self, "_on_StartButton_pressed")
|
||||||
console_output = $ConsoleOutput
|
console_output = $ConsoleOutput
|
||||||
|
|
||||||
func _process(delta : float) -> void:
|
func _process(delta : float) -> void:
|
||||||
|
@ -44,6 +46,17 @@ func _on_StartButton_pressed() -> void:
|
||||||
var button : Button = $Lobby/StartButton
|
var button : Button = $Lobby/StartButton
|
||||||
var ip_addr : String = $Lobby/IPLineEdit.text
|
var ip_addr : String = $Lobby/IPLineEdit.text
|
||||||
button.disabled = true
|
button.disabled = true
|
||||||
var peer : NetworkedMultiplayerENet = NetworkedMultiplayerENet.new()
|
peer = NetworkedMultiplayerENet.new()
|
||||||
peer.create_client(ip_addr, PORT)
|
peer.create_client(ip_addr, PORT)
|
||||||
get_tree().set_network_peer(peer)
|
get_tree().set_network_peer(peer)
|
||||||
|
|
||||||
|
func arena_ready() -> void:
|
||||||
|
rpc_id(1, 'client_ready', peer.get_unique_id())
|
||||||
|
|
||||||
|
remote func start_game() -> void:
|
||||||
|
$Lobby.queue_free()
|
||||||
|
var arena = Arena.instance()
|
||||||
|
add_child(arena)
|
||||||
|
arena.init()
|
||||||
|
console_print('Starting Game...')
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,66 @@ toggle_console={
|
||||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":33554431,"unicode":0,"echo":false,"script":null)
|
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":33554431,"unicode":0,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
camera_forward={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
camera_backward={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
camera_strafe_left={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
camera_strafe_right={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
camera_strafe_up={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":69,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
camera_strafe_down={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":81,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
camera_pitch_up={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":75,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
camera_pitch_down={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":73,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
camera_roll_right={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":79,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
camera_roll_left={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":85,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
camera_yaw_right={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":76,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
camera_yaw_left={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":74,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue