让NPC更聪明:DOOM-style-Game中的PathFinding寻路算法实现
让NPC更聪明DOOM-style-Game中的PathFinding寻路算法实现【免费下载链接】DOOM-style-GameDOOM-style 3D (raycasting) Game in Python Pygame项目地址: https://gitcode.com/gh_mirrors/do/DOOM-style-Game在经典的DOOM风格游戏中NPC的智能行为直接影响游戏体验。DOOM-style-Game作为一款基于Python Pygame开发的3D射线投射游戏通过精巧的寻路算法让敌人拥有了追逐玩家的能力。本文将深入解析游戏中NPC寻路系统的实现原理带你了解如何用代码赋予虚拟角色思考的能力。 游戏中的寻路挑战想象一下当你在游戏迷宫中穿梭时怪物能够绕过墙壁、穿过房间始终对你紧追不舍——这背后正是寻路算法在发挥作用。在DOOM-style-Game中pathfinding.py文件实现了这一核心功能让NPC从呆呆地站着变成聪明的猎手。图1游戏中的NPC正在利用寻路算法追逐玩家alt: DOOM-style-Game 3D游戏NPC寻路效果 PathFinding类寻路系统的核心游戏的寻路逻辑封装在PathFinding类中位于pathfinding.py文件的第5行。这个类通过三个关键方法实现了完整的寻路功能class PathFinding: def __init__(self, game): self.game game self.map game.map.mini_map self.ways [-1, 0], [0, -1], [1, 0], [0, 1], [-1, -1], [1, -1], [1, 1], [-1, 1] self.graph {} self.get_graph()地图预处理构建导航网格在寻路开始前游戏需要先了解地图结构。get_graph()方法第43行将游戏地图转换为导航网格只保留可通行区域def get_graph(self): for y, row in enumerate(self.map): for x, col in enumerate(row): if not col: # 如果不是墙壁 self.graph[(x, y)] self.graph.get((x, y), []) self.get_next_nodes(x, y)这个过程就像给NPC绘制了一张可通行区域地图标记出所有可以移动的位置。 BFS算法NPC的思考方式游戏采用广度优先搜索(BFS)算法作为核心寻路策略。BFS特别适合网格类游戏能够找到两点之间的最短路径def bfs(self, start, goal, graph): queue deque([start]) visited {start: None} while queue: cur_node queue.popleft() if cur_node goal: # 到达目标位置 break next_nodes graph[cur_node] for next_node in next_nodes: # 检查是否未访问且没有其他NPC if next_node not in visited and next_node not in self.game.object_handler.npc_positions: queue.append(next_node) visited[next_node] cur_node return visitedBFS算法的工作原理就像洪水扩散从起点开始逐层探索所有可达区域直到找到目标位置。这种方式保证了NPC总能找到最短路径追逐玩家。 路径生成从决策到行动有了BFS的搜索结果get_path()方法第14行将生成NPC实际移动的路径lru_cache def get_path(self, start, goal): self.visited self.bfs(start, goal, self.graph) path [goal] step self.visited.get(goal, start) while step and step ! start: path.append(step) step self.visited[step] return path[-1]这里使用lru_cache装饰器缓存路径计算结果避免重复计算显著提升了游戏性能。最终返回的路径点指导NPC一步步向玩家靠近。 算法优化让NPC更聪明为了让NPC行为更自然游戏还实现了多项优化8方向移动通过self.ways定义的8个移动方向第9行让NPC可以斜向移动路径更平滑动态障碍检测第35行检查self.game.object_handler.npc_positions避免NPC之间互相阻挡缓存机制lru_cache装饰器减少重复计算提升性能 实际应用NPC如何使用寻路功能在游戏中NPC对象定义在npc.py会定期调用寻路系统获取移动目标# NPC类中的移动逻辑示意 class NPC: def update(self): self.target self.game.pathfinding.get_path(self.pos, self.player.pos) self.movement(self.target)这种设计让每个NPC都能独立思考根据玩家位置动态调整移动路线创造出紧张刺激的游戏体验。 总结寻路算法如何提升游戏体验DOOM-style-Game通过简洁而高效的寻路实现展示了如何用基础算法创造出令人印象深刻的AI行为。核心要点包括使用BFS算法保证最短路径地图预处理构建导航网格动态障碍检测避免NPC碰撞缓存机制提升性能通过pathfinding.py中不到50行的核心代码游戏成功赋予了NPC智能追逐能力为玩家带来了更具挑战性的DOOM风格体验。如果你也想开发自己的游戏AI这个项目的寻路实现无疑提供了一个优秀的参考范例。只需几行代码就能让你的游戏角色活起来【免费下载链接】DOOM-style-GameDOOM-style 3D (raycasting) Game in Python Pygame项目地址: https://gitcode.com/gh_mirrors/do/DOOM-style-Game创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

年薪50W,AI产品经理薪资真相!0经验、不懂技术可以转吗?

年薪50W,AI产品经理薪资真相!0经验、不懂技术可以转吗?

今年,无论是一些头部厂商,中小厂商,从海外到国内,大中小公司都在积极拥抱讨论AI和拥抱AI。AI 相关的人才缺口已达 500 万,其中AI产品经理需求旺盛,薪资中位数再创新高,36k/月。如果是在头部公司…

2026/7/30 22:37:09 阅读更多 →
vue-notifications未来展望:即将推出的新特性与改进

vue-notifications未来展望:即将推出的新特性与改进

vue-notifications未来展望:即将推出的新特性与改进 【免费下载链接】vue-notifications Vue.js agnostic library for non-blocking notifications 项目地址: https://gitcode.com/gh_mirrors/vu/vue-notifications vue-notifications作为一款Vue.js非阻塞通…

2026/7/30 22:37:09 阅读更多 →
一对多 TCP 服务器与客户端流量控制系统开发文档

一对多 TCP 服务器与客户端流量控制系统开发文档

一对多 TCP 服务器与客户端流量控制系统开发文档 1. 文档目的 本文档为作者自己的练习项目,本人是一名 C# 和 WPF 初学者,本文从创建解决方案开始,逐步完成一个仅在本机运行的“一台服务器、多台客户端”TCP 通信项目。 完成后,你…

2026/7/30 22:36:09 阅读更多 →

最新新闻

智元移动操作面试,端着满杯水走路怎么保证不洒

智元移动操作面试,端着满杯水走路怎么保证不洒

上篇写完智元感知面试之后,群里有个同学说了一个很有画面感的场景:"想象一下人形机器人端着一杯满水从厨房走到客厅,水还不能洒出来。这得同时搞定导航、步态控制和手臂稳定,难度是指数级的。"没错,这就是导航与移动操作工程师要解决的问题——把导航(走到目标…

2026/7/30 22:45:12 阅读更多 →
智元感知面试,杂乱桌面上抓目标物体的pipeline你能画出来吗

智元感知面试,杂乱桌面上抓目标物体的pipeline你能画出来吗

上篇聊完VLA模型之后,后台有读者说:"大模型听着很厉害,但没有底层的感知模块,大模型连桌上的杯子在哪都找不到。"这话说得太对了。感知算法工程师在智元的团队里扮演的是"机器人的眼睛"这个角色——不管上层的大模型多聪明,如果感知模块给的信息不准,…

2026/7/30 22:45:12 阅读更多 →
mlx-vlm 0.6+适配指南:让Unlimited-OCR-mxfp8发挥最佳性能

mlx-vlm 0.6+适配指南:让Unlimited-OCR-mxfp8发挥最佳性能

mlx-vlm 0.6适配指南:让Unlimited-OCR-mxfp8发挥最佳性能 【免费下载链接】Unlimited-OCR-mxfp8 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Unlimited-OCR-mxfp8 Unlimited-OCR-mxfp8是一款专为Apple Silicon优化的高性能OCR模型&#xf…

2026/7/30 22:45:12 阅读更多 →
便携重力净水器选购指南:从滤芯参数到野外实测的完整评估框架

便携重力净水器选购指南:从滤芯参数到野外实测的完整评估框架

便携重力净水器是户外水源安全的最后一道防线。与泵式或吸管式净水器不同,重力系统利用水袋悬挂产生的水压驱动水流通过滤芯,无需手动操作即可持续产水,适合营地集中供水或多人团队使用。但市面上的产品从百元级到千元级不等,滤芯…

2026/7/30 22:45:12 阅读更多 →
一个职校老师的真实困境:买了 50 万的 AI 实训设备,学生只会点“开始训练”—— 职业院校 AI 实训室“有设备没教学”的困境与破局之道

一个职校老师的真实困境:买了 50 万的 AI 实训设备,学生只会点“开始训练”—— 职业院校 AI 实训室“有设备没教学”的困境与破局之道

一、一个职校老师的惊慌时刻“刘老师,你们学校的 AI 实训室建好半年了,效果怎么样?”“哎……设备都很好,就是……”刘老师欲言又止,“学生们现在基本只会一个操作——点 ‘开始训练’。”这不是一个编出来的故事。202…

2026/7/30 22:45:11 阅读更多 →
如何用Python轻松备份QQ空间:GetQzonehistory完整使用指南

如何用Python轻松备份QQ空间:GetQzonehistory完整使用指南

如何用Python轻松备份QQ空间:GetQzonehistory完整使用指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory GetQzonehistory是一个简单易用的Python工具,能够帮助…

2026/7/30 22:44:11 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻