我正在尝试制作一个游戏,其中你有一头猪,你滑动或按住猪移动。我为我的猪上了一个带有归属的课程,但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)
希望这能解决问题!