运用GamePlayKit的GKEntity及GKComponent 的iOS游戏开发实例

GameplayKit是一个面向对象的框架,为构建游戏提供基础工具和技术。 GameplayKit包含用于设计具有功能性,可重用架构的游戏的工具,以及用于构建和增强诸如角色移动和对手行为的游戏玩法特征的技术。

GamePlayKit

我们这里主要讲GKEntity和GKComponent这二个类;

GKEntity类(实体): 可以容纳很多组件的容器,根据自己的需求来加入相应的Component组件。

GKComponent类(组件):代表一种功能和行为,不同的组件代表不同的功能。

实用功能
(1)方便通过聚合多种组件,构建复杂的新实体Entity。
(2)不同的实体GKEntity,通过聚合不同种类的组件GKComponent来实现。
(3)不必重复写组件,组件可以复用,也易于扩展。
(4)实体可以实现动态添加组件,以动态获得或者删除某些功能。

直接通过代码来理解这二个类:

Flying Penguin

PenguinEntity.swift 是用来管理 Component三个组件的


import SpriteKit
import GameplayKit

class PenguinEntity:GKEntity {

    var spriteComponent:SpriteComponent! // 属性 大小 texture
    var moveComponent:MoveComponent!     // 移动组件功能;
    var animationComponent:AnimationComponent! //拍打翅膀的组件;

    init(imageName:String) {
        super.init()
        let texture = SKTexture(imageNamed: imageName)
        spriteComponent = SpriteComponent(entity: self, texture: texture, size: texture.size())
        addComponent(spriteComponent)
        // 加入上下飞动的组件
        moveComponent = MoveComponent(entity: self)
        addComponent(moveComponent)

        // 加入拍打翅膀的动画
        let textureAltas = SKTextureAtlas(named: "penguin")
        var textures = [SKTexture]()
        for i in 1...textureAltas.textureNames.count {
            let imageName = "penguin0\(i)"
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值