Guess flag

  • 1. Color And Frames
    • color...也作为一种视图
  • 2.渐变LinearGradient,RadiaGradient,AngularGradient
  • 3.Button Image
  • 4.show Alert and messages
  • 5.猜国旗案例
  • 6.图片形状,阴影设置

1. Color And Frames

color…也作为一种视图

1. 可以给它添加frame框架限制宽高比
2. 如果需要特别的颜色。可以通过color(red:,green:,blue:).添加0-1之间的数字

ZStack {VStack(spacing: 0) {Color.redColor.blue}   Text("Your content").foregroundColor(.secondary).padding(50).background(.ultraThinMaterial)
}
.ignoresSafeArea()

3…secondary,次要的意思,在上面默认个给我们填充灰色

  • foregrounColor
  • foregroundStytle(允许上面red和blue两种颜色交叉通过字体)

4. .ultraThinMaterial超薄材质,iso根据系统的亮暗模式自动调整材质亮度

5. .ignoreSafeArea 忽略ios默认的画布大小,自动填满整个屏幕,但会遮挡住最上部某些重要信息

2.渐变LinearGradient,RadiaGradient,AngularGradient

  • LinearGradient 线性渐变
  • RadiaGradient 圆渐变
  • AugularGradient 角渐变

3.Button Image

Button

  • 1.atcion:用来响应事件的,我们可以在后面写方法
  • 2.role: 按钮的默认样式,destructive可以用来定义删除按钮
  • 3.几种按钮样式:.bordered,.borderedProminent
  • 4.自定义按钮button{ } lable{ }
  • 5.Lable("",systemImage(""))
  • 6.Image(systemImage(""))
  • 7…renderingMode(.original)//忽略系统默认给的格式,显示原始图像。

Oprah Winfrey once said, “do what you have to do until you can do what you want to do.”

4.show Alert and messages

  • 弹出警告 .alert (title,isPresented:){action} message { Text }

5.猜国旗案例

struct ContentView: View {@State private var showScope=false@State private var showTitle=""@State var countries=["china","estonia","germany","ireland","italy","nigeria","poland","russia","spain","uk","us"].shuffled()//shuffled()对数组进行洗牌//我们不能设置为0-12,随机生成。因为在下面的image显示中必须有一个图片与countrie对应//也就是image的生成必须有有一个正确答案//从游戏的大框架来说:每次显示三个国家的国旗,选择与上面文字对应的国旗@State var correctAnswer = Int.random(in: 0...2)var body: some View {ZStack{Color.blue.ignoresSafeArea()VStack(spacing:30){VStack{Text("请选择国旗").padding().font(.title.bold()).foregroundStyle(.white)Text(countries[correctAnswer]).font(.title2).foregroundColor(.white)//从"china","estonia","germany"三个中随机挑一个显示出来}ForEach(0..<3){number in//依次显示:"china","estonia","germany"Button{isCorrect(number)}label: {Image(countries[number]).renderingMode(.original)}}}.alert(showTitle, isPresented: self.$showScope){//当点击继续的时候我们重新洗牌Button("Continue",action: continueGame)}}}func isCorrect(_ number:Int){if(number==correctAnswer){showTitle="correct"}else{showTitle="wrong"}showScope=true}func continueGame(){countries.shuffle()correctAnswer = Int.random(in: 0...2)}
}


最终完成版

//
//  ContentView.swift
//  GuessTheFlag
//
//  Created by JuneAI on 2022/2/2.
//import SwiftUIstruct ContentView: View {@State private var showScope=false@State private var showTitle=""@State private var gameScore=0@State private var selectNumber=0@State private var gameOver = false@State var countries=["china","estonia","germany","ireland","italy","nigeria","poland","russia","spain","uk","us"].shuffled()//shuffled()对数组进行洗牌//我们不能设置为0-12,随机生成。因为在下面的image显示中必须有一个图片与countrie对应//也就是image的生成必须有有一个正确答案//从游戏的大框架来说:每次显示三个国家的国旗,选择与上面文字对应的国旗@State var correctAnswer = Int.random(in: 0...2)var body: some View {ZStack{//            LinearGradient(gradient: Gradient(colors: [Color.white ,Color.blue]), startPoint: .top, endPoint: .bottom)RadialGradient(stops: [.init(color: Color(red: 0.1, green: 0.2, blue: 0.4), location: 0.3),.init(color: Color(red: 0.6, green: 0.2, blue: 0.26), location: 0.3)], center: .top, startRadius: 200, endRadius: 400).ignoresSafeArea()VStack{Spacer()Text("猜一猜国旗").font(.largeTitle.bold()).foregroundColor(.white)VStack(spacing:15){VStack{Text("请选择国旗").padding().font(.subheadline.weight(.heavy)).foregroundStyle(.white)Text(countries[correctAnswer]).font(.largeTitle.weight(.semibold)).foregroundColor(.white)//从"china","estonia","germany"三个中随机挑一个显示出来}ForEach(0..<3){number in//依次显示:"china","estonia","germany"Button{isCorrect(number)selectNumber=numbergameOverSign()}label: {Image(countries[number]).renderingMode(.original).clipShape(Capsule())//调整形状,.shadow( radius: 5)}}}.frame(maxWidth:.infinity).padding(.vertical,20).background(.ultraThinMaterial).clipShape(RoundedRectangle(cornerRadius: 20))Spacer()Spacer()Text("Score:\(gameScore)").foregroundColor(.white).font(.title.bold())Spacer().alert(showTitle, isPresented: self.$showScope){//当点击继续的时候我们重新洗牌Button("Continue",action: continueGame)}message: {Text("你选择的是:\(countries[selectNumber])")Text("你的分数是:\(gameScore)")}.alert("游戏结束", isPresented: self.$gameOver){Button("Continue",action: continueGame)}message: {Text("是否继续")}}.padding()}}func isCorrect(_ number:Int){if(number==correctAnswer){gameScore+=1showTitle="correct"continueGame()}else{if(gameScore>0){gameScore-=1}showTitle="wrong"showScope=true}}func continueGame(){countries.shuffle()correctAnswer = Int.random(in: 0...2)}func gameOverSign(){if(gameScore==8){gameOver=truegameScore=0}}}struct ContentView_Previews: PreviewProvider {static var previews: some View {ContentView()}
}

6.图片形状,阴影设置

  • 1.font(.subheadline.weight(.heavy)),调整字体的粗细
  • 2.rectangle, rounded rectangle, circle, and capsule.IOS内置的四种形状
    .clipShape(Capsule())将image图像按钮设置为胶囊型
  • 3 .设置图片的阴影**(.shadow(radius: 5))**

For example, Color.primary might be light or dark depending on the device theme.
~主要取决于手机主题模式,语义颜色(Semantic colors)
~ Apple’s symbols icon collection is called SF Symbols.

用Xcode构建猜国旗游戏案例分享相关推荐

  1. js 年会大屏_年会H5大屏互动游戏案例分享

    原标题:年会H5大屏互动游戏案例分享 利用h5制作年会互动小游戏越来越火爆了,今天小编就给大家推荐两个年会h5案例,希望能给大家的设计带来灵感,参考网站:hui.cdlchd.com. 案例一:201 ...

  2. 创意H5模板《测一测谁适合与你一期旅行》,微信互动小游戏案例分享

    想必大多数人的一生中都会伴随友情和爱情,大家有时候也会想这个人是否适合与自己交朋友,TOM游戏就有一款H5测试类小游戏就可以间接帮助到你呦,大家不妨体验下,这款游戏应该能给你想要的答案!那个TA是否适 ...

  3. javascript 和HTML5 利用canvas构建 猜牌游戏(让我猜猜你心中的牌)【图文说明】...

    让我猜猜你心中的牌,先随机生成27张牌,不能重复 列出三列牌,然后记住其中一张,然后点击牌所在的列,多次就可以猜出你想的牌. 如果是9张只要猜2次,如果是27张就是猜3次. 实现方法(27张): 如果 ...

  4. python猜数游戏流程_python简单猜数游戏实例

    本文实例讲述了python简单猜数游戏.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python import random number = random.randint ...

  5. 猜数字游戏python程序_python实现的简单猜数字游戏

    本文实例讲述了python实现的简单猜数字游戏.分享给大家供大家参考.具体如下: 给定一个1-99之间的数,让用户猜数字,当用户猜错时会提示用户猜的数字是过大还是过小,知道用户猜对数字为止,猜对数字用 ...

  6. java猜数字游戏实验报告_Java实现的猜数字游戏示例

    本文实例讲述了Java实现的猜数字游戏.分享给大家供大家参考,具体如下: 这里演示一段java语言猜数字代码,流程如下: 系统随机生成0-9中的不重复四位数字. 然后用户输入四个数字 如果数字对了,位 ...

  7. 网课里一个无聊的猜数游戏

    网课里看到了一个猜数游戏,分享一下,也许许多东西并不能分高低,只是不同罢了. #include<stdio.h> #include<stdlib.h> #include< ...

  8. C++ 产生随机数实现猜数字游戏

    C++ 产生随机数实现猜数字游戏 案例说明 rand()产生随机数 限定范围的随机数 实现猜数字游戏 案例说明 系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错,提示玩家数字过大或过小,如 ...

  9. java猜字母讲解_JAVA语言中的经典案例:猜字母游戏

    设计数据结构 问题 猜字母游戏规则为,随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串,玩家可以猜测多次,每猜测一次,由系统提示结果,如果猜测的完全正确则游戏结束,计算玩家的游戏 ...

  10. python游戏开发的五个案例分享

    本文给大家分享了作者整理的五个python游戏开发的案例,通过具体设计思路,代码等方面详细了解python游戏开发的过程,非常的详细,希望大家能够喜欢 一.序列应用--猜单词游戏 1. 游戏介绍 猜单 ...

最新文章

  1. python精彩编程200例百度_Python趣味编程与精彩实例
  2. MySQL第3天:MySQL的架构介绍之linux版安装
  3. Oracle11g新特性之动态变量窥视
  4. omitting directory `folder/'
  5. 如何避免Java线程中的死锁?
  6. Python基础(四)--字典与集合
  7. 国外免费服务器 win系统,FreeSSHd一个免费的SSH服务器的Windows | MOS86
  8. Java: RandomAccessFile
  9. [20个项目学会BBC micro:bit编程] 12-蜂鸣器控制
  10. 在 ML2 中配置 VXLAN - 每天5分钟玩转 OpenStack(110)
  11. NTSD命令用法详解
  12. MPP架构、常见OLAP引擎分析
  13. 怎么访问云服务器上的图片
  14. 五年了还在原地踏步咋整?技术大佬给你整理了一套切实可行的方法论
  15. VIVO、蚂蚁金服跨界握手,融入区块链技术,共同研发新型智能手机
  16. 如何用远丰DrpBuilder打造企业社会化分销体系
  17. oracle 错误代码
  18. 陆奇,59岁,创业者:真正的高手,都是时间的长期主义者!
  19. Java利用qq邮箱发送邮件
  20. 【机器人仿真Webots教程】-Webots安装

热门文章

  1. 开源协议比较:BSD、Apache、GLP、LGLP、MIT
  2. 《Internet-常见域名后缀大全》
  3. python--如何进行去重
  4. 关于STVP写保护等级2的问题
  5. 自定义函数求两个整数的绝对差值及排序
  6. 9月1日云栖精选夜读:阿里云数据库掌门人褚霸:骑行与数据人生
  7. 怎样使用Fiddler工具进行APP抓包
  8. 【Web前端基础】实验9 表单页面设计
  9. java 自定义列表_自定义列表标签
  10. 如何提高思考能力,(一个绝对能帮到你的科普)取自《思维混乱:是因为大脑没有结构》谢春霖