30歳高卒男子がプログラミングを習得してみるブログ -36ページ目

30歳高卒男子がプログラミングを習得してみるブログ

今年30歳になった高卒男子が自分で稼げるスキルを身に着けたいと思いたちSwiftのコードを学習しています。
最近はHTML/CSSとJavascriptをやってます。そのうちまた、スイフトもやろうと思ってます。

みなさんこんばんは。

僕は先月の27日からプログラミングを志し、schooで勉強をはじめたのですが今のバージョンのswiftでは走らないコードがあるので占いアプリを作るのにサクッとはいきませんでした。

調べて一通り動いたコードを貼るので参考にしていただけると幸いです。

ちなみに横にシェイクするアニメーションはどう調べてもわからなかったんでいつかわかったときに書いてみようと思います。

大吉と中吉が出やすくなってますがそこは好みで変えてください。

おやすみなさい。

 

Swift:ViewController.swift

 

import UIKit

import AVFoundation

 

class ViewController: UIViewController {

 

    @IBOutlet weak var animalLabel: UILabel!

    @IBOutlet weak var resultLabel: UILabel!

    

    var player: AVAudioPlayer!

    var BGMPlayer : AVAudioPlayer!

    

    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view.

        

        self.navigationController?.setNavigationBarHidden(true, animated: false)

        

        let url = Bundle.main.bundleURL.appendingPathComponent("bgm.mp3")

        

        do{

            BGMPlayer = try AVAudioPlayer(contentsOf : url)

            BGMPlayer.numberOfLoops = -1

            BGMPlayer.volume = 0.2

            BGMPlayer.prepareToPlay()

            BGMPlayer.play()

            

        }catch{

            print("BGMエラーです。")

        }

    }

    override func viewWillAppear(_ animated : Bool){

        super.viewWillAppear(animated)

        if !BGMPlayer.isPlaying{

            BGMPlayer.play()

        }

    }

    override func viewDidAppear(_ animated : Bool){

        super.viewDidAppear(animated)

    }

    override func viewWillDisappear(_ animated : Bool){

        super.viewWillDisappear(animated)

        if BGMPlayer.isPlaying{

            BGMPlayer.pause()

        }

    }

    override func viewDidDisappear(_ animated : Bool){

        super.viewDidDisappear(animated)

        }

 

    @IBAction func tellFortunes(_ sender: Any) {

        

        UIView.animate(withDuration :1.0, animations: {

            

            self.animalLabel.transform = CGAffineTransform(scaleX: 0.2, y: 0.2)

            self.resultLabel.isHidden = true

            self.animalLabel.alpha = 0.0

            

        }, completion: { (bool) -> Void in

            

            self.animalLabel.transform = CGAffineTransform.identity

            self.resultLabel.isHidden = false

            self.animalLabel.alpha = 1.0

            self.changeLabel()

        })

    }

    

    func changeLabel(){

        

        let random = arc4random_uniform(100)

        var soundName = ""

        

        switch random{

        case 0..<25:

            animalLabel.text = "🐩"

            resultLabel.text = "大吉だワン!"

            soundName = "Dog.mp3"

            

        case 25..<50:

            animalLabel.text = "😻"

            resultLabel.text = "中吉だニャー!"

            soundName = "Cat.mp3"

            

        case 50..<70:

            animalLabel.text = "🐎"

            resultLabel.text = "吉だヒヒーン!"

            soundName = "Hose.mp3"

            

        case 70..<80:

            animalLabel.text = "🐑"

            resultLabel.text = "末吉だメェ~!"

            soundName = "Sheep.mp3"

            

        case 80..<90:

            animalLabel.text = "🐘"

            resultLabel.text = "凶だゾウ"

            soundName = "Elephant.mp3"

            

        default:

            animalLabel.text = "🐯"

            resultLabel.text = "大凶だガオー!!"

            soundName = "Tiger.mp3"

        }

        

        let url = Bundle.main.bundleURL.appendingPathComponent(soundName)

        

        do{

            player = try AVAudioPlayer(contentsOf : url)

            player.play()

        } catch {

            print("鳴き声エラーです。")

        }

    }

}