当将一个SKSpriteNode(条(放在另一个SKNode(基(上时,它会按原样出现。它的一半位于底座顶部,另一半位于底座内部。其代码为:
self.position = CGPoint(x: self.size.width/2, y: myGV.gemBaseSize.height )
结果是有意义的,因为条的锚定点是0.5 0.5。
当我考虑到锚定点时,酒吧最终会在底座上方。
self.position = CGPoint(x: self.size.width/2, y: myGV.gemBaseSize.height + (self.size.height/2))
下面是显示第一次和第二次尝试的图像,下面是条"…"的完整代码。。。代码中只有self.position行发生了更改。您可能需要放大,但左下角的图片显示条形图一半在底座上。
如果有人知道发生了什么,我真的需要一些帮助。
两次尝试的屏幕截图
以防万一,酒吧的整个代码都在这里:
import Foundation
import SpriteKit
class MyBorder : SKSpriteNode{
var nodeType = NodeType.border
init(){
//create SKSpriteNode, size it based on screen size
super.init(texture: SKTexture(imageNamed: "border"), color: .clear, size: CGSize(width: myGV.safeSceneRect.width, height: myGV.safeSceneRect.height * 0.07))
self.anchorPoint = CGPoint(x: 0.5, y: 0.5)
self.isHidden = true
self.isUserInteractionEnabled = false
self.zPosition = theZ.border
self.alpha = 0.5
// position border on top of block
self.position = CGPoint(x: myGV.safeSceneRect.width/2, y: myGV.blockBaseSize.height)
print("Screen Size (myGV.safeSceneRect)")
print(“Block Size (myGV.blockBaseSize)")
print("Border Size (self.size)")
print("Border Pos (self.position)")
myGV.gameScene!.addChild(self)
self.isHidden = false
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
我的愚蠢错误。与其删除我的问题,不如给出答案,以防对其他人有所帮助。
我错误地保存了纹理文件。
它的顶部和底部都填充了透明区域