組織你的寶可夢戰隊來一決勝負吧!

這次打算將幾個學到功能給集合起來,做一個app來綜合展示,具體用到的功能有用Stepper來做數量上的改變,寶可夢全部數量、HP、戰力、防禦的加減,並顯示在各自的Label上,再來就是將Slider作為寶可夢展示的Scrollbars使用,另外,在觸發各寶可夢的Stepper時,會發出由系統唸的寶可夢叫聲,每隻叫聲都不一樣。

PS:不得不說挑對主題在練習的時候真的省很多素材準備時間,這次所用素材是參考寶可夢圖鑒的網站,所以寶可夢都是一致畫風、大小、背景透明,真的很是棒棒~

參考的連結

app寫起來~

import UIKitimport Foundationimport AVFoundationclass ViewController: UIViewController {//設定各個數字初始值var pQuantity = 0var hQuantity = 0var jQuantity = 0var mQuantity = 0var pQuantity2 = 0var hQuantity2 = 0var jQuantity2 = 0var mQuantity2 = 0var pQuantity3 = 0var hQuantity3 = 0var jQuantity3 = 0var mQuantity3 = 0var allQuantity = 0var allHp = 0var allFt = 0var allDf = 0//前四隻的數量@IBOutlet weak var pLabel: UILabel!@IBOutlet weak var hLabel: UILabel!@IBOutlet weak var jLabel: UILabel!@IBOutlet weak var mLabel: UILabel!//中四隻的數量@IBOutlet weak var pLabel2: UILabel!@IBOutlet weak var hLabel2: UILabel!@IBOutlet weak var jLabel2: UILabel!@IBOutlet weak var mLabel2: UILabel!// 後四隻的數量@IBOutlet weak var pLabel3: UILabel!@IBOutlet weak var hLabel3: UILabel!@IBOutlet weak var jLabel3: UILabel!@IBOutlet weak var mLabel3: UILabel!//全部總和的數量、hp總數、戰力總數、防禦總數@IBOutlet weak var allLabel: UILabel!@IBOutlet weak var hpLabel: UILabel!@IBOutlet weak var ftLabel: UILabel!@IBOutlet weak var dfLabel: UILabel!@IBOutlet var framescrollView: UIScrollView!@IBOutlet weak var xySliderOutlet: UISlider!override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view.}@IBAction func xySlider(_ sender: UISlider) {framescrollView.frame.origin.x = CGFloat(0 - 746 * xySliderOutlet.value)}/*  @IBAction func xySlider(_ sender: Any) {framescrollView.frame = CGRect(x: 0, y: 288, width: 1160, height: 390)framescrollView.frame.origin.x = (0 - 746 * xy)}*///每個Stepper的func執行完後都會執行一次 allStepper func 是為了將值加到總數//前四隻按鍵(皮卡丘、小火龍、傑尼龜、妙蛙種子)@IBAction func pStepper(_ sender: UIStepper) {pLabel.text = "\(Int(sender.value))"pQuantity = Int(sender.value)//點擊Stepper產生叫聲let pSpeechUtteranc = AVSpeechUtterance(string: "皮卡皮卡")pSpeechUtteranc.voice = AVSpeechSynthesisVoice(language: "zh-TW")pSpeechUtteranc.rate = 0.6let pSynthesizer = AVSpeechSynthesizer()pSynthesizer.speak(pSpeechUtteranc)allStepper ()}@IBAction func hStepper(_ sender: UIStepper) {hLabel.text = "\(Int(sender.value))"hQuantity = Int(sender.value)//點擊Htepper產生叫聲let hSpeechUtteranc = AVSpeechUtterance(string: "火火火火")hSpeechUtteranc.voice = AVSpeechSynthesisVoice(language: "zh-TW")hSpeechUtteranc.rate = 0.6let hSynthesizer = AVSpeechSynthesizer()hSynthesizer.speak(hSpeechUtteranc)allStepper ()}@IBAction func jStepper(_ sender: UIStepper) {jLabel.text = "\(Int(sender.value))"jQuantity = Int(sender.value)//點擊jtepper產生叫聲let jSpeechUtteranc = AVSpeechUtterance(string: "傑尼傑尼")jSpeechUtteranc.voice = AVSpeechSynthesisVoice(language: "zh-TW")jSpeechUtteranc.rate = 0.5let jSynthesizer = AVSpeechSynthesizer()jSynthesizer.speak(jSpeechUtteranc)allStepper ()}@IBAction func mStepper(_ sender: UIStepper) {mLabel.text = "\(Int(sender.value))"mQuantity = Int(sender.value)//點擊mtepper產生叫聲let mSpeechUtteranc = AVSpeechUtterance(string: "種子種子")mSpeechUtteranc.voice = AVSpeechSynthesisVoice(language: "zh-TW")mSpeechUtteranc.rate = 0.6let mSynthesizer = AVSpeechSynthesizer()mSynthesizer.speak(mSpeechUtteranc)allStepper ()}//中四隻按鍵(雷丘、火恐龍、卡咪龜、妙蛙草)@IBAction func pStepper2(_ sender: UIStepper) {pLabel2.text = "\(Int(sender.value))"pQuantity2 = Int(sender.value)//點擊ptepper2產生叫聲let pSpeechUtteranc2 = AVSpeechUtterance(string: "雷雷雷雷")pSpeechUtteranc2.voice = AVSpeechSynthesisVoice(language: "zh-TW")pSpeechUtteranc2.rate = 0.6let pSynthesizer2 = AVSpeechSynthesizer()pSynthesizer2.speak(pSpeechUtteranc2)allStepper ()}@IBAction func hStepper2(_ sender: UIStepper) {hLabel2.text = "\(Int(sender.value))"hQuantity2 = Int(sender.value)//點擊htepper2產生叫聲let hSpeechUtteranc2 = AVSpeechUtterance(string: "火恐火恐")hSpeechUtteranc2.voice = AVSpeechSynthesisVoice(language: "zh-TW")hSpeechUtteranc2.rate = 0.6let hSynthesizer2 = AVSpeechSynthesizer()hSynthesizer2.speak(hSpeechUtteranc2)allStepper ()}@IBAction func jStepper2(_ sender: UIStepper) {jLabel2.text = "\(Int(sender.value))"jQuantity2 = Int(sender.value)//點擊jtepper2產生叫聲let jSpeechUtteranc2 = AVSpeechUtterance(string: "卡咪卡咪")jSpeechUtteranc2.voice = AVSpeechSynthesisVoice(language: "zh-TW")jSpeechUtteranc2.rate = 0.6let jSynthesizer2 = AVSpeechSynthesizer()jSynthesizer2.speak(jSpeechUtteranc2)allStepper ()}@IBAction func mStepper2(_ sender: UIStepper) {mLabel2.text = "\(Int(sender.value))"mQuantity2 = Int(sender.value)//點擊mtepper2產生叫聲let mSpeechUtteranc2 = AVSpeechUtterance(string: "草屋草屋")mSpeechUtteranc2.voice = AVSpeechSynthesisVoice(language: "zh-TW")mSpeechUtteranc2.rate = 0.6let mSynthesizer2 = AVSpeechSynthesizer()mSynthesizer2.speak(mSpeechUtteranc2)allStepper ()}//後四隻按鍵(雷丘-阿羅拉、噴火龍、水艦龜、妙蛙花)@IBAction func pStepper3(_ sender: UIStepper) {pLabel3.text = "\(Int(sender.value))"pQuantity3 = Int(sender.value)//點擊ptepper3產生叫聲let pSpeechUtteranc3 = AVSpeechUtterance(string: "雷雷雷雷")pSpeechUtteranc3.voice = AVSpeechSynthesisVoice(language: "zh-TW")pSpeechUtteranc3.rate = 0.6let pSynthesizer3 = AVSpeechSynthesizer()pSynthesizer3.speak(pSpeechUtteranc3)allStepper ()}@IBAction func hStepper3(_ sender: UIStepper) {hLabel3.text = "\(Int(sender.value))"hQuantity3 = Int(sender.value)//點擊htepper3產生叫聲let hSpeechUtteranc3 = AVSpeechUtterance(string: "啊嗚啊嗚")hSpeechUtteranc3.voice = AVSpeechSynthesisVoice(language: "zh-TW")hSpeechUtteranc3.rate = 0.6let hSynthesizer3 = AVSpeechSynthesizer()hSynthesizer3.speak(hSpeechUtteranc3)allStepper ()}/* @IBAction func jStepper3(_ sender: UIStepper) {jLabel3.text = "\(Int(sender.value))"jQuantity3 = Int(sender.value)allStepper ()}*/@IBAction func jStepper3(_ sender: UIStepper) {jLabel3.text = "\(Int(sender.value))"jQuantity3 = Int(sender.value)//點擊jtepper3產生叫聲let jSpeechUtteranc3 = AVSpeechUtterance(string: "水水水劍")jSpeechUtteranc3.voice = AVSpeechSynthesisVoice(language: "zh-TW")jSpeechUtteranc3.rate = 0.6let jSynthesizer3 = AVSpeechSynthesizer()jSynthesizer3.speak(jSpeechUtteranc3)allStepper ()}@IBAction func mStepper3(_ sender: UIStepper) {mLabel3.text = "\(Int(sender.value))"mQuantity3 = Int(sender.value)//點擊mtepper3產生叫聲let mSpeechUtteranc3 = AVSpeechUtterance(string: "花啊花啊")mSpeechUtteranc3.voice = AVSpeechSynthesisVoice(language: "zh-TW")mSpeechUtteranc3.rate = 0.6let mSynthesizer3 = AVSpeechSynthesizer()mSynthesizer3.speak(mSpeechUtteranc3)allStepper ()}//總數值執行此func將所有總值加起來func allStepper (){//總隻數
allQuantity = pQuantity + jQuantity + hQuantity + mQuantity + pQuantity2 + jQuantity2 + hQuantity2 + mQuantity2 + pQuantity3 + jQuantity3 + hQuantity3 + mQuantity3
allLabel.text = "\(Int(allQuantity))"//總hp
allHp = pQuantity*20 + hQuantity*20 + jQuantity*20 + mQuantity*20 + pQuantity2*30 + hQuantity2*30 + jQuantity2*30 + mQuantity2*30 + pQuantity3*35 + hQuantity3*35 + jQuantity3*35 + mQuantity3*35
hpLabel.text = "\(Int(allHp))"//總攻
allFt = pQuantity*32 + hQuantity*35 + jQuantity*28 + mQuantity*25 + pQuantity2*40 + hQuantity2*42 + jQuantity2*36 + mQuantity2*32 + pQuantity3*40 + hQuantity3*52 + jQuantity3*45 + mQuantity3*45
ftLabel.text = "\(Int(allFt))"//總防
allDf = pQuantity*18 + hQuantity*15 + jQuantity*30 + mQuantity*20 + pQuantity2*30 + hQuantity2*25 + jQuantity2*40 + mQuantity2*30 + pQuantity3*35 + hQuantity3*32 + jQuantity3*48 + mQuantity3*44
dfLabel.text = "\(Int(allDf))"}}

完成後的樣子

iphone 11 pro max 模擬器(錄製時沒錄到聲音,要聽聲音請看iphone 7 plus)

iphone 7 plus(請開喇叭)

--

--