【问题标题】:spriteKit object not displayed when drawing background绘制背景时不显示 spriteKit 对象
【发布时间】:2014-08-02 12:13:22
【问题描述】:

我正在使用 xCode 6 beta 4 构建游戏。在 iOS 8 中,一切正常,但在 iOS 7.0 模拟器中,播放器对象不显示。

编辑:感谢 cmets,我将 background.zPosition 更改为 -100,现在我可以看到播放器对象。为什么 iOS 8.0 不需要这样做仍然很奇怪。

我的代码:

class PlayScene : SKScene{


    let background = SKSpriteNode(imageNamed: "background1")
    let player = SKSpriteNode(imageNamed: "ball")
    var ForceX = CGVectorMake(250, 0)
    let Gravity = CGVectorMake(0, -15)
    var bgVelocity = CGFloat(0)
    var maxBgY = CGFloat(0)
    var origRunningBGPosition = CGFloat(0)
    var isJumping=false
    var startedJump = false


    override func didMoveToView(view: SKView!) {

        self.player.position=CGPointMake(150, 150)
        self.player.physicsBody=SKPhysicsBody(rectangleOfSize: self.player.size)
        self.player.physicsBody.affectedByGravity=false
        self.player.physicsBody.mass=CGFloat(1)



        self.background.size=CGSizeMake(self.frame.width, self.frame.height*3)
        self.background.anchorPoint=CGPointMake(0, 0)
        self.background.position=CGPointMake(0, 0)
        bgVelocity+=2.5
        self.maxBgY=self.background.size.height-self.frame.height
        maxBgY*=CGFloat(-1)
        self.origRunningBGPosition=CGRectGetMinY(self.frame)

         self.addChild(self.background)
         self.addChild(self.player)


    }

我发现当我不使用 background 时,我可以看到播放器,但我不明白为什么会发生这种情况以及为什么只在 iOS 7.0 中发生?

【问题讨论】:

  • 你试过zPosition吗?
  • @Desdenova 你是什么意思?请解释
  • 读取 SKNode 类参考以获取 z 位置。
  • 非常感谢!我将 background.zPosition 更改为 -100,现在我可以看到播放器对象。为什么 iOS 8.0 不需要这样做仍然很奇怪。
  • 似乎 iOS 8 按子顺序处理 z 位置。尽管如此,请始终尝试将 z 设置为确定。

标签: ios swift sprite-kit


【解决方案1】:

当您在包含 skScenes 的 viewController 中的 viewDidLoad 中定义您的 skView 时,将其放置,一切都将按照它的用途行事

skView.ignoresSiblingOrder = NO;

【讨论】:

    猜你喜欢
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    相关资源
    最近更新 更多