gpt4 book ai didi

objective-c - 游戏设计 : Is a plug-in the best solution for this Problem?(Cocoa、Objective-C)

转载 作者:行者123 更新时间:2023-12-03 17:26:11 25 4
gpt4 key购买 nike

我已经开始帮助开发一款开源游戏(基于 Cocoa、Obejctive-C、Xcode)。现有的游戏引擎已经设置为允许角色在世界各地奔跑,遇到敌人,并且当战斗开始时,将使用要攻击的敌人单位对象来调用角色对象。这个角色对象有一个攻击敌人的默认方法。

我想通过扩展程序来改进此设计,以允许其他人开发一个 CombatUnit 插件,该插件可以按照自己的编程方式处理战斗 Action 。这可以让社区开发不同的战斗风格,并形成自己独特的游戏风格。

当我开始研究插件和如何构建的示例时,大多数示例都使插件与程序其余部分的内部相对隔离。插件所需的任何数据都将传递到例程本身。

但是,在这种情况下,战斗单位开发人员可能希望访问现有游戏中的大量外部对象:开发人员可能还希望了解附近的任何敌方单位,以避免战斗中出现任何潜在的添加,并且会要访问几个现有的环境对象来获取该数据,角色可能在一个组中,开发人员可能希望访问组信息和每个玩家的数据以确定他们是否应该治愈等...不知道开发人员在做什么考虑到,我不可能尝试预测并传递所有潜在信息供他们使用。

所以,我的问题是:这是一个好的插件应用程序吗?如果是这样,在开发插件时如何打开其他对象供插件开发人员进行编码?

还有其他方法可以解决这个问题吗?除了“插件”之外,还有其他东西更适合代码访问游戏对象吗?

感谢您的帮助!

最佳答案

这是制作插件的一个很好的例子。作为替代方案,您可以将新对象直接编译到游戏中或使用脚本语言解释器。但对于这些,你必须解决同样的问题,即如何向新的战斗单位提供对游戏内部的访问权限。

最简洁的方法是定义游戏的接口(interface)(作为协议(protocol)或基类)并将其传递给插件。使用此对象,插件可以查询它需要的任何内容。

关于objective-c - 游戏设计 : Is a plug-in the best solution for this Problem?(Cocoa、Objective-C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4405432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com