开始写游戏 --- 第二十四篇

  今天很累,主要思考一个问题,去了好几个小时。

  思考什么呢? 就是:

    如何把技能单独提出来,方便后期自定义设置。

  先来看看目前增加的一些功能:

    1、反击

    2、连击增强

    3、程序代码结构变化

  说明:

    1、反击

    {

      

      只要角色受到伤害,就会有几率反击。

    }

    2、连击增强

    {

      

      之前连击是只打一下。

      改成:如果连击后,还有几率连击的话,会继续连击,直到连击不触发为止。

    }

    3、程序代码结构变化

    {  

      这个更多的是提现在代码方面,而不是游戏效果上。

      之前我写的代码,都是把逻辑写死,技能也写死。经过长时间思考,做了以下改动:

      这是 技能类基类、被动技能类、主动技能类:

        

        

        

      然后 技能数据 提出去:

        

        这样一来呢,就方便我增加技能,还有设置技能的一些配置。

      新增 技能 接口:

        

      角色属性类 去实现这个接口:

        

      包括敌人类也是,去实现这个接口:

        

      假数据可以给角色和敌人安排上:

        

      那么其他的战斗对象如何配合这个技能呢?比如反击:

        

        通过类型判断,为每个技能做专属的效果。

      然后在被攻击时:

        

        这样就可以把技能设定的伤害传递给敌人。

    }

    

    

原文地址:https://www.cnblogs.com/dmc-nero/p/12052019.html

时间: 2024-08-29 18:15:31

开始写游戏 --- 第二十四篇的相关文章

开始写游戏 --- 第十四篇

今天主要做了两件事情: 1.给 对话框组件 新增 支持 Dialog[] 类型的数据格式. 2.冒险 -> 点击地名 -> 进入具体场景 ,为这个 具体场景 提供了可配置的形式. 上图: 1.给 对话框组件 新增 支持 Dialog[] 类型的数据格式. 这样的话,极大的方便了外部配置对话内容和头像. 比如这种数据: 我就把 dialog组件 的用法,和要显示的数据结构截图出来. 来看看效果: 2.冒险 -> 点击地名 -> 进入具体场景 ,为这个 具体场景 提供了可配置的形式.

开始写游戏 --- 第二十二篇

今天: 先看看目前战斗场景和昨天的对比 昨天: 1.新增 被动技能 2.新增 敌人被攻击动画 3.优化动画流畅度 4.修改动画封装 说明: 1.新增 被动技能 写死在攻击指令里,目前我觉得不太好,不方便后期扩展.后面我再想想怎么设计代码结构吧. 2.新增 敌人被攻击动画 3.优化动画流畅度 每次动画播放的间隔,都会增加一个站立动画来过度. 如敌人被攻击: 主角攻击时: 4.修改动画封装 之前的方式是: 销毁动画 -> 创建新动画 -> 添加动画到舞台 现在的方式是: 更改动画 -> 判断

开始写游戏 --- 第二十八篇

今天: 1.添加:物品奖励组件 2.添加:物品信息弹框组件 3.碰到BUG,现在被卡住了 上图: 1.添加:物品奖励组件 { 效果: 代码: } 2.添加:物品信息弹框组件 { 效果: 代码: 要使用这个组件的话,还要搭配一个数据转换类: } 3.碰到BUG,现在被卡住了 { 可以看到,物品信息组件显示位置出现问题. 这个FGUI官方群,现在都没有给具体的解决方案. 这是在FGUI编辑器中的效果: 这是游戏运行的效果: 为了证明是同一个组件,我特意换了一下颜色: 可见,现在这种情况...我真的有

开始写游戏 --- 第二十六篇

今天: 1.添加指令返回 2.添加胜利姿势 3.添加技能 4.修复技能不攻击选中目标的BUG 说明: 1.添加指令返回 { 代码: } 2.添加胜利姿势 { 代码: } 3.添加技能 { 代码: 主要是 角色战斗类.假数据类.主动技能类 的修改. } 原文地址:https://www.cnblogs.com/dmc-nero/p/12061760.html

开始写游戏 --- 第二十九篇

今天: 1.修复昨天物品显示组件文字超出的问题 2.物品显示组件新增拖拽.双击关闭功能 3.退出战斗.显示战利品按钮 4.物品奖励添加 领取.丢弃 菜单功能 5.添加UI窗口.修复UI窗口数据和人物属性不一致的问题 上图: 1.修复昨天物品显示组件文字超出的问题 { 昨天的BUG图: 现在已经修复: 主要是多个富文本改成了一个富文本的形式,之前的是这样的: 现在弄成了这样: 然后我要在代码里编辑文本格式: } 2.物品显示组件新增拖拽.双击关闭功能 { 效果: 代码: } 3.退出战斗.显示战利

Egret入门学习日记 --- 第二十四篇(书中 9.12~9.15 节 内容)

第二十四篇(书中 9.12~9.15 节 内容) 开始 9.12节 内容. 重点: 1.TextInput的使用,以及如何设置加密属性. 操作: 1.TextInput的使用,以及如何设置加密属性. 创建exml文件,拖入组件,设置好id. 这是显示密码星号处理的属性. 创建绑定类. 实例化,并运行. 但是焦点在密码输入框时,密码是显示的. 暂时不知道怎么设置 “焦点在密码框上时,还是显示为 * 号” 的方法. 至此,9.12节 内容结束. 开始 9.13节 . 这个,和TextInput的使用

Android UI开发第二十四篇——Action Bar

Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式.在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观.你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Android3.0(API 级别 11)中. Action bar的主要目的是: 1.  提供一个用于识别应用

第二十四篇 自作的高仿画板(1)

唉,今天是一个繁忙而又充实的一天,因为今天的我第一次坐在电脑桌旁这么久,感觉手都有点酸,但是真的觉得收获还是蛮多的,,,, 好了,接下来就直接看代码吧 ,效果自己执行看一下吧: 第一步,新建一个主函数(我用记事本写的 不是很规范,还望多多包涵): public class Test { public static void main(String []args){ DraWing  draWing=new DraWing(); draWing.ShowMainJFrame(); } } 第二布,

python全栈开发基础【第二十四篇】(利用threading模块开线程、join与守护线程、GIL与Lock)

一多线程的概念介绍 threading模块介绍 threading模块和multiprocessing模块在使用层面,有很大的相似性. 二.开启多线程的两种方式 创建线程的开销比创建进程的开销小,因而创建线程的速度快. #开启进程的第一种方式 from multiprocessing import Process from threading import Thread import os import time def work(): print('<%s> is running'%os.g