数码产品网站建设策划书w3c网站代码标准规范
数码产品网站建设策划书,w3c网站代码标准规范,重庆梁平网站建设公司,重庆最有效的网站推广今天继续第一个游戏练习, 创建一个主菜单, 并将它设置为默认运行场景, 并创建基础的多人Host服务器和Client连接
创建主菜单
创建一个根节点为Control的main_menu.tscn场景
结构如下添加的两个按钮用于创建Host服务器和Client客户端
将main_menu.tscn设置为项目默认场景: Proje…今天继续第一个游戏练习, 创建一个主菜单, 并将它设置为默认运行场景, 并创建基础的多人Host服务器和Client连接创建主菜单创建一个根节点为Control的main_menu.tscn场景结构如下添加的两个按钮用于创建Host服务器和Client客户端将main_menu.tscn设置为项目默认场景: Project - Project Settings - Run - Main Scene绑定脚本脚本处理按钮事件, 暂时只打印点击事件extends Control onready var host_button: Button %HostButton onready var join_button: Button %JoinButton func _ready() - void: host_button.pressed.connect(_on_host_pressed) join_button.pressed.connect(_on_join_pressed) func _on_host_pressed() - void: print(host pressed) func _on_join_pressed() - void: print(join pressed)基本的服务器和客户端创建修改Host和Join按钮的逻辑, 使用Godot中提供的高级网络接口创建服务器和客户端extends Control const PORT : int 34560 onready var host_button: Button %HostButton onready var join_button: Button %JoinButton func _ready() - void: host_button.pressed.connect(_on_host_pressed) join_button.pressed.connect(_on_join_pressed) multiplayer.peer_connected.connect(_on_peer_connected) func _on_host_pressed() - void: var server_peer : ENetMultiplayerPeer.new() server_peer.create_server(PORT) multiplayer.multiplayer_peer server_peer func _on_join_pressed() - void: var client_peer : ENetMultiplayerPeer.new() client_peer.create_client(127.0.0.1, PORT) multiplayer.multiplayer_peer client_peer func _on_peer_connected(id: int) - void: print(my peer [%s] connected: %s % [multiplayer.get_unique_id(), id])Host和Client都监听多人接口的peer_connected信号, 在信号处理时同时打印当前peer的id, 以及新连入的peer id观察多人连接时peer_connected的触发方式先打开多客户端示例支持 Debug - Customize … - Enable Multiple Instances, 设置为3再次运行游戏, 会同时打开3个实例第一步: 在第一个游戏实例中点击Host, 创建服务器, 无打印第二步: 在第二个游戏实例窗口点击Client, 连接服务器, 发现Host和Client都出现了打印my peer [1234621383] connected: 1 my peer [1] connected: 1234621383第三步: 在第三个游戏实例窗口中点击Client, 再观察新增的打印内容my peer [834066640] connected: 1 my peer [1] connected: 834066640 my peer [1234621383] connected: 834066640 my peer [834066640] connected: 1234621383众所周知, Server的peer id为1, 根据打印结果可得知当一个peer连接到服务器时, 该peer自身会收到来自每一个其余peer(包含服务器)的peer_connected事件, 而其余每一个peer(包括服务器)也都会收到来自该peer的peer_connected事件