unity3d-学习笔记15-卡牌游戏制作(部分功能的优化)
发布日期:2021-05-08 12:34:04 浏览次数:19 分类:精选文章

本文共 900 字,大约阅读时间需要 3 分钟。

Unity3D学习笔记:卡牌游戏制作(部分功能优化)

卡牌抽取与展示功能实现

为了实现“点击下一回合从现有的卡牌中抽取三张并显示在桌面的”功能,我在代码中直接使用预定义的卡牌数据。这种做法在实际开发中应从数据库中读取卡牌信息,但在时间有限的情况下,直接使用硬编码数据以加速开发进程。

在每次游戏启动时,为了确保卡牌抽取的随机性,我采用了以下方法打乱卡牌顺序:

// 打乱卡牌顺序的实现
List
a = cardList;
List
b = new List
();
int countNum = a.Count;
while (b.Count < countNum)
{
int index = Random.Range(0, a.Count - 1);
if (!b.Contains(a[index]))
{
b.Add(a[index]);
a.Remove(a[index]);
}
}
cardList = b;

这个方法通过创建一个新列表b,逐步从原列表a中随机抽取卡牌信息,确保每次抽取的卡牌互不重复,最终将打乱后的卡牌列表赋值给cardList

卡牌回收机制的优化

在卡牌抽取过程中,为了避免卡牌数量耗尽引发越界错误,我设计了一个回收机制。这个机制通过维护一个额外的计数器,记录已使用的卡牌索引位置,从而避免重复使用同一张卡牌。

在修复此类问题时,我发现主要问题出在索引计数器的管理上。为了降低代码耦合度,我引入了两个独立的计数器:一个用于跟踪当前回合抽取的卡牌索引,另一个用于记录已经回收的卡牌索引位置。

项目进展与反思

由于时间分配的关系,这个功能在完成初期存在索引越界的问题。经过反思和优化,这个问题得到了有效解决。然而,由于兼职工作的影响,我未能及时修复所有问题。希望在新的一年有机会继续完善这个卡牌游戏的功能。

这个学习过程让我深刻体会到代码优化的重要性,尤其是在处理随机抽取和数据回收机制时,代码的结构和逻辑设计至关重要。

上一篇:unity3d-学习笔记16-卡牌游戏制作(修复人物和boss血量的bug以及循环出牌的功能)
下一篇:unity3d-学习笔记14-卡牌游戏制作(部分功能的优化)

发表评论

最新留言

不错!
[***.144.177.141]2025年04月26日 15时16分46秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Kubernetes集群升级实战 2025-04-03
kubernetes集群添加到jumpserver堡垒机里管理 2025-04-03
KubeSphere核心实战_kubesphere多租户_添加企业空间_创建项目_给项目邀请成员---分布式云原生部署架构搭建042 2025-04-03
KubeSphere核心实战_kubesphere部署redis02_创建redis现指定存储卷_配置外网访问服务---分布式云原生部署架构搭建048 2025-04-03
KubeSphere核心实战_在Centos7.9/linux单节点使用kubekey一键安装完整平台_启用插件_一键安装docker_k8s_kubesphere---分布式云原生部署架构搭建038 2025-04-03
KubeSphere核心实战_安装默认存储类型_实现pv和pvc存储空间动态创建_安装Metrics-server_动态监控集群以及pod_内存及cpu资源占用情况---分布式云原生部署架构搭建036 2025-04-03
KuiperInfer深度学习推理框架-源码阅读和二次开发(3):计算图 2025-04-03
KVM 存储配置与管理详解 2025-04-03
KVM 安全策略配置实战 2025-04-03
KVM 性能测试优化实战 2025-04-03
KVM 硬件平台适配 2025-04-03
KVM克隆虚拟机和libguestfs-tools管理工具(3) 2025-04-03
KVM命令行管理企业级实战 2025-04-03
kvm虚拟化中用增量镜像创建vm的脚本(已测OK) 2025-04-03
KVM迁移与维护实战 2025-04-03
KxMenu下拉菜单 2025-04-03
KXML2部分详解(J2ME) 2025-04-03
KXML解释本地或网络上的XML文件 2025-04-03
Kylin-Server-V10-SP3+Gbase+宝兰德信创环境搭建 2025-04-03
Kylin学习笔记 - CDH6.2集群 kylin2.6.4 环境搭建 2025-04-03