• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - xcode 8 beta 4 中的 GKBehaviour 让 gkagent 的位置变得疯狂

[复制链接]
菜鸟教程小白 发表于 2022-12-12 21:40:53 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

所以我正在创建一个游戏,我想为我的 GKAgent 行为添加一些 GKGoal

所以经过几个小时的战斗,我这次下载了下一个项目来自 Apple Agents Catalog ,并且在 Xcode 7.3 中它可以工作。我将它重写为 Swift 并使用 GKGoal(toWander 创建基本的 GKAgent 这是我的代码:

 class AAPLAgentNode: SKNode, GKAgentDelegate {
    init(withScene scene:SKScene ,radius: Float, position:CGPoint) {
        super.init()
        
        self.position = position
        self.zPosition = 10
        scene.addChild(self)
        
        agent = GKAgent2D()
        agent.radius = radius
        agent.position = vector2(Float(position.x), Float(position.y))
        agent.delegate = self
        agent.maxSpeed = 100
        agent.maxAcceleration = 50
        
        let circleShape = SKShapeNode(circleOfRadius: CGFloat(radius))
        circleShape.lineWidth = 2.5
        circleShape.fillColor = SKColor.gray
        circleShape.zPosition = 1
        self.addChild(circleShape)
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder has not been implemented")
    }
    
    
    func agentWillUpdate(_ agent: GKAgent) {
        
    }
    
    func agentDidUpdate(_ agent: GKAgent) {
        self.position = CGPoint(x: Double(self.agent.position.x), y: Double(self.agent.position.y))
        print("aaa == \(self.position)")
    }
    
    var agent: GKAgent2D!
}

当我添加到场景中时

     let wanderer = AAPLAgentNode(withScene: self, radius: 100, position: CGPoint(x: 0, y: 0))
    
    wanderer.agent.behavior = GKBehavior(goal: GKGoal(toWander: 10), weight: 100)

    agentSystem.addComponent(wanderer.agent)

没有行为的位置是静态的,但是当我添加它时,位置会变得疯狂,并且在每次更新迭代中,值就像

  • 位置 == (-10051366.0, 251672512.0)
  • 位置 == (1368370.0, 259904576.0)
  • 位置 == (-131583.0, 264841120.0)

这只是 Xcode 8 测试版错误,还是我做错了什么。我花了很多时间试图解决它。 谢谢



Best Answer-推荐答案


我知道这已经很老了,但是您在第一次更新时是否以非常高的 deltaTime 调用?

我以系统时间调用作为我对代理行为的第一次更新调用,在第一个时间步引起了巨大的跳跃

关于ios - xcode 8 beta 4 中的 GKBehaviour 让 gkagent 的位置变得疯狂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38778277/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap