---恢复内容开始---
今天我们来讲的就是项目《掷骰子》
首先我们先下载资源包,也就是我们需要的图片【点击图片下载】
在我们下载完图片之后,我们就可以开始创建项目
一、我们项目的做法可以有两种:
首先我们要看一下我们需要看一下我们的要求成果图
我们创建一个新项目,定义一个throwsDice名字,使用swift语言
创建完之后我们就会看到上面这个图:
我们需要关注ViewController和Main
1、ViewController就是一个视图控制器
2、Main就是我们的视图
- 首先我们先把界面画好
在放骰子的地方需要三张图片,那么我们需要在属性那里找到imageview,
调整imageview的大小,再复制粘贴出2份,就成了下图所示
接下来就是点击按钮,买大买小豹子,
如下图找到button,拖拽到界面上,调整位置和大小,复制出两份,双击按钮写按钮作用,如下图
最后就是关于显示买家和庄家的钱数
我们使用label,,调整位置和大小,复制粘贴多份,双击命名,填写初始值
现在我们的界面就做好了
如何将图片放在imageview上呢?
将我们下载的图片压缩包解压之后,拖入项目中,我们一般是放在Assets.xcassets的一个文件夹中,这里我为了快速,就直接放在外面了
之后点击对应的imageview,点击右上角的属性,找到图片这一行没选择自己在界面上第一次显示的图片(初始化图片)
然后效果就是这样的了!
2.将视图和视图控制器关联起来
3.将功能实现(1、图片切换 2、按钮买大买小 3、判断输赢进行加减运算)
我们的功能在Viewcontroller中进行
如何进行绑定呢?
点击Main,再点击右上角两个圈圈的图案就会显示如图
点击你要绑定的imageview或者button或者label
右键直接拉到视图控制器这个类中,一般的选outlet 事件选action。注意:在这里没有顶级类
这个是按钮的绑定事件,第一个按钮是买大,第二个是卖豹子,第三个是买小
切换图片,就是上图中我们调用的changeImage方法,所以我们要自定义一个方法来切换
在图中使用的imageNumber我们在方法外就要定义赋初始值 var imageNumber = 0 和 我们使用的timer初始化 var timer:Timer?
如何判断是买大买小,我们使用枚举来区别:在类外设置一个枚举,在类中初始化var selectType = SelectType.Big,这样就可以调用枚举进行判断你点击的是买大还是买小
判断输赢给买家和庄家进行加减,当然图中使用的一些属性需要定义
var dice1Num:Int = 0
var dice2Num:Int = 0
var dice3Num:Int = 0
var playerMoney = 1000
var bossMoney = 1000
于是我们这个简单的掷骰子就基本完成了,当然如果我们让它可以横屏同样玩,则需要加约束
下面就是控制器中所有的代码
1 // 2 // ViewController.swift 3 // throwsDice 4 // 5 // Created by c03 on 2016/11/25. 6 // Copyright © 2016年 MakeSmallApp. All rights reserved. 7 // 8 9 import UIKit 10 //定义一个枚举 11 enum SelectType{ 12 case Big,Same,Small 13 } 14 class ViewController: UIViewController { 15 16 @IBOutlet weak var playLabel: UILabel! 17 18 @IBOutlet weak var bossLabel: UILabel! 19 20 @IBOutlet weak var diceViewOne: UIImageView! 21 @IBOutlet weak var diceViewTwo: UIImageView! 22 @IBOutlet weak var diceViewThree: UIImageView! 23 24 var selectType = SelectType.Big 25 var dice1Num:Int = 0 26 var dice2Num:Int = 0 27 var dice3Num:Int = 0 28 var playerMoney = 1000 29 var bossMoney = 1000 30 31 //判断输赢 32 func judgeResult(){ 33 let zhongjian = dice1Num + dice2Num 34 let sum = zhongjian + dice3Num 35 switch selectType { 36 case .Big: 37 if sum > 11 { 38 self.playerMoney+=30 39 self.bossMoney-=30 40 }else{ 41 self.playerMoney-=30 42 self.bossMoney+=30 43 } 44 case .Same: 45 if dice1Num == dice2Num && dice2Num == dice3Num { 46 self.playerMoney+=100 47 self.bossMoney-=100 48 }else{ 49 self.playerMoney-=100 50 self.bossMoney+=100 51 } 52 case .Small: 53 if sum < 11 { 54 self.playerMoney+=30 55 self.bossMoney-=30 56 }else{ 57 self.playerMoney-=30 58 self.bossMoney+=30 59 } 60 61 default: 62 print("这是默认的") 63 } 64 playLabel.text = String(playerMoney) 65 bossLabel.text = String(bossMoney) 66 67 } 68 69 func changeImage(){ 70 let i1 = arc4random()%6 + 1 71 let name1 = String(i1) + ".gif" 72 let image1 = UIImage(named: name1) 73 diceViewOne.image = image1 74 dice1Num = Int(i1) 75 76 let i2 = arc4random()%6 + 1 77 let name2 = String(i2) + ".gif" 78 let image2 = UIImage(named: name2) 79 diceViewTwo.image = image2 80 dice2Num = Int(i2) 81 82 let i3 = arc4random()%6 + 1 83 let name3 = String(i3) + ".gif" 84 let image3 = UIImage(named: name3) 85 diceViewThree.image = image3 86 dice3Num = Int(i3) 87 88 imageNumber += 1 89 if imageNumber > 20 { 90 timer?.invalidate() 91 imageNumber = 0 92 judgeResult() 93 } 94 } 95 var timer:Timer? 96 var imageNumber = 0 97 98 @IBAction func btnOne(_ sender: Any) { 99 selectType = .Big 100 //定义一个定时器来控制换图片 101 timer?.invalidate() 102 timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(ViewController.changeImage), userInfo: nil, repeats: true) 103 } 104 @IBAction func btnTwo(_ sender: Any) { 105 selectType = .Same 106 //定义一个定时器来控制换图片 107 timer?.invalidate() 108 timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(ViewController.changeImage), userInfo: nil, repeats: true) 109 } 110 @IBAction func btnThree(_ sender: Any) { 111 selectType = .Small 112 //定义一个定时器来控制换图片 113 timer?.invalidate() 114 timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(ViewController.changeImage), userInfo: nil, repeats: true) 115 } 116 117 118 119 120 override func viewDidLoad() { 121 super.viewDidLoad() 122 // Do any additional setup after loading the view, typically from a nib. 123 } 124 125 126 }
大家可以试试,写个博客半天就没了,时间过的好快,吃饭去了!Bye