下载 App

关于这次聚光灯程序老师有话说!

2025/11/1078 浏览技术交流
参加这次聚光灯gamejam比赛,作为程序我在写代码的时候踩了两个坑,也摸索出了解决方法,以及一个对象池应用的心得,来跟大家分享一下。
       一是摸索出了如何处理玩家在连续单格地块上的地面判断问题。初期代码中,判断玩家是否处于地面是通过isGround这个bool来确定的,他在Unity碰撞响应函数中被修改(OnCollisionEnter2D -> true;OnCollisionExit2D -> false)。这个做法带来了一个问题,玩家在连续单格地块上移动时对于其是否在地面的判断会有bug。举个例子,假设在玩家前进方向上有A、B、C三个连续单格方块,当玩家前进时,会先进入B地块,之后离开A地块,这个时刻玩家站在B地块上而没有进入C地块,最后的碰撞响应函数是A地块的OnCollisionExit2D,即isGround为false,进而会导致有关地面判断的相关行动与预期不符。解决办法是,把玩家的地面判断试做类似buff一样的东西,在玩家控制脚本中开一个列表,当玩家接触地块时,把地块的引用添加到列表中,玩家控制器通过判断列表中是否有元素来判断自己是否处在地面上。
       二是摸索出了玩家攻击范围会随玩家移动,而产生超范围判定的问题的解决方法。初期实现中,我将攻击范围作为玩家的子物体,默认隐藏,玩家攻击时激活该物体并进行碰撞检测和伤害结算,之后隐藏,如此往复。在此场景下,如果玩家在攻击时移动,攻击范围所依附的物体也就跟着玩家移动,从而会产生一个更大的、非预期的攻击范围。对于这个问题,我把攻击范围单独抽出来作为预制体,把他的引用给到玩家,玩家每次攻击时在攻击时刻的位置生成一个攻击范围物体,这个物体在进行完碰撞检测和伤害结算之后会销毁自己,这样一来就不会有攻击范围随着玩家移动而扩大的问题了。
       三是对象池的应用。在我们的游戏中,美术关和boss小美的战斗中,小美会向玩家发射错误贴图的导弹,这个贴图在设定上是来自于背景,每发射一次,背景就会因为"贴图bug"而丢失贴图。一方面,丢失的贴图总量固定,另一方面,boss小美每个阶段倒地时如果没被玩家击败,又会恢复行动向玩家发射导弹,因为这些在导弹上的、来自于背景的贴图实际上是场景中物体的引用,那么这个时候就会有个问题,我如何保证贴图的循环利用?于是我使用了对象池。首先,我声明了两个列表作为对象池列表,boss小美每个阶段会清空自己的所有对象池列表;接着,boss小美在"扣去"背景贴图并生成导弹时,会将改导弹整体的引用存入对象池列表1,直到达到本阶段的攻击次数上限;最后,小美每次倒地后恢复行动,会调换开启列表和结束列表(即调换对象池列表1和2的作用),发射出去的导弹会存入开启列表而从关闭列表中移除,如此往复。
猜你想搜
聚光灯游戏创作挑战 地面判断bug解决
坐骑系统开发避坑指南:4阶分级+内丹养成,让玩家肝得心甘情愿截图
坐骑系统开发避坑指南:4阶分级+内丹养成,让玩家肝得心甘情愿
坐骑不仅是代步工具,更是玩家的“战力伙伴”。这次更新的坐骑系统(凡兽→灵兽→珍兽→仙兽),从设计到落地踩了不少坑,最终形成了“固定基础属性+随机资质+内丹升级”的闭环,分享给大家可直接复用的思路! 一、先踩坑:初期设计的3个致命问题 1. 只分阶不分属性,玩家觉得“换皮不换质”,最早坐骑种类少,获取毫无成就感; 2. 资质随机太极端,非酋玩家弃坑:初始版本资质区间跨度大,有的凡兽比灵兽还强
4 赞
1 回复
开源一Unity小框架,高效单例与模块化设计,减少样板代码截图
开源一Unity小框架,高效单例与模块化设计,减少样板代码
ProjectBaseUnity 是一个轻量的 Unity 小框架 介是我根据过往学习和上班拉磨中写的小框架, 在GJ和小游戏中使用过 核心是高效的单例与模块化设计,可以少写样板代码。 面板管理、事件总线、资源加载、对象池、音频和数据存储都开箱即用, 几十分钟就能把原型跑起来,适合小型项目和game jam 的快节奏开发。 易改易扩展[心动小镇_点赞],保持灵活度的同时也有规范可依,既能快速搭建也
精华
16 赞
2 回复
局地压制战棋游戏地图的实现截图
局地压制战棋游戏地图的实现
1底层的A*寻路算法 创建两个脚本: Node:表示网格中的一个节点。 AStarPathfinding:管理网格和A*算法。 世界坐标位置 网格中的行列索引 是否可通过(障碍物) 相邻节点列表 从起点到当前节点的代价(G代价) 从当前节点到终点的估计代价(H代价) 总代价(F代价 = G + H) 父节点(用于回溯路径) 2基于对A*算法的Gameplay设计 调用地图底层的接口,再次封装地图功
7 赞
2 回复
不写代码不画图,1人21天用AI开发游戏截图
不写代码不画图,1人21天用AI开发游戏
👋 这是一篇用AI开发游戏的教程贴,以作者我本次参加聚光灯比赛为例~ 阅读完,你将收获: AI对游戏开发助力的点在哪? 如何丝滑地使用AI来进行游戏开发? AI在游戏开发中的局限在哪? 目录: 游戏创意 💡:还是得靠“人脑” 游戏方案 🗺️:人类种“种子”AI让它“发芽” 开发阶段 👨‍💻:让AI“小步快跑” 美术设计 🎨:搞定“风格一致性” 游戏音效 🎵:AI的“代码电子音” 总结反思 🤔:AI
精华
9 赞
2 回复
有关《因果》的技术详解截图
有关《因果》的技术详解
#聚光灯游戏开发心得接力 在《因果》中我使用了一系列不常用的思路来制作游戏,希望我现在的思路在以后还是有帮助 首先想分享的是碰撞检测 一般来说,进行碰撞检测常用的方案是碰撞体,即检测玩家是否与障碍物进行碰撞 在我上一个游戏《T.B.I》中使用的就是这种技术 另外说明一下,我使用的是h5技术(html+css+javascript)来制作游戏,目的是为了实现跨平台打包和分发,在pc端使用nw.js
精华
5 赞
04:38
经验分享:每个开发者都应该知道,如何快速获取资源开始游戏原型截图
经验分享:每个开发者都应该知道,如何快速获取资源开始游戏原型
[表情_微笑]各位好,在下不善打字,录个视频讲述一下,可能大家都知道免费素材获取大法。 还请支持我们的游戏,感谢感谢[表情_狗头] 视频中提到的素材和代码,请到粉丝群(109751331)群文件下载。 #消除游戏 #游戏开发 #聚光灯gamejam #聚光灯游戏开发心得接力 #聚光灯gamejam开发者日志
精华
5 赞
1 回复
第一关的地板截图
第一关的地板
其实其实作为一个初中生而言,时间是比较有限的 在一开始我们想设置的是地板塌陷,玩家在前面跑,地板在后面这种玩法 但很可惜因为技术的原因,还有当玩家进入游戏的时候,会有几秒的卡顿时间当人物进入游戏以后丢地板会造成玩家掉入虚空并且复活以后会一直重复这样的操作 所以我所以我们采用了最简单,最普效,最传统的方法,就是挖坑 对,就是挖坑 其实在一开始的第一关地板中是很明显的,可以看出地板的颜色哪里有坑 但是
5 赞
<赛博诊所>开发复盘:目标、规则与思路截图
<赛博诊所>开发复盘:目标、规则与思路
经过21天的鏖战,终于在倒数第二天把最终版本提交上去了。最后在平台上把游戏从头测了一遍,没遇到什么大问题,才终于松了一口气。 趁着记忆还热乎,想着复盘一下,记录这段经历,也分享一些我的思考。 我们做的是一款赛博朋克风格的点触类解谜游戏。基础设定是玩家扮演一位医生,通过线上连接潜入病人潜意识,治疗病人因植入体引发的赛博精神病。 从团队优势出发 我们团队有6个人,大多数成员身兼两职。我是美术出身,最近
精华
7 赞
2 回复
01:33
【聚光灯游戏推荐第三期】游戏荒?别划走!截图
【聚光灯游戏推荐第三期】游戏荒?别划走!
#发现好游戏 #平台跳跃 #猫 #人工智能 #推箱子 #反转 #发现好游戏 #聚光灯gamejam开发者日志 #聚光灯游戏开发心得接力
4 赞
分享超级简单的ai生图方法,来自8号秘事制作经验截图
分享超级简单的ai生图方法,来自8号秘事制作经验
分享超级简单的ai生图方法。来自8号秘事制作经验 在上个月的8号秘事开发过程中,由于大家都是社畜,平时没有太多的时间,美术们在画完主场景后,没有太多时间去画一些交代剧情的美术资源。 我自己就通过搜索找到了一个非常简单的ai生图的方法,速度快效率高,而且不用花钱。虽然最终效果一般,但是综合来说,这还是个时间性价比很高的方法。 一.操作方法(附上神秘代码) 下面我来介绍使用方法,首先进入chatgpt
21 赞
1 回复