Godot游戏练习01-第2节-创建主菜单
今天继续第一个游戏练习, 创建一个主菜单, 并将它设置为默认运行场景, 并创建基础的多人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事件

相关新闻

自然语言处理 —— 语言资源

自然语言处理 —— 语言资源

本文摘要: 本文系统介绍了自然语言处理中的各类语言资源。重点阐述了语料库的设计要素,包括代表性、平衡性、抽样方法和规模控制,并以布朗语料库、英国国家语料库等为例展示了语料库规模的发展历程。详细解析了树库语料库的类型(语…

2026/7/5 16:03:49 阅读更多 →
IX8024@ACP#产品规格参数详解,应用场景分享

IX8024@ACP#产品规格参数详解,应用场景分享

IX8024 是一款 24 通道、13 端口的 PCIe 4.0 交换芯片,主打高带宽、高可靠、低成本,适合服务器、AI、存储、工业、车载等高速 IO 扩展场景。一、核心规格参数1. 基础架构与协议协议:兼容 PCIe Gen1/2/3/4,最大速率 16Gbps&#xf…

2026/5/17 2:46:08 阅读更多 →
6个月免费学习路线图:从Python小白到AI智能体开发高手(收藏版)

6个月免费学习路线图:从Python小白到AI智能体开发高手(收藏版)

本文为AI零基础学习者提供了6个月免费学习路线图,从Python基础、API和机器学习概念入手,逐步深入AI智能体的七大核心组件(感知、推理、记忆、规划、工具使用、学习与适应、通信)。内容涵盖主流框架入门、记忆管理、工具调用、多智…

2026/7/5 10:24:39 阅读更多 →

最新新闻

YOLO26 改进 - C2PSA   C2PSA融合DML动态混合层(Dynamic Mixing Layer)轻量级设计优化局部细节捕获与通道适应性,提升超分辨率重建质量

YOLO26 改进 - C2PSA C2PSA融合DML动态混合层(Dynamic Mixing Layer)轻量级设计优化局部细节捕获与通道适应性,提升超分辨率重建质量

前言 本文介绍了动态混合层(DML),并将相关改进模块集成进YOLO26。DML是SRConvNet核心组件,用于解决轻量级图像超分辨率任务中特征捕捉和通道适应性问题。它通过通道扩展拆分、多尺度动态深度卷积、通道洗牌与融合等步骤&#xff…

2026/7/6 3:22:03 阅读更多 →
一碰自动计分,识别零误差!FSV9563 远距离 NFC 模组,台球馆智能化改造优选方案

一碰自动计分,识别零误差!FSV9563 远距离 NFC 模组,台球馆智能化改造优选方案

中文关键词:NFC 智能台球计分、FSV9563、NFC 自动识别台球、落球自动计分、远距离 NFC 感应 10CM、台球馆无人计分、台球桌智能化改造、商用台球自动统计、家用台球计分模组、NFC 台球标签、台球免人工计分、游乐设备智能检测英文关键词:NFC billiards a…

2026/7/6 3:22:03 阅读更多 →
Python爬虫经典案例第71篇:加密货币平台爬取:CoinGecko数据采集实战

Python爬虫经典案例第71篇:加密货币平台爬取:CoinGecko数据采集实战

1. 引言 加密货币市场近年来发展迅速,成为金融科技领域的热门话题。CoinGecko作为全球最大的加密货币数据平台之一,提供了超过13,000种加密货币的实时数据,包括价格、市值、交易量、链上数据等。对于加密货币投资者、量化交易员和区块链研究者而言,CoinGecko数据具有重要价…

2026/7/6 3:20:03 阅读更多 →
2026 最新 GPT 充值完整教程:从基础权益到 Pro 顶配升级,解锁全部 AI 高阶能力

2026 最新 GPT 充值完整教程:从基础权益到 Pro 顶配升级,解锁全部 AI 高阶能力

2026 最新 GPT 充值完整教程:从基础权益到 Pro 顶配升级,解锁全部 AI 高阶能力随着大模型技术持续迭代,GPT 全系功能不断更新,免费版本的算力配额、模型能力、使用场景限制越来越明显。无论是日常办公、文案创作、学术研究&#x…

2026/7/6 3:18:02 阅读更多 →
第五次作业提交

第五次作业提交

CSDN博客完整文章## 一、实验环境 远程连接工具:Xshell 操作系统:Ubuntu Linux 实验说明:所有命令均在Xshell终端实操,配套运行截图记录结果,梳理完整命令知识框架。 第一部分:Shell文本处理命令知识框架 1…

2026/7/6 3:18:02 阅读更多 →
密码学在区块链技术中的应用研究

密码学在区块链技术中的应用研究

开篇前言大家好,本次密码学与信息安全课程设计围绕密码学在区块链技术中的应用完成完整调研、方案设计与验证。很多人只知道区块链是分布式账本,却不知道整套区块链可信体系完全建立在各类密码学原语之上。 本文严格按照课程设计目录完整展开&#xff0c…

2026/7/6 3:18:02 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻