【发布时间】:2019-02-02 08:33:08
【问题描述】:
我创建了一个 UIImageView,它应该与关联节点具有相同的位置,但由于 UIView 的坐标不等于节点的坐标,因此视图有时位于错误的位置。
所以问题是是否有一种方法可以将图像定位在节点中并留在那里。
Here you can see the result of the code below
提前谢谢你。
import SpriteKit
class GameScene: SKScene {
var player = SKSpriteNode()
var frames : Array = [UIImage]()
var playerView = UIImageView()
override func didMove(to view: SKView) {
player = SKSpriteNode(color: .clear , size: CGSize(width: 50, height: 100))
player.physicsBody = SKPhysicsBody(rectangleOf: player.size)
player.physicsBody?.affectedByGravity = false
for i in 1...6 {
frames.append(UIImage(named: "playerRunLeft-\(i)")!)
playerView.contentMode = .topLeft
}
player.position = CGPoint(x: 0, y: 0)
playerView.animationImages = frames
playerView.animationDuration = 0.5
playerView.contentScaleFactor = 6
playerView.frame.origin = CGPoint(x: view.center.x , y: view.center.y)
playerView.startAnimating()
addChild(player)
view.addSubview(playerView)
}
}
【问题讨论】:
-
playerView.center = view.center 而不是 frame.origin。
-
同样的结果。我必须补充一点,当节点移动时 UIImageview 应该移动到相同的位置
-
player.anchorPoint = CGPoint(0,0) 或 CGPoint(0,1)
-
同样的结果。我正在考虑为 UIImageview 设置依赖于底层节点位置的约束,但我认为应该有更简单的方法。
-
func animate(with textures: [SKTexture], timePerFrame sec: TimeInterval)怎么样。混合两个系统并不常见。
标签: swift uiview sprite-kit position constraints