commit - 3fc3080d0c5b55dc5d560c1e48c465b0ee249e14
commit + e78a939acbde029b9283330ea10df458fa83c48a
blob - 4a91a78b46c8739e3be0a85cf309f5b22669fe18
blob + 66d9e838c57d23268ca834637648ae7b6d40025c
--- src/board.gd
+++ src/board.gd
extends Node2D
+var _ids := 0
-func _unused_send_ping() -> void:
- rpc("ping")
remote func ping():
var id := get_tree().get_rpc_sender_id()
var id := get_tree().get_rpc_sender_id()
print("PONG from ", id)
+remote func move(id, x, y):
+ print("id is ", id)
+ for child in $"pieces".get_children():
+ if child.id == id:
+ child.position = Vector2(x, y)
+ return
+ print("piece ", id, " not found!")
+
+remote func setup() -> void:
+ print("was ordered to set up!")
+ _place(false)
+
+
+func _onmoving(id, x, y):
+ rpc_unreliable("move", id, x, y)
+
+
+func _onmoved(id, x, y):
+ rpc("move", id, x, y)
+
+
func _addpiece(kind: String, black: bool, off: int) -> void:
+ _ids += 1
var piece := preload("res://src/piece/piece.tscn").instance()
- piece.setup(kind, black)
+ piece.setup(_ids, kind, black)
+ piece.connect("moving", self, "_onmoving")
+ piece.connect("moved", self, "_onmoved")
$"pieces".add_child(piece)
var y := 70
if not black:
func _on_setup_click() -> void:
+ _place(true)
+
+
+func _place(send: bool) -> void:
+ if send:
+ rpc("setup")
+
# remove and re-place (pun intended) all the pieces
+ _ids = 0
for child in $"pieces".get_children():
$"pieces".remove_child(child)
child.queue_free()
_addpiece(p, true, off)
_addpiece(p, false, off)
off += 63
+
+
+func _fai_cose() -> void:
+ rpc("ping")
blob - 6b431e50b18e4357693de5635c0859a7315c7aba
blob + 332466b73ad03d0d10dace36ce8c7c57d3bfd534
--- src/board.tscn
+++ src/board.tscn
[node name="pieces" type="Node2D" parent="."]
+[node name="Button" type="Button" parent="."]
+margin_left = 109.0
+margin_top = 165.0
+margin_right = 198.0
+margin_bottom = 185.0
+text = "PING/PONG"
+
[connection signal="button_down" from="setup" to="." method="_on_setup_click"]
+[connection signal="pressed" from="Button" to="." method="_fai_cose"]
blob - 70121c14fa0b8cf78ea80f8cd4a2ea4ba06c921f
blob + d1fdf799b04abbcc9704a3331fd573a08dc2bd86
--- src/menu.gd
+++ src/menu.gd
get_tree().connect("server_disconnected", self, "_server_disconnected")
-func _player_connected(id):
- print("player_connected ", id)
+func _peer_connected(id):
+ print("peer_connected ", id)
rpc_id(id, "ping")
-func _player_disconnected(id):
- print("player_disconnected ", id)
+func _peer_disconnected(id):
+ print("peer_disconnected ", id)
func _connected_ok():
print("connected!")
+
func _connected_fail():
print("failed to connect D:<")
+
func _server_disconnected():
print("disconnected!!!!! D:<<")
func _on_clientz_click() -> void:
var peer := NetworkedMultiplayerENet.new()
- var err := peer.create_client($VBoxContainer/HBoxContainer/ipaddr.text, SERVER_PORT)
+ var ip :String = $VBoxContainer/ipaddr.text
+ var err := peer.create_client(ip, SERVER_PORT)
if err != OK:
print("WOOOOPS, failed with error ", err)
return
+ print("OK! I should be connected?")
get_tree().network_peer = peer
goto_board()
blob - c6b3bd8017ac17cd1d3e351f03931f5720c378e3
blob + 9fb0fec056a3f5322593ef0311db992fb59f42a6
--- src/piece/piece.gd
+++ src/piece/piece.gd
extends StaticBody2D
var hold := false
+var id : int
-func setup(kind: String, black: bool) -> void:
-# var t := "white"
-# if black:
-# t = "white"
-# var sprite = Pieces.piece[kind][t]
+signal moving(id, x, y)
+signal moved(id, x, y)
+
+
+func setup(_id: int, kind: String, black: bool) -> void:
+ id = _id
var sprite = Pieces.getpiece(kind, black)
$sprite.texture = sprite
func _input(event: InputEvent) -> void:
if hold and event is InputEventMouseMotion:
position = event.position
+ emit_signal("moving", id, position.x, position.y)
func _on_button_down() -> void:
func _on_button_up() -> void:
hold = false
+ emit_signal("moved", id, position.x, position.y)