iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 如何在GameplayKit / SpriteKit中以有效的方式为实体和组件建模大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
从这里的GameplayKit开始,我正在塑造一个无尽的跑步者,玩家可以通过点击屏幕在角色之间切换.角色首先可以在短距离(组件),第二次跳跃(组件)和第三次射击(组件)中进行攻击.

我想知道在这两者之间进行建模的最佳方法是什么:

>创建一个具有3个不同字符实体(数组)的类Player,其中一个包含它的组件
>创建一个包含3个不同字符组件的实体播放器
    并添加所有动作和动作组件(拍摄/跳跃……)

这是一个真正的大项目,所以我担心最长的方法是保持代码可持续性和可读性很长一段时间.

PS:.
SpriteComponent将是负责所有实体的.sks可视化表示的组件.

PS2:.尽可能快速的例子.

感谢您的时间.

解决方法

除了使用组件之外,它还取决于你做了什么以及每个角色做了什么.
使用gameplayKit我可能更喜欢创建实体类而不仅仅是类.

您是否虑过只使1个玩家实体,而当您更改角色时,您只需删除/添加该角色的组件即可.

假设你从攻击者改为跳跃者,你可以删除攻击组件

player.removeComponent....

添加跳跃组件

let jumpingComponent = ...
 player.addComponent(jumpingComponent)

通常,您希望确保组件尽可能灵活和通用.
例如,您的spriteComponent应在其init方法中采用图像字符串/纹理,以便您可以将相同的组件添加到每个实体,但使用不同的图像.

class SpriteComponent: GKComponent {

     let node: SKSpriteNode

     init(texture: SKTexturE) {
          node = SKSpriteNode(texture: texture,color: SKColor.clearColor(),size: texture.size())
     }
}

现在,您可以在使用不同的图像时为每个角色添加相同的组件

let character1Texture = SKTexture(imagenamed: "Character 1 image"
    let spriteComponent = SpriteComponent(texture: character1TexturE)
    addComponent(spriteComponent)

您的动画和其他组件也是如此.

我对待它的方式是这样的.

假设我有一个游戏,我有10种类型的敌人或多或少相同.我可能会尝试只有1个敌人实体类将所有10个敌人使用的所有组件.我将添加动态地或基于我将在init方法中传递的enumType的相关组件.

另一方面说我有3个主要角色都做了非常独特的事情,而不是简单而干净,只需要创建3个实体类.也不要忘记子类化,因此您可以创建包含所有共享组件的1个实体类,而不是创建其他2个实体的子类.

Apple在DemoBots中做到了这一点,他们有一个TaskBot实体,而FlyingBoy实体和GroundBot实体都是TaskBot的子类.

它真的取决于你.

大佬总结

以上是大佬教程为你收集整理的ios – 如何在GameplayKit / SpriteKit中以有效的方式为实体和组件建模全部内容,希望文章能够帮你解决ios – 如何在GameplayKit / SpriteKit中以有效的方式为实体和组件建模所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。