質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Q&A

1回答

191閲覧

xcode8 エラー表示

ONELIFELIVEIT

総合スコア16

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

0グッド

0クリップ

投稿2017/08/27 17:57

編集2017/08/28 07:31

現在音楽記憶力ゲームを作成中です。

画像1の再生ボタンを押すと、青・赤・緑・ピンクがそれぞれ1つずつ点滅しながら音が流れ、流れた順番を記憶しその手順通りになぞるというゲームです。

ですが。。。下記の写真の内容のエラーが出てしまい色々調べたのですが、わかりません。

シュミレーションで確認をし、ボタンをクリックするとそれぞれ音が流れるところまではできたのですが、その後からの再生ボタンクリック→ゲームスタート→ランダムに点滅+音が流れる→それを記憶→同じ順番にクリックといった工程が行えません。(※シュミレーション再生を押すと写真のようなエラーが出て再生できません。)

よければ誰か教えてくださいm(_ _)m

(※エラーは下記の写真(2〜3)の2箇所です)


イメージ説明


イメージ説明

![イメージ説明]

import

1import SpriteKit 2import GameplayKit 3import AVFoundation 4 5 6class GameViewController: UIViewController,AVAudioPlayerDelegate { 7 @IBOutlet weak var startGameButton: UIButton! 8 9 @IBOutlet var soundButton: [UIButton]! 10 11 @IBOutlet weak var levelLabel: UILabel! 12 13 var sound1Player:AVAudioPlayer! 14 var sound2Player:AVAudioPlayer! 15 var sound3Player:AVAudioPlayer! 16 var sound4Player:AVAudioPlayer! 17 var PlayList = [Int]() 18 var currenItem = 0 19 var numberOfTaps = 0 20 var readyForUser = false 21 var level = 1 22 23 override func viewDidLoad() { 24 super.viewDidLoad() 25 setupAudioFiles() 26 } 27 28 func setupAudioFiles(){ 29 30 let soundFilePath = Bundle.main.path(forResource:"1", ofType: "wav") 31 let soundFileURL = URL(fileURLWithPath: soundFilePath!) 32 let soundFilePath2 = Bundle.main.path(forResource:"2", ofType: "wav") 33 let soundFileURL2 = URL(fileURLWithPath: soundFilePath2!) 34 let soundFilePath3 = Bundle.main.path(forResource:"3", ofType: "wav") 35 let soundFileURL3 = URL(fileURLWithPath: soundFilePath3!) 36 let soundFilePath4 = Bundle.main.path(forResource:"4", ofType: "wav") 37 let soundFileURL4 = URL(fileURLWithPath: soundFilePath4!) 38 do{ 39 sound1Player = try AVAudioPlayer(contentsOf: soundFileURL) 40 sound2Player = try AVAudioPlayer(contentsOf: soundFileURL2) 41 sound3Player = try AVAudioPlayer(contentsOf: soundFileURL3) 42 sound4Player = try AVAudioPlayer(contentsOf: soundFileURL4) 43 44 } catch { 45 print(error) 46 47 } 48 49 sound1Player.delegate = self 50 sound2Player.delegate = self 51 sound3Player.delegate = self 52 sound4Player.delegate = self 53 54 sound1Player.numberOfLoops = 0 55 sound2Player.numberOfLoops = 0 56 sound3Player.numberOfLoops = 0 57 sound4Player.numberOfLoops = 0 58 59 } 60 61 @IBAction func soundButtonPressed(_ sender: AnyObject) { 62 63 if readyForUser { 64 65 let button = sender as! UIButton 66 67 switch button.tag { 68 case 1: 69 sound1Player.play() 70 checkIfCorrect(buttonPressed: 1) 71 case 2: 72 sound2Player.play() 73 checkIfCorrect(buttonPressed: 2) 74 75 case 3: 76 sound3Player.play() 77 checkIfCorrect(buttonPressed: 3) 78 79 case 4: 80 sound4Player.play() 81 checkIfCorrect(buttonPressed: 4) 82 83 84 break 85 default: 86 break 87 } 88 89 } 90 91 92 } 93 94 func checkIfCorrect (buttonPressed:Int){ 95 96 if buttonPressed == PlayList[numberOfTaps] { 97 98 if numberOfTaps == PlayList.count - 1 { //we have arrived at the last item of the playList 99 100 let time = DispatchTime.now(dispatch_time_t(DISPATCH_TIME_NOW),Int64(NSEC_PER_SEC)) 101 102 dispatch_after(time, DispatchQueue.main, { 103 104 105 self.nextRound() 106 107 }) 108 109 return 110 111 } 112 113 numberOfTaps += 1 114 115 116 }else{//GAME OVER 117 118 resetGame() 119 120 } 121 } 122 123 func resetGame() { 124 125 level = 1 126 readyForUser = false 127 numberOfTaps = 0 128 currenItem = 0 129 PlayList = [] 130 levelLabel.text = "GAME OVER" 131 startGameButton.isHidden = false 132 disableButtons() 133 } 134 135 136 func nextRound() { 137 138 level += 1 139 levelLabel.text = "level\(level)" 140 readyForUser = false 141 142 numberOfTaps = 0 143 currenItem = 0 144 disableButtons() 145 146 147 let randomNumber = Int(arc4random_uniform(4) + 1) 148 149 PlayList.append(randomNumber) 150 151 playNextItem() 152 153 } 154 155 156 @IBAction func startGame(_ sender: AnyObject) { 157 disableButtons() 158 levelLabel.text = "Lebel 1" 159 160 161 162 let randomNunber = Int(arc4random_uniform(4) + 1) 163 PlayList.append(randomNunber) 164 startGameButton.isHidden = true 165 playNextItem() 166 disableButtons() 167 168 } 169 170 171 func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) { 172 173 if currenItem <= PlayList.count - 1{ 174 playNextItem() 175 176 }else{ 177 readyForUser = true 178 179 180 } 181 182 } 183 184 func playNextItem(){ 185 let selectedItem = PlayList[currenItem] 186 187 switch selectedItem { 188 189 case 1: 190 highlightButtonWithTag (tag: 1) 191 sound1Player.play() 192 break 193 194 case 2: 195 highlightButtonWithTag (tag: 2) 196 sound2Player.play() 197 break 198 199 case 3: 200 highlightButtonWithTag (tag: 3) 201 sound3Player.play() 202 break 203 204 case 4: 205 highlightButtonWithTag (tag: 4) 206 sound4Player.play() 207 break 208 209 default: 210 break; 211 212 } 213 214 215 currenItem += 1 216 217 218 } 219 220 func highlightButtonWithTag (tag:Int){ 221 switch tag { 222 case 1: 223 224 soundButton[tag - 1].setImage(UIImage(named:"redPressed"), for: .normal) 225 case 2: 226 227 soundButton[tag - 1].setImage(UIImage(named:"redPressed"), for: .normal) 228 case 3: 229 230 soundButton[tag - 1].setImage(UIImage(named:"redPressed"), for: .normal) 231 case 4: 232 233 soundButton[tag - 1].setImage(UIImage(named:"redPressed"), for: .normal) 234 default: 235 break 236 237 } 238 239 } 240 func resetButtonHightlights() { 241 242 soundButton[1].setImage(UIImage(named:"blue"),for: .normal) 243 soundButton[2].setImage(UIImage(named:"green"),for: .normal) 244 soundButton[3].setImage(UIImage(named:"red"),for: .normal) 245 soundButton[4].setImage(UIImage(named:"purple"),for: .normal) 246 247 } 248 249 func resetButtonHightlights() { 250 251 soundButton[1].setImage(UIImage(named:"bluePressed"),for: .normal) 252 soundButton[2].setImage(UIImage(named:"greenPressed"),for: .normal) 253 soundButton[3].setImage(UIImage(named:"redPressed"),for: .normal) 254 soundButton[4].setImage(UIImage(named:"pueplePressed"),for: .normal) 255 256 } 257 258 func disableButtons () { 259 for button in soundButton { 260 button.isUserInteractionEnabled = false 261 262} 263 264 func enableButtons() { 265 for button in soundButton { 266 button.isUserInteractionEnabled = true 267 268 } 269 270 func didReceiveMemoryWarning(){ 271 super.didReceiveMemoryWarning() 272 // Release any cached data, images, etc that aren't in use. 273

わかりづらい説明で申し訳有りませんが、よろしくおねがいいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2017/08/28 00:16

コードやエラーメッセージは画像ではなくテキストで書いて(コピペして)下さい。
ONELIFELIVEIT

2017/08/28 07:05

ご指摘ありがとうございます。ただいま編集を行いました。すみませんでした。
guest

回答1

0

ひとつめ

swift

1 let time = DispatchTime.now()
ふたつめ

同じ名前の関数が二つあります。どちらかを削除するか名前を変更して下さい。

投稿2017/08/28 08:10

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問