iOS App課程練習#13 愛你最好的距離?
-Slider練習
Published in
5 min readAug 26, 2018
好的,說好的趕進度時間不知不覺被睡掉一大半…
看到這個曾經想要嘗試完成的作業,
雖然腦袋裡想到的很多比如說…含滷蛋也能爆紅的代言人
但其實後來決定做的人物是這位…大部分人都只記得他哥而遺忘他的邊緣人角色,電玩界的最佳綠葉,全身上下都很綠,以為是復仇者聯盟跑去代言玉米罐頭的Hunk?其實是他,Mario的弟弟Luigi。
但一開始的過程其實有點卡關,原本有障礙的XY軸只要花點耐心修改就沒有問題,但是Slider Value著實卡了我好久…卡到決定去找中國老周泡茶
(就是夢周公啦…)但是!就說強者我同學實在臥虎藏龍,看到Pei交作業以後就解決了我Slider設定的問題,以下附上原作者連結以示敬意XD
而在遊戲裡面,Luigi他哥除了忙著旋轉跳躍也閉著眼,當然還有劈腿於兩位公主之間(我們不能跟某些政客一樣亂爆料,劈腿的兩位分別叫Peach&Daisy,還都是公主咧~)
而在遊戲裡面兩兄弟的追尋目標,公主都被老哥帶走了,當然最愛的就是無敵星星與金幣了!所以就做出Luigi追逐無敵星星的過程吧!原先是作出了追逐星星最後相遇的過程,致敬一下強者我同學的內容,決定讓綠綠der Luigi對星星說說話。但Xcode 10 換了beta6反而又無法上傳Github,研究許久最後是砍掉重練解決,以下先附上程式碼~
import UIKitimport AVFoundationclass ViewController: UIViewController {//一段outlet與action的故事@IBOutlet weak var luigiImageView: UIImageView!@IBOutlet weak var starImageView: UIImageView!@IBOutlet weak var meetTextfield: UITextField!//拉動slider讓圖案往中間靠近@IBAction func closetoMeSlider(_ sender: UISlider) {luigiImageView.frame.origin.x = CGFloat(156+124*sender.value)starImageView.frame.origin.x = CGFloat(508-124*sender.value)//距離越近速度越快if sender.value == Float(0.6) {luigiImageView.frame.origin.x = CGFloat(156+30*sender.value)starImageView.frame.origin.x = CGFloat(508-30*sender.value)}else{luigiImageView.frame.origin.x = CGFloat(156+124*sender.value)starImageView.frame.origin.x = CGFloat(508-124*sender.value)//愛要說粗乃var speechUtterance = AVSpeechUtterance()let synthesizer = AVSpeechSynthesizer()if sender.value >= 0.9 {speechUtterance = AVSpeechUtterance(string: "Wait for me,dear")speechUtterance.pitchMultiplier = 0.3synthesizer.speak(speechUtterance)//君子愛財取之有道?if sender.value == 1.0 {meetTextfield.text = "Finally~♥️"} else {meetTextfield.text = ""}}}}override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.}}
再來就是demo影片了!最後再附上Github~打完收工!