⭐️ 使用 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/

鈴鐺

https://zh.pngtree.com/freepng/festive-atmosphere-bell-gold-yellow-red-combination-festive-celebration-decoration-making_3860973.html

GitHub 連結:

--

--

YiDa,Tsai
彼得潘的 Swift iOS / Flutter App 開發教室

大家好,我是阿達本名蔡易達,目前待業在復健頸椎,另一方面在準備iOS app。