main.gd 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. extends Node2D
  2. var Map = preload("Map.tscn")
  3. var Player = preload("Player.tscn")
  4. var RemotePlayer = preload("RemotePlayer.tscn")
  5. var mpclient = preload("lib/client_ui.tscn")
  6. # Declare member variables here. Examples:
  7. # var a = 2
  8. # var b = "text"
  9. var map
  10. var player
  11. var remoteplayers = {}
  12. # Called when the node enters the scene tree for the first time.
  13. func _ready():
  14. map = Map.instance()
  15. map.init()
  16. map.getMap("https://hacknplay.org/maps/test/main.json")
  17. map.name="Map"
  18. map.owner=self
  19. add_child(map, true)
  20. spawn_player()
  21. mpclient = mpclient.instance()
  22. add_child(mpclient)
  23. #get_tree().set_network_peer(mpclient.client.rtc_mp)
  24. mpclient.client.rtc_mp.connect("peer_connected", self, "spawn_remotePlayer")
  25. mpclient.client.rtc_mp.connect("peer_disconnected", self, "remove_remotePlayer")
  26. mpclient.client.connect("connected", self, "set_id")
  27. # Called every frame. 'delta' is the elapsed time since the previous frame.
  28. #func _process(delta):
  29. # pass
  30. func spawn_player():
  31. print(get_children())
  32. while not map.mapImported:
  33. yield(Engine.get_main_loop(), "idle_frame")
  34. #print(get_node("Map/TMX/start").tile_set.get_used_tiles())
  35. #breakpoint
  36. player = Player.instance()
  37. player.owner = self
  38. player.name = "Player"
  39. get_node("Map/TMX/floorLayer").add_child(player, true)
  40. get_node("Map/TMX/floorLayer/Player/Camera2D").current = true
  41. func set_id(id):
  42. get_node("Map/TMX/floorLayer/Player").id = id
  43. func spawn_remotePlayer(id):
  44. var remoteplayer = RemotePlayer.instance()
  45. remoteplayer.owner = self
  46. remoteplayer.name = "Player "+str(id)
  47. remoteplayer.id = id
  48. get_node("Map/TMX/floorLayer").add_child(remoteplayer, true)
  49. remoteplayers[id] = remoteplayer
  50. func remove_remotePlayer(id):
  51. print("removing player", id)
  52. remoteplayers[id].queue_free()
  53. func disconnected():
  54. for remoteplayer in remoteplayers:
  55. remove_remotePlayer(remoteplayer.id)