【发布时间】:2015-08-28 02:04:26
【问题描述】:
我正在尝试根据手机的倾斜来更新精灵的图像。我的代码编译,打印倾斜,并说它正在加载图像但是,当我运行应用程序时,当我移动手机时图像不会改变或更新。有什么建议么?我只添加了我认为相关的内容。当我添加假图像文件时,出现错误(SKTexture:加载图像资源时出错:“FAKEIMAGE”)。这告诉我,当我有正确的图像名称时,它会在代码中更新,只是没有显示在我的屏幕上?
func createPlayer() -> SKNode {
let playerNode = SKNode()
playerNode.position = CGPoint(x: self.size.width / 2, y: 80.0)
var playerSprite: SKSpriteNode = SKSpriteNode(imageNamed: "alienPink_swim1")
playerNode.addChild(playerSprite)
// 1
playerNode.physicsBody = SKPhysicsBody(circleOfRadius: playerSprite.size.width / 2)
// 2
playerNode.physicsBody?.dynamic = false
// 3
playerNode.physicsBody?.allowsRotation = false
// 4
playerNode.physicsBody?.restitution = 1.0
playerNode.physicsBody?.friction = 0.0
playerNode.physicsBody?.angularDamping = 0.0
playerNode.physicsBody?.linearDamping = 0.0
// 1
playerNode.physicsBody?.usesPreciseCollisionDetection = true
// 2
playerNode.physicsBody?.categoryBitMask = CollisionCategoryBitmask.Player
// 3
playerNode.physicsBody?.collisionBitMask = 0
// 4
playerNode.physicsBody?.contactTestBitMask = CollisionCategoryBitmask.Star | CollisionCategoryBitmask.Platform
return playerNode
}
func changePlayerSprite() {
let playerNode = SKNode()
playerNode.position = CGPoint(x: self.size.width / 2, y: 80.0)
var playerSprite: SKSpriteNode
if self.xAcceleration > 0.3{
playerSprite = SKSpriteNode(imageNamed: "alienPink_swim11")
println("Right")
playerNode.addChild(playerSprite)
}
else if self.xAcceleration < -0.3{
playerSprite = SKSpriteNode(imageNamed: "alienPink_swim1")
println("left")
playerNode.addChild(playerSprite)
}
else {
playerSprite = SKSpriteNode(imageNamed: "p3_front")
println("middle")
playerNode.addChild(playerSprite)
}
}
覆盖函数更新(当前时间:NSTimeInterval){
// CoreMotion
// 1
motionManager.accelerometerUpdateInterval = 0.2
// 2
motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue(), withHandler: {
(accelerometerData: CMAccelerometerData!, error: NSError!) in
// 3
let acceleration = accelerometerData.acceleration
// 4
self.xAcceleration = (CGFloat(acceleration.x) * 0.75) + (self.xAcceleration * 0.25)
})
changePlayerSprite()
}
【问题讨论】:
-
我认为您可能想检查您尝试加载的图像,对我来说似乎不是与代码相关的问题
-
@MaxKargin - 我尝试更改图像,经过进一步检查,它似乎只会加载我为“中间”编码的图片。无论我使用什么图像文件,似乎都是这样。当我打印 xAcceleration + 图像文件时,它会打印预期的图像和加速度,但它仍然只显示中间图像,即使我向左或向右倾斜手机。
-
奇怪,我从来没有遇到过这个,但这可能对你有帮助stackoverflow.com/questions/29431567/…
标签: ios swift sprite-kit