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

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

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

SpriteKitは、iOSやOS Xで使用できるApple社製の2Dゲーム開発フレームワークです。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

1回答

1562閲覧

Swift2, SpriteKitのSKActionについて質問です

masayuki07

総合スコア51

SpriteKit

SpriteKitは、iOSやOS Xで使用できるApple社製の2Dゲーム開発フレームワークです。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2016/02/21 09:09

編集2016/02/21 09:12

問題を出題して、違う答えをタップしたら ×と表示させて、その後消える。
と言った動きをしたいのですが、上手くいきません。
最初の一回目は上手くできるのですが、2回目以降が上手くいきません。
原因としては、消えたままになっているので、次の時に表示されないと思うのですが、どうすれば良いでしょうか?
コードは以下になります。

func answerCheck() { //正解時の処理 } else { //不正解時の処置 (×) var Label = SKLabelNode(fontNamed: "Chalkduster") let action = SKAction.fadeAlphaTo(0,duration: 0.5) Label.text = "×" Label.runAction(action) }

Time の横 ×

}

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

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

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

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

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

guest

回答1

0

ベストアンサー

ラベルのalpha値を1に設定してからアクションを実行すれば良さそうです。

以下は実装してみた結果です。

swift

1 2class GameScene: SKScene { 3 4 let myLabel = SKLabelNode(fontNamed:"Chalkduster") 5 6 override func didMoveToView(view: SKView) { 7 // ラベルの初期設定 8 myLabel.text = "" 9 myLabel.fontSize = 45 10 myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)) 11 myLabel.alpha = 0 12 self.addChild(myLabel) 13 14 // ボタン1(正解) 15 let myButtonCorrect = UIButton() 16 myButtonCorrect.frame = CGRectMake(0,0,200,40) 17 myButtonCorrect.backgroundColor = UIColor.redColor(); 18 myButtonCorrect.setTitle("1", forState: UIControlState.Normal) 19 myButtonCorrect.layer.position = CGPoint(x: self.view!.frame.width/2 - 100, y:CGRectGetMidY(self.frame) + 100) 20 myButtonCorrect.addTarget(self, action: "onClickMyButton:", forControlEvents: .TouchUpInside) 21 myButtonCorrect.tag = 1 22 self.view!.addSubview(myButtonCorrect); 23 24 // ボタン2(不正解) 25 let myButtonIncorrect = UIButton() 26 myButtonIncorrect.frame = CGRectMake(0,0,200,40) 27 myButtonIncorrect.backgroundColor = UIColor.blueColor(); 28 myButtonIncorrect.setTitle("2", forState: UIControlState.Normal) 29 myButtonIncorrect.layer.position = CGPoint(x: self.view!.frame.width/2 + 100, y:CGRectGetMidY(self.frame) + 100) 30 myButtonIncorrect.addTarget(self, action: "onClickMyButton:", forControlEvents: .TouchUpInside) 31 myButtonIncorrect.tag = 2 32 self.view!.addSubview(myButtonIncorrect); 33 34 } 35 36 func onClickMyButton(sender : UIButton){ 37 answerCheck(sender.tag) 38 } 39 40 func answerCheck(let answer: Int) { 41 42 let correctAnswer = 1 // 質問に合わせて変更する必要がある 43 let correct = (answer == correctAnswer) 44 45 if correct 46 { 47 myLabel.alpha = 1 48 let action = SKAction.fadeAlphaTo(0,duration: 0.5) 49 myLabel.text = "o" 50 myLabel.runAction(action) 51 } 52 else 53 { 54 myLabel.alpha = 1 55 let action = SKAction.fadeAlphaTo(0,duration: 0.5) 56 myLabel.text = "x" 57 myLabel.runAction(action) 58 } 59 } 60}

投稿2016/02/21 09:40

K_S_

総合スコア419

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

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

masayuki07

2016/02/21 14:33

回答ありがとうございます。最初に値を設定したら上手くいきました。 分かりやすいコードまで書いて頂いて本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問