⭐️ 使用 IBOutlet,IBAction & 亂數創作有趣的 App
遊戲名稱:吃餃子老虎機
遊戲說明:
賭金:也就是玩家帶了多少錢來玩,預設50元
賭注:每一次要下注多少錢,預設最少5元
玩家下好賭注按下play鍵,三個圖片開始跑
跑出三個櫻桃,獎金2倍
跑出三個鈴鐺,獎金3倍
跑出三個7,獎金5倍
以上是我隨便設定,實際上真正的老虎機是幾倍我也不知道
程式說明:
設定外框線及外框顏色
ivImage_0.layer.borderWidth = 4
ivImage_0.layer.borderColor = UIColor.black.cgColor
漸層背景:
參考彼得潘medium
利用 CAGradientLayer 製作漸
做好layer的漸層之後要用view.layer.insertSublayer(gradientLayer, at: 0)將layer加在最底層,用addSubLayer會把整個畫面蓋掉
按下play鍵:
play鍵按下後會設isEnabled = false 避免玩家在執行過程重複按play
執行結束後設isEnabled = true
產生三個亂數,分別代表三個圖片陣列索引值
數字0就代表第0個陣列值
數字1就代表第1個陣列值
依此類推
比較三個亂數是否相等 設定獎金倍數
if r0 == 0 && r1 == 0 && r2 == 0 {
rate = 2
}else if r0 == 1 && r1 == 1 && r2 == 1 {
rate = 3
}else if r0 == 2 && r1 == 2 && r2 == 2 {
rate = 5
}else{
rate = 0
}
換圖說明:
利用 myTimer = Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: #selector(ViewController.switchImage), userInfo: nil, repeats: true)
每隔0.2秒換一次圖,每次去執行ViewController.switchImage,repeats = true表示要重複執行
透過 time 變數控制執行次數
每次減1,直到0則執行myTimer?.invalidate() 結束Timer
結束前透過三個亂數控制三個UIImageView隨機換圖
結束之後顯示中獎倍數 變更賭金金額
加跟減本來要用stepper,但是stepper沒辦法判斷玩家是按加還是減於是改用兩個button
執行結果:
程式碼:
圖片來源:
櫻桃
https://m.599ku.com/sc/6782343.html
7
https://pixabay.com/zh/illustrations/seven-7-number-design-collection-706891/
鈴鐺
GitHub 連結: