初めまして。ゲスト投稿から失礼します。
質問させて頂ける機会にとても感謝しています。
swiftではじめるiPhone開発の教科書(森 巧尚)を参考に
タッチされた時に何をタッチされたか調べるコードを入力しているのですが、エラーになってしまいます。
他の参考書や色々と調べているのですが、参考になるのが見つかりません。お時間がありましたら、回答よろしくお願いします。
ダラダラとコードをお書きして失礼ですが、エラーになるのは、最後の方の
for tNode in touchNodes {
でエラーになります。
エラー内容は
Type"SKNode" not conform to protocol "SequenceType" です。
以下は詳細コードです。
import SpriteKit
import GameplayKit
class GameScene: SKScene {
//ランダム処理
let randomsAurce = GKARC4RandomSource()
//間違いの番号変数
var mistakeNO = 0
//メッセージ let msgLabel = SKLabelNode(fontNamed: "HiraKakuProN-W3") var msg:String = "違う漢字をタップ" let ballMax = 6 var ballList:[SKShapeNode] = [] override func didMoveToView(view: SKView) { self.backgroundColor = UIColor.whiteColor() //メッセージラベル msgLabel.text = msg msgLabel.fontSize = 36 msgLabel.fontColor = UIColor.redColor() msgLabel.position = convertPointFromView(CGPoint(x:130,y:50)) self.addChild(msgLabel) newQuestion()
}
//出題メソッド
func newQuestion() {
//ボール配列リセット
mistakeNO = ballMax
ballList = []
//ballMax個のボール作成 for loopID in 0..<ballMax { //ボールをシェイプノードで作成 let ball = SKShapeNode(circleOfRadius: 45) ball.fillColor = UIColor(red: 1.0, green: 0.9, blue: 0.6, alpha: 1.0) ball.position = CGPoint(x:loopID * 70 + 340,y:600) //シーンに追加 self.addChild(ball) //ボール配列に追加 ballList.append(ball) //漢字を表示するラベルノード let kanji = SKLabelNode(fontNamed: "HiraKakuProN-W6") //問題の設定 if loopID != mistakeNO { kanji.text = "問" }else { kanji.text = "間" } kanji.text = "問" kanji.fontSize = 60 kanji.fontColor = UIColor.blackColor() kanji.position = CGPoint(x:0, y:-25) ball.addChild(kanji)
}
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { for touche in touches { let location = touche.locationInNode(self) let touchNodes = self.nodeAtPoint(location) for tNode in touchNodes { for loopID in 0..<ballMax { if tNode = ballList[loopID] { print("ボール\(loopID)をタッチしました") break } } } } } func answer(NO:Int) { if NO == mistakeNO { msg = "正解" } else { msg = "不正解" } msgLabel.text = msg for loopID in 0..<ballMax { ballList[loopID].removeFromParent() } newQuestion() }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/24 14:49