未出现在 GameScene.swift 中的班级成员



我正在尝试制作一个游戏,其中你有一头猪,你滑动或按住猪移动。我为我的猪上了一个带有归属的课程,但GameScene.swift出现错误,说guy不是porker的成员。请帮忙。

        import SpriteKit
        import UIKit
    class GameScene: SKScene {
    var porker:Porker!
    var touchLocation = CGFloat()
    var gameOver = false

    override func didMoveToView(view: SKView) {
        addBG()
        addPig()
    }
    func addBG() {
        let bg = SKSpriteNode(imageNamed: "bg");
        addChild(bg)
    }
    func addPig() {
        let Pig = SKSpriteNode(imageNamed: "pig")
        porker = Porker(guy:Pig)
        addChild(Pig)
    }
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

        for touch: AnyObject in touches{
            if !gameOver {
                touchLocation = (touch.locationInView(self.view!).y * -1) + (self.size.height/2)
            }
        }
        let MoveAction = SKAction.moveToY(touchLocation, duration: 0.5)
        MoveAction.timingMode = SKActionTimingMode.EaseOut
        Porker.guy.runAction(MoveAction)    }

    override func update(currentTime: CFTimeInterval) {
        /* Called before each frame is rendered */
    }
}

这是猪类

import Foundation
import SpriteKit
class Porker {
    var Guy:SKSpriteNode
    var speed = 0.1
    init(guy:SKSpriteNode){
        self.Guy = guy
    }
}

首先,变量/常量/参数名称应以小写字母开头,因此不要将它们与类名混淆。例如

class Porker {
    var guy:SKSpriteNode
    var speed = 0.1
    init(guy:SKSpriteNode){
        self.guy = guy
    }
}

内部触摸开始了:

let moveAction = SKAction.moveToY(touchLocation, duration: 0.5)
moveAction.timingMode = SKActionTimingMode.EaseOut
porker.guy.runAction(MoveAction)

希望这能解决问题!

最新更新