战斗系统之属性设计(一)

本文聚焦于战斗系统中的属性设计,包括血量、攻击力等常规属性、状态属性、逻辑属性及对象属性。讨论了单独管理和统一管理两种策略,通过比较在增加属性时的实现便捷性,主张统一管理能简化代码,提高代码内聚性。
摘要由CSDN通过智能技术生成

一切属性均为属性

在战斗系统中,包含不同种类的属性。
比如:血量、攻击力、防御力、暴击率、格挡率、格挡系数等常规属性
再如:是否被眩晕、是否物理免疫、是否无敌等状态属性
三如:标记死亡、标记出生、技能CD缩减等逻辑属性
四如:当前位置、召唤者、召唤单位等对象属性

我们在常规的设计中往往只对常规属性做统一处理,部分也会统一处理状态属性,但很少的会把其他的属性也纳入进来。在此,我们不讨论对错,只对比2者的实现便捷性。

单独管理

local M = cclass("PropertyObject", import(".tableobject"))

function M:ctor()
	self._isBorned = false
end

function M:getBorned()
	return self._isBorned
end

function M:setBorned(borned)
	self
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值