2017-02-20 49 views
1

Я работаю над своей игрой, все, кажется, идет отлично, но я продолжаю получать это сообщение об ошибке Это часть кода, в котором эта ошибка включена. Игрок является классомНевозможно присвоить значение типа Player для ввода SKSpriteNode

player = Player(node: player, particles: playerParticles!)

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 
    let playerParticles = SKEmitterNode(fileNamed: "") 
    playerParticles?.isHidden = true 
    player = Player(node: player, particles: playerParticles!) 
    player.addChild(playerParticles!) 
    addChild(player) 

Вот класс игрока:

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") 
    } 

} 
+0

'вара игрока = SKSpriteNode (imageNamed:«игрока. png ")' дает переменной 'player' неявный тип' SKSpriteNode'. Зачем вам переназначать его значением типа «Player»? Наследует ли 'Player' от' SKSpriteNode'? – crizzis

+0

Ошибка в том, что игрок, если тип SKSpriteNode, и вот как вы его создали, но затем вы пытаетесь создать его как объект Player, чего он не может сделать, потому что это тип SKSpriteNode. –

ответ

2

Попробуйте что-то вроде этого

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) 
+0

Спасибо, что сработали :) – Bran

+0

@Bran добро пожаловать! – sicvayne