刷新
使用 Kotlin 语言开发 NeoForge 模组

博主头像 前言 Kotlin 是由 JetBrains 推出的一门基于 JVM 平台的编程语言,引入了许多不同于 Java 的先进概念以及语法糖,极大地提高了开发人员的编程效率,广受各路 Java 开发者推崇。但由于 NeoForge 官方并未就使用 Kotlin 开发模组提供支持,使得精通 Kotlin 的 ...

python实现扑克游戏 - 抽鬼牌 和 21点

博主头像 poker_games python实现扑克游戏 : 抽鬼牌 和 21点 - Python Implementation of Poker Games : Drawing Ghost Cards and Blackjack poker模块 首先,定义一个扑克模块,后面的包括以后的扑克牌游戏,都可以调 ...

Unity的Package库在IDE里不显示API注释的解决方法

博主头像 当你在代码里使用Package库的API的时候,比如Addressable和Unity.Entities等等,以Visual Studio为例,鼠标放到API上,会发现不显示注释: 然而按F12访问源代码,会发现代码里面是有注释的,而且Unity自己的包注释会非常的详细(Unity的API文档就是直 ...

[Unity]多用对象池

博主头像 1.介绍 游戏开发中我们会频繁使用到预制体来优化内存,优化性能,增强游戏表现。 当要使用的预制体次数很多,创建销毁很频繁时,为了方便管理、提升性能,我们需要一个对象池。 一般使用单例+一个预制体+一个存储类型就能做出一个简单的对象池。 但当我们需要对很多种物体进行对象池管理时、当我们需要对很多类型的 ...

【Unity】动画播放与GameObject.SetActive()的坑

众所周知,在停止播放一个物体的动画后,该动画对物体的修改会被“撤销”,物体会回到播放动画之前的默认状态。 然而最近遇到了“停止播放动画后物体无法返回正确的默认状态”的问题。。。 测试后发现原来是中途有开关GameObject的行为。在GameObject被SetActive(false)时,该Gam ...

Libgdx游戏开发(6)——游戏暂停

博主头像 原文: Libgdx游戏开发(6)——游戏暂停-Stars-One的杂货小窝 暂停也是一个游戏的必要功能了,本文研究了Libgdx实现游戏暂停 例子以桌面端游戏实现讲解为主,至于移动端,可能之后会进行补充... 本文最终实现的就是 按下esc暂停,之后会出现一个界面提示,表示当前已经暂停 重新按下e ...

Libgdx游戏开发(5)——碰撞反弹的简单实践

博主头像 原文: Libgdx游戏开发(5)——碰撞反弹的简单实践-Stars-One的杂货小窝 本篇简单以一个小球运动,一步步实现碰撞反弹的效果 本文代码示例以kotlin为主,且需要有一定的Libgdx入门基础 注:下面动态图片看着有些卡顿,是录制的问题,实际上运行时很流畅的 水平滚动 简单起见,我们通过 ...

Libgdx游戏开发(4)——显示中文文字

博主头像 原文: Libgdx游戏开发(4)——显示中文文字-Stars-One的杂货小窝 本文代码示例采用kotlin代码进行讲解,且需要有libgdx入门基础 这里主要介绍关于在Libgdx显示文字的2种方法 2种方法优缺点 BitmapFont 优势: 易于操作和使用,简单快速实现文本渲染。 资源消耗相 ...

SingletonKit单例源码阅读学习

博主头像 阅读学习QFramework中的SingletonKit源码. Singleton 普通类的单例 作为最常用的单例模块,通过继承单例泛型类来实现,需要私有构造; //使用第一种接口单例方式 internal class Class2Singleton : Singleton<Class2Single ...

Libgdx游戏开发(3)——通过柏林噪音算法地图随机地形

博主头像 原文: Libgdx游戏开发(3)——通过柏林噪音算法地图随机地形-Stars-One的杂货小窝 在B站刷到了随机地图生成的视频,随手学习下并做下记录 注: 本篇使用javafx应用作演示,算是了解这个算法的使用,后续会再出篇libgdx生成地图的示例 说明 抛开算法实现,首先认知柏林噪音算法 一般 ...

Unity 2023/Unity 6编辑器文字模糊的解决方案

博主头像 这是从2023.1开始就有的问题了。本质原因是Unity不知道哪个天才决定的在编辑器文字上使用了SDF渲染。 2023.1因为缺乏选项导致几乎不可用;2023.2加了一个锐度选项;后来在论坛里被众人喷了好久之后(很荣幸在这其中出了一份力)2023.3(也就是6 Preview)把Bitmap渲染 ...

Unity Text Mesh 穿透问题

0. 问题 在 3D 场景中使用 TextMesh 的时候,字体无法被遮挡,永远在最上层。 虽然目前在场景中可以直接使用 TextMeshPro,但是实际开发的时候总会有各种各样的情况,可能是兼容老项目,也可能是想保持项目足够简单,不想引入 TextMeshPro。这里就只记录如何解决这一问题的方案 ...

第三人称游戏的相机控制

博主头像 第三人称游戏的相机控制 Unity已经有了Cinemachine这一强大的插件来辅助开发者更容易地控制相机运动,但我觉得学习一下相机控制背后的原理还是挺有益的,没准哪天你就想定制某种相机控制的功能,又觉得Cinemachine难调呢! 本文学习自 Jasper Flick 大神的 运动系列教程 相机 ...

游戏开发:基础模块之任务系统设计方案

博主头像 写一写游戏项目的基础模块的实现思路,之任务系统: 起引导、活跃、成就等作用的任务系统,是游戏常见的业务需求; 实现上可以分为几个部分: 任务类设计; 任务对象管理; 事件管理; hook机制; 一. 事件管理模块 一个以事件类型(event type)为单位,进行注册和回调触发的管理模块。 模块需要 ...

游戏开发:服务器端网络代理设计(network proxy)

博主头像 不仅是游戏项目,从软件设计层面看,当服务位于网络远端时,为与客户端之间的传输层连接提供一定的网络质量优化支持是常见的设计要求。 实现一个前后端的网络代理层,目标是优化直连链路的网络质量,支持缓冲重连。这里记录下思路; 代理层实现: 定制分配规则对服务器端机器做负载均衡; 客户端和服务器端业务连接的断 ...

游戏AI寻路——八叉树+A*寻路

博主头像 利用八叉树的空中寻路 你有思考过在空中如何进行寻“路”吗?来想象一个的场景:飞机从空中基地出发,要避开许多空中建筑,最终到达目的地。这种情况下的寻路是没有路面的,寻路物体的移动方向也比较自由,这该怎么寻呢? 如果我们只是在一个平面进行寻路,我们可以直接用A*寻路,铺好一个地面网格,这样就可以在网格点 ...

C#中接口的显式实现与隐式实现及其相关应用案例

博主头像 C#中接口的显式实现与隐式实现 最近在学习演化一款游戏项目框架时候,框架作者巧妙使用接口中方法的显式实现来变相对接口中方法进行“密封”,增加实现接口的类访问方法的“成本”。 接口的显式实现和隐式实现: 先定义一个接口,接口中有这两个方法。 public interface ICanSingSong ...

游戏开发:集群配置管理

博主头像 跨机集群的核心实现: 开启跨机消息管理服务,节点内所有需要跨进程投递的消息都通过此服务转发,通过网络送达集群内目标节点。实现: 每个进程开启服务,服务内缓存集群节点的配置信息,与每个节点建立通信连接,负责当前节点和集群内节点之间的消息通信; 根据当前节点配置监听集群消息入口(ip+port),开放与 ...

游戏开发:rpc protocol demo

博主头像 看好项目的源码总是会有重复造轮子的冲动。最近对比测了下我们业务使用的数据序列化协议的性能,review了社区上几个常用库的源码,尝试做了点优化,有些想法。浅浅写了个demo,这里记录下实现的思路,供后面查阅和反思。 协议的实现分为几个部分: schema text:协议描述文件 compiler : ...

123···7>