Как исправить объявление SKSpriteNode членом класса Error - PullRequest
0 голосов
/ 04 апреля 2019

Я делаю игру в Xcode с Swift5.Я создал класс Blocks как подкласс SKSpriteNode.Все идет нормально.Затем, когда я объявляю 2 переменные SKSpriteNode 'Block1' и 'Block2' как 'Blocks', это выдает мне эту ошибку: 'SKSpriteNode не конвертируется в' Blocks ''.Замена «как» на «как!»тоже не работаетКто-нибудь может мне помочь?

Я видел этот учебник по Swift3, и я сделал точно так же, как и в Swift5.Очевидно, не сработало. Вот ошибки

Вот код:

import Foundation
import UIKit
import SpriteKit
import ClassKit
import GameplayKit

class Blocks: SKSpriteNode
{
    var isRunning = false
    var timeTillNextRun = UInt32(0)
    var timeWaited = UInt32(0)

    func shouldRunBlock() -> Bool {
        return timeWaited > timeTillNextRun
    }
    init(isRunning: Bool, timeTillNextRun: UInt32, timeWaited: UInt32)
    {
        self.isRunning = isRunning
        self.timeWaited = timeWaited
        self.timeTillNextRun = timeTillNextRun
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

class PlayScene: SKScene {

    let ErouPrinc = SKSpriteNode(imageNamed: "AnduErouFinal")
    let Bar = SKSpriteNode(imageNamed: "Bar")
    var onGround = true
    var velocityY = CGFloat(0)
    var gravity = CGFloat(0.6)
    var limitaY = CGFloat(0.0)
    let Block1:Blocks = SKSpriteNode(imageNamed: "Block1") as Blocks //here gives error
    let Block2:Blocks = SKSpriteNode(imageNamed: "Block2") as Blocks //here gives error
    var blockMaxX = CGFloat(0)
    var groundspeed = CGFloat(0)
    var origBlockX = CGFloat(0)
...