我正在制作游戏,我正在尝试确定在屏幕上交换两个物体之间损坏的最佳做法。是否应该直接在两个物体之间传递伤害,还是应该通过一个中央游戏引擎来决定伤害和不同的标准,例如命中或未命中或处理的数量。
总体而言,最佳做法是什么。
答案 0 :(得分:4)
这在很大程度上取决于游戏规则。但是,多个对象需要参与其中并不罕见。但是,我建议不要将游戏规则代码放入显示对象的MovieClip实例中;将他们保持为同伴可以让游戏状态更容易分开并保存/传播。
以下是一个例子:
答案 1 :(得分:2)
让引擎处理每个字符的损坏计算中冗余的所有代码。角色将被迫完成剩下的工作。
我不太了解你正在制作什么样的游戏。但对于某些游戏,当引擎被告知A攻击B时,代码可能类似于:
//somewhere in your engine:
damage = A.get_damage(B);
trace (damage); // {damage:60, hit_chance = 0.8}
B.send_damage(damage);
我认为在大多数情况下有必要使用B.send_damage()
而不是直接控制B的健康属性的引擎.AI往往是由状态驱动的。可能会有一些影响A或B的变量影响损坏(例如无敌),其中(IMO)发动机最好不知道它们的存在(或者你最终会得到巨大的开关块; D )
你看我如何在A.get_damage()
中将B作为参数发送?不幸的是,在这样的方法中,这通常是必要的。 A的伤害/ hit_chance可能受到距离A的距离有多远。
答案 2 :(得分:0)
将它放入游戏引擎中。屏幕上的对象表示模型中的视图和控制器,即引擎(这是逻辑所属的位置)。虽然将它直接放在视图/控制器端可能很诱人,但是一旦游戏变得足够大,你的游戏代码最终会变成意大利面。