ゲーム画面でよくあるような、ボタンを押すことでどんどんセリフが変わっていくような方法について調べています。
Int型を利用してif文で処理してやればいいのではないかと考えてみたのですが、
Swift
1class ViewController: UIViewController 2 3@IBOutlet weak var label: UILabel! 4var num:Int = 0 5 6 @IBAction func Button(_ sender: Any) { 7 num = 1 8 self.label.text = "いちばんめ" 9 10 if num == 1 { 11 self.label.text = "にばんめ" 12 num = 2 13 } 14 }
これでは、ボタンを押した瞬間にnum = 1
となってしまい、if文を満たしてしまうため、「いちばんめ」という文字は反映されず、「にばんめ」という文字がいきなり反映されてしまうことに気づきました。
また、複数のボタンを同じ場所に配置し、一つを除いてalphaを0にしたのち、そのボタンひとつひとつに
Swift
1 @IBAction func Button2(_ sender: Any) { 2 if num == 1 { 3 self.label.text = "にばんめ" 4 num = 2 5 } 6 } 7 8 @IBAction func Button3(_ sender: Any) { 9 if num == 2 { 10 self.label.text = "さんばんめ" 11 num = 3 12 } 13 } 14//これの繰り返し
のようにすれば、擬似的に一つのボタンでどんどんセリフが変わっていくように見せることはできるかとも考えましたが、ボタンの上下関係?の問題で、「いちばんめ」しか反映されず、以降何度タップしてもlabelが切り替わることはありませんでした。
また、Objective-Cで、tapCountという方法でif文に処理させているページがあり、何かヒントになるかもと思ってみたりもしたのですが、Swiftではどういった記述になるのか分からず…。
ゲーム等作っていくうえでかなり基礎的な部分になるかと思うのですが、その書き方が分からずに困っています。
一つのボタンでどんどんとセリフを変えていく方法、あるいは、擬似的にそう見せる方法などありましたらご教授をお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/14 07:21
2017/11/14 07:30