
Apple于2015年推出了GameplayKit,并在过去几年中不断发展壮大,为我们的开发人员提供了许多有用的功能,供我们的游戏使用。 这使我们可以更快地创建游戏,并专注于核心元素,例如出色的体验和图形。
尽管自2015年以来一直存在,但我不得不承认,我只是刚刚开始在正在开发的SpriteKit游戏中使用它,所以我认为这对于我记录自己的旅程和学习也是一个很好的机会。
- 2017年全球25大公共游戏公司收入941亿美元
- Virtual Meta弥合了货币化和IP之间的鸿沟
- 奖励视频广告的好,坏与丑– AppLixir –中
- 为什么要在您的获利策略中考虑使用奖励调查
- 鼓励移动游戏玩家选择推送通知
我要解决的第一件事是实体组件系统。
什么是实体组件系统?
好问题!
实体组件系统是一种体系结构(构建代码的方式)方法,它使您可以在复杂性和规模方面扩展游戏,而无需在代码的各个部分之间建立相互依赖性。 从理论上讲,这应该可以使您对游戏进行更改而不会产生意外的副作用。
实体
用最简单的术语来说,您可以认为实体代表游戏中的“事物”。 因此,这可能是角色 (例如玩家),也可能是敌人 ,或者是建造者游戏中的农场 。 如果您将其与OO编程进行比较,那就像一个类,但有一点点区别,这使我们很满意:
组件
组件实际上包含执行实体特定任务的逻辑。 好像您已经包装了OO函数并将其实际上移到了一个可以应用于其他类的文件中一样。 一个常见的示例可能是“可呈现”组件,在SpriteKit游戏中,该组件会将SKNode添加到您的实体和场景中。 另一个示例可能是物理组件,它仅将物理添加到您的实体。 这样做的好处是可以将其添加到“播放器”,“敌人”和“农场”中,而不必在每个位置都编写单独的物理代码。
创建GKEntity是一个简单的过程,您只需要继承GKEntity本身即可
导入GameplayKit
球员:SKEntity {
}
创建组件非常简单
导入GameplayKit
class PresentableComponent:GKComponent {
}
然后,将组件添加到您的实体。
让玩家= Player()
player.addComponent(PresentableComponent())
管理实体和组件的方法还有很多,我们将在以后的文章中介绍。 这只是Entity-Component系统的快速概述,但是您可以在https://developer.apple.com/library/archive/documentation/General/Conceptual/GameplayKit_Guide/EntityComponent.html#//apple_ref中找到更多信息/ doc / uid / TP40015172-CH6-SW1
谢谢阅读。