gpt4 book ai didi

ios - 从 SKSpriteNode 类中获取 GameScene 大小

转载 作者:行者123 更新时间:2023-11-29 02:25:52 25 4
gpt4 key购买 nike

我正在 Swift 中拖动我的 SKSpriteNode。拖动 Sprite 后,我想将其恢复到原来的位置。做这个的最好方式是什么?现在,我正试图将它直接移回指定位置(见代码)。但是,我无法获取场景的屏幕尺寸。使用我当前运行的代码,它返回左下角的节点比我想要的更多(我相信这是因为我引用了自己)。我怎样才能得到场景的大小?

我尝试使用 scene.frame.size.width,但仅通过 self.frame 成功。使用 scene.frame.size.width 返回 "SKScene? does not have a member 'frame'"

这是我的 SKSpriteNode 类文件中的当前函数:

override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
for touch in touches {
zPosition = 0
let newPosition = CGPointMake(CGRectGetMaxX(scene.frame.size.width) * 0.14 , CGRectGetMidY(scene.frame.size.height) * 0.25)
removeAllActions()
let returnSprite = SKAction.moveTo(newPosition, duration: 0.3)
let dropDown = SKAction.scaleTo(0.5, duration: 0.2) //Added Drop Effect

runAction(SKAction.group([returnCard,dropDown]))
}
}

感谢您抽出宝贵的时间和对我的包容。我是新手。

更新:我仍然不知道如何调用 Sprite 节点内的场景。但是,我通过将 CGPoint 添加到 init 参数并从那里引用位置来解决这个问题。

最佳答案

scene.frame.size.width 更改为 scene.size.widthSKScene 有一个 size 属性。它还具有 view 的属性。请注意,size 以磅为单位。如果您要根据大小进行数学运算以生成位置,则需要将场景的 anchorPoint 考虑在内。

默认的 anchorPoint 是 0, 0,也就是 View 的框架矩形的左下角。这就是为什么东西“更多地在左下角”。

我假设为什么 self.frame 起作用是因为您在 SKView 类中这样做。

关于ios - 从 SKSpriteNode 类中获取 GameScene 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27543440/

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