尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

揭秘CardsAgainst:零服务器、2台iPhone即开即玩的P2P恶搞卡牌游戏完全指南

揭秘CardsAgainst:零服务器、2台iPhone即开即玩的P2P恶搞卡牌游戏完全指南 揭秘CardsAgainst零服务器、2台iPhone即开即玩的P2P恶搞卡牌游戏完全指南【免费下载链接】CardsAgainstAn iOS game for horrible people项目地址: https://gitcode.com/gh_mirrors/ca/CardsAgainstCardsAgainst 是一款专为 iOS 打造的P2P 恶搞卡牌游戏它复刻了著名整蛊桌游《Cards Against Humanity》的黑白卡牌玩法无需注册、零服务器、两台 iPhone 连上同一 Wi-Fi 即开即玩。整款应用使用 Swift 4 开发基于苹果原生的 Multipeer Connectivity 框架实现设备间直连通信是学习 iOS 局域网多人游戏的绝佳开源样本。为什么零服务器的P2P卡牌游戏这么香传统多人手游必须依赖云端服务器转发数据而 CardsAgainst 采用P2P点对点局域网直连方案无需后端没有账号、没有登录、没有服务器成本⚡即连即玩同一 Wi-Fi 下设备自动发现无需手动输入房间号隐私友好牌局数据只在你和朋友的手机构成的小网络里流转这套能力来自两个核心组件PeerKit位于Vendor/PeerKit/事件驱动、零配置的 Multipeer Connectivity 封装负责设备发现与连接ConnectionManagerCardsAgainst/Controllers/ConnectionManager.swift应用层通信管理器定义了startGame、answer、vote、nextCard、endGame等 6 种游戏事件把所有牌局操作打包成Data在设备间广播。 对新手来说这个仓库是一个很好的教材你可以清楚看到设备发现 → 事件定义 → 数据序列化 → 广播的完整 P2P 通信链路。快速上手2台iPhone三步入局 CardsAgainst 把开始游戏简化到了极致主菜单只有一个按钮两台 iPhone 连接同一 Wi-Fi分别打开 CardsAgainst主机端打开后菜单页的玩家列表会自动刷新一旁的设备MenuViewController.swift通过ConnectionManager.onConnect监听连接事件点击Start Game按钮主机抽取 1 张黑卡并给每位玩家发 10 张白卡游戏即刻开始。相关逻辑集中在 View Controllers/MenuViewController.swift 的startGame方法中——主机先本地抽卡再通过sendEventForEach把黑卡同步给所有对手。玩法流程黑白卡牌的完整一轮 游戏规则与实体桌游一致GameState.swiftCardsAgainst/Models/GameState.swift中仅用 3 个状态就概括了整局流程游戏阶段枚举状态玩家在做什么出牌pickingCard从 10 张白卡中选 1 张配上黑卡填空等待waitingForOthers等待其他玩家提交答案投票pickingWinner翻牌 → 全场大笑 → 投票选出最佳回答得票最高者获得 1 分随后进入下一轮nextCard事件。整个抽卡 → 等待 → 投票的状态机由GameViewController.swift共 660 行驱动是仓库里最值得阅读的文件。卡牌内容在哪如何解锁完整牌库 所有卡牌都是 JSON 数据存放在CardsAgainst/Assets/下cards_pg13.jsonPG-13 温和版默认启用一小套绝不可能冒犯任何人的卡牌cards.json完整经典牌库包含原汁原味的horrible内容。切换方式非常直接——打开CardsAgainst/Controllers/CardManager.swift把第 11 行的pg13标志从true改成false即可。卡牌的加载、洗牌takeRandom耗尽后自动重新洗牌都在这个文件里完成结构清晰易读。项目结构速览 ️仓库组织得非常教科书式适合新手模仿Models/Card黑白卡、Answer、Vote、Player、GameState全部实现MPCSerializable协议以便网络传输Controllers/ConnectionManagerP2P 通信、CardManager抽卡发牌、WhiteCardFlowLayout白卡瀑布流布局View Controllers/MenuViewController大厅、GameViewController牌桌Views/PlayerCell、WhiteCardCell、TouchableLabelVendor/三个第三方库 —— PeerKit组网、Cartography代码化布局、SVProgressHUD提示浮层。构建与运行 ️使用 Xcode 打开项目文件CardsAgainst.xcodeproj选择 iPhone 目标需支持 Multipeer Connectivity 的设备模拟器无法组网直接编译运行即可。由于依赖库已内置在Vendor/目录中无需额外配置依赖管理。写在最后 ⭐CardsAgainst 用不到 2000 行 Swift 代码证明了一件事多人游戏不一定需要服务器。如果你想学 Multipeer Connectivity 实战、想给聚会准备一个损友限定的整蛊游戏或者只是好奇 P2P 通信如何落地这个仓库都值得完整读一遍——毕竟它自谦为 An iOS game for horrible people而你的朋友们一定会很享受的 【免费下载链接】CardsAgainstAn iOS game for horrible people项目地址: https://gitcode.com/gh_mirrors/ca/CardsAgainst创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表