gpt4 book ai didi

ios - 如何从游戏场景中调用一个 Action

转载 作者:搜寻专家 更新时间:2023-11-01 06:17:13 24 4
gpt4 key购买 nike

在我的 Sprite-kit 游戏场景中,我尝试添加一个粉红色/脉冲 Action 。我不知道如何调用游戏 View Controller 。在一个简单的 UIViewController 中,我可以简单地启动:

viewController.addPulse    

但是在 Sprite-kit 游戏场景中我不确定如何调用它。下面是我试过的代码,它给我一个错误:

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(GameViewController.addPulse))    



if defaults1.integer(forKey: "Sphere") == 13 {
Ghost = SKSpriteNode(imageNamed: "moon")
Ghost.size = CGSize(width: 50, height: 50)
Ghost.position = CGPoint(x: self.frame.width / 2 - Ghost.frame.width, y: self.frame.height / 2)
Ghost.physicsBody = SKPhysicsBody(circleOfRadius: Ghost.frame.height / 1.4)
Ghost.physicsBody?.categoryBitMask = PhysicsCatagory.Ghost
Ghost.physicsBody?.collisionBitMask = PhysicsCatagory.Ground | PhysicsCatagory.Wall
Ghost.physicsBody?.contactTestBitMask = PhysicsCatagory.Ground | PhysicsCatagory.Wall | PhysicsCatagory.Score
Ghost.physicsBody?.affectedByGravity = false
Ghost.physicsBody?.isDynamic = true
Ghost.zPosition = 2
self.addChild(Ghost)
Ghost.isUserInteractionEnabled = true
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(GameViewController.addPulse))
tapGestureRecognizer.numberOfTapsRequired = 1
Ghost.addGestureRecognizer(tapGestureRecognizer)

最佳答案

我担心您将 UIKit 元素与 Sprite-kit 元素混合在一起,您将承载场景的容器与场景本身混淆了。

SKViewUIView 的子类。它将 Sprite-kit 内容包装在一个可以像任何其他 UIView 一样使用的 View 中,事实上它通常有一个关联的 View Controller 。

场景是一个 SKScene 类。它提供实现游戏所需的回调(物理、SKNode 子类元素、 Action 、更新..)。

通常,当您呈现场景以换出游戏内容时, View 保持原样。

所以我很怀疑你想用你的代码实现什么,如果你想做一个显示脉冲的 Action ,你应该在你的场景中构建和调用这个方法,而不是在 UIViewController 托管您的游戏..

关于ios - 如何从游戏场景中调用一个 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41906378/

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