Ios 无法将类型Player的值分配给类型SKSpriteNode
我正在做我的游戏,一切似乎都很顺利,但我一直收到这个错误信息 这是错误所在的代码段。玩家是一个阶级Ios 无法将类型Player的值分配给类型SKSpriteNode,ios,swift,xcode,sprite-kit,Ios,Swift,Xcode,Sprite Kit,我正在做我的游戏,一切似乎都很顺利,但我一直收到这个错误信息 这是错误所在的代码段。玩家是一个阶级 player=player(节点:player,粒子:playerParticles!) 以下是玩家等级: import Foundation import SpriteKit class Player { var playerr:SKSpriteNode var speed = 0.1 var showParticles = false var particle
player=player(节点:player,粒子:playerParticles!)
以下是玩家等级:
import Foundation
import SpriteKit
class Player {
var playerr:SKSpriteNode
var speed = 0.1
var showParticles = false
var particlesFrameCount = 0
var maxParticleFrames = 20
var particles:SKEmitterNode
init(node:SKSpriteNode, particles:SKEmitterNode) {
self.playerr = node
self.particles = particles
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
试试这样的
func addPlayer() {
var player = SKSpriteNode(imageNamed: "player.png")
player.physicsBody = SKPhysicsBody(texture: player.texture!, size: player.size)
player.physicsBody!.affectedByGravity = false
player.physicsBody!.allowsRotation = false
player.physicsBody!.categoryBitMask = ColliderType.Plyer.rawValue //sets value to 1
player.physicsBody!.contactTestBitMask = ColliderType.Enemy.rawValue //will make contact with any value 2
player.physicsBody!.collisionBitMask = ColliderType.Enemy.rawValue //will collide with any value 2
self.addChild(player)
let playerParticles = SKEmitterNode(fileNamed: "")
playerParticles?.isHidden = true
self.addChild(playerParticles)
var player=SKSpriteNode(imageNamed:“player.png”)
为player
变量提供一个隐式类型的SKSpriteNode
。为什么要用类型为Player
的值重新分配它?Player
是否继承自SKSpriteNode
?错误是,Player if的类型为SKSpriteNode,这是您创建它的方式,但是您尝试将其创建为Player对象,但它无法这样做,因为它的类型为SKSpriteNode。
func addPlayer() {
var player = SKSpriteNode(imageNamed: "player.png")
player.physicsBody = SKPhysicsBody(texture: player.texture!, size: player.size)
player.physicsBody!.affectedByGravity = false
player.physicsBody!.allowsRotation = false
player.physicsBody!.categoryBitMask = ColliderType.Plyer.rawValue //sets value to 1
player.physicsBody!.contactTestBitMask = ColliderType.Enemy.rawValue //will make contact with any value 2
player.physicsBody!.collisionBitMask = ColliderType.Enemy.rawValue //will collide with any value 2
self.addChild(player)
let playerParticles = SKEmitterNode(fileNamed: "")
playerParticles?.isHidden = true
self.addChild(playerParticles)