在看Unreal Engine 4.x Scripting with C++ Cookbook(第二版)这本书,把一些必要的基础知识过一过。目前没有学习ygo具体游戏逻辑的实现,先尝试先自己简化一下实现一些东西,首先要弄清楚如何动态的传递一些参数(这对后面写逻辑至关重要):例如说,我得到了卡牌的code,那么我该怎么映射成对应的贴图信息?如果创建一个特定的Actor蓝图,那么我又该怎么去动态的表示这个蓝图的信息呢?这就是接下来将要进行的内容探索。

关于这个问题的具体描述应该是如何动态的加载资源(分为Object资源和Class资源)

可以看一下这一些大佬的归纳:UE4静态/动态加载资源方式 - 知乎 (zhihu.com)

[UE4]C++实现动态加载的问题:LoadClass()和LoadObject() 及 静态加载问题:ConstructorHelpers::FClassFinder()和FObjectFinder() - Bill Yuan - 博客园 (cnblogs.com)

简而言之,资源按照一定的规律和卡片的id进行关联,然后在代码中通过LoadObject()传入资源的路径来完成动态的加载。 卡片衍生出来的蓝图通过LoadClass().

因此之前的修改1、动态加载材质信息,路径Path是字符串,可以很方便的变更,同样的蓝图类以一定的规则组织之后也可以通过路径来很方便的设置

接下来要考虑的内容是事件的传递、类间的消息传递,以及技能逻辑的运用

在做接下来的功能设计的时候,需要去了解游戏王卡牌游戏这个游戏的相关逻辑,关于卡片逻辑编写可以看B站这位大佬的视频游戏王Lua脚本编写教程·改二_哔哩哔哩_bilibili

关于技能的发动:

1、GAS中取对象的技能设计,使用targetData Actor来表征选选择对象的信息。

另一种实现方式是设定一个定时器,当技能开始的时候⏲,如果超时没有获取到对象,那么就当作对局失败或者技能发动失败处理。我偏向于后者的实现。

2、关于效果的类型,我们可以看到ygopro和DL的分类大体相似,如果用GAS设计技能的话也可以从简单的技能类型设计起来

3、卡片的表示

沿用ygopro的卡片类型的定义,在游戏中用Pawn做为基类。初始化的时候传入基本的信息,一开始将cards.db读入内存,用map存储,后续信息的查找都查询该map

效果卡片,仍然可以用lua实现逻辑,具体的后续再看看怎么实现比较合适。

4、设计简单的演示方案,仍然是从最简单的初代规则和初代卡牌考虑

a:summon a monster

利用动态资源加载的方式,先完成了一个简单的召唤逻辑。

先实现最基本的功能。后面再考虑详细的state信息

接下来实现三种基本的技能方式,然后看看技能资源该如何组织比较好

b:进行攻击

c:装备卡发动

d:生命值回复效果

TGame游戏新篇:1.5 追求动态的加载资源相关推荐

  1. TGame游戏新篇:1.6 继续构建,考虑资源的组织

    学会利用Epic官方资源来快速学习和搭建demo 这是虚幻争霸中的资源,自带的示例中的视角控制和移动对于一个普通的游戏来说已经是够用了. 继续上一篇的内容,考虑做一些简单的技能并思考资源的组织形式. ...

  2. Android RRO动态加载资源

    在 Android 8.0 的时候,Android 项目可以动态的加载资源而可以不用再overlay 中去静态处理,这样就可以方便的对 Android 资源进行处理了. 例如: 1. -- Andro ...

  3. 【Unity3D 打斗游戏开发】之二 异步加载场景或预加载资源后进入游戏

    假设当前场景为A,我们要切换到下一场景B,如果使用正常加载方式,Unity会在切换场景时加载场景B的所有内容(Hierarchy面板内容)到内存中,由于加载场景B是同步执行的,所以当场景B较大时,就会 ...

  4. React 中动态的加载组件 ---loadable-components

    loadable-components 用于在react 中动态的加载组件 安装方法: npm i loadable-components 使用: 引入: 代码中使用: 希望对你有所帮助

  5. js如何动态的加载js文件

    在这个地方我说的动态的加载js文件是通过调用函数来加载js文件,我们在这个地方通过一个简单的小例子来实现 首先创建3个文件分别为:test1.html,test1.js,demo.js test1.j ...

  6. nginx php动态编译加载模块.

    #Nginx动态编译加载模块步骤 #查看目前Nginx版本及编译模块 #[root@centos7 ~]# /opt/app/lnmp/nginx-1.12.0/sbin/nginx -V #ngin ...

  7. 【Android 逆向】Android 进程注入工具开发 ( 远程进程注入动态库文件操作 | 注入动态库 加载 业务动态库 | 业务动态库启动 | pthread_create 线程开发 )

    文章目录 前言 一.加载 libnattive.so 动态库 二. libnattive.so 动态库启动 三. pthread_create 线程开发 四. 线程执行函数 前言 libbridge. ...

  8. 【Android NDK 开发】Android.mk 配置动态库 ( Android Studio 配置动态库 | 动态库加载版本限制 | 本章仅做参考推荐使用 CMake 配置动态库 )

    文章目录 I . Android Studio 中使用 Android.mk 配置动态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  9. linux程序加载器,Linux 动态连接加载器 ld-linux用法

    Linux 动态连接加载器 ld-linux用法 文章作者:网友投稿 发布时间:2009-12-10 16:21:11 来源:网络 ld-linux有两种用法,间接调用和直接调用. 间接调用时,连接器 ...

最新文章

  1. 面试官:因为这个语言,我淘汰了90%的人!
  2. Android 应用审核乱象:诈骗软件冲上排行榜首
  3. 《C语言及程序设计》实践参考——回文日
  4. python函数参数*args和**args
  5. OnClientClick和OnClick同时使用!
  6. 小米第三季经调整利润29亿 获美图智能手机全球授权
  7. 直播预告 | 视觉SLAM在AR应用上的关键性问题探讨
  8. vue自动化部署linux,GitHub+Vue自动化构建部署
  9. Android编程之SparseArrayE详解 Android编程之SparseArrayE详解
  10. 蚂蚁金服分布式链路跟踪组件 SOFATracer 总览 | 剖析
  11. 阶段3 2.Spring_01.Spring框架简介_01.spring课程四天安排
  12. mysql5.6.39免安装,win7 64位配置mysql 5.6免安装版,初始化配置和Mysql创建新用户方
  13. 美国服务器托管机房如何选择?
  14. Channel 用法
  15. 迷茫时代的明白人——书摘
  16. GOOGLE搜索技巧
  17. 3812 机器人走迷宫(枚举 + 全排列)
  18. IDEA添加oracle数据库时不显示数据表
  19. 如何同步公众号内容到头条自媒体?
  20. 视觉和Lidar里程计

热门文章

  1. Linux下火狐浏览器无响应
  2. 肝了七天七夜,九大面试必备的高清思维导图 + 630 页PDF 终于出世
  3. 从工程师到管理者,角色到底发生了哪些变化?
  4. 【华为机试题】名字漂亮度
  5. 006--Keil使用--出现declared implicitly
  6. 计算机音乐数字乐谱九九八十一,九九八十一
  7. HIve的日期函数(year/month/week)
  8. 离职去做博主靠谱吗?做博主到底有多赚钱
  9. 冯诺依曼基本计算机原理是数据内置,冯诺依曼计算机的基本原理是.doc
  10. 【ES从入门到实战】二十四、全文检索-ElasticSearch-整合-SpringBoot整合high-level-client