Mercurial > public > geoquiz
comparison GeoQuiz/Helpers/GameToolbar.swift @ 0:413e2d21333e
first commit
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Tue, 20 Sep 2022 08:13:26 +0200 |
parents | |
children | 4dbe0cd9dadc |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:413e2d21333e |
---|---|
1 // | |
2 // GameToolbar.swift | |
3 // GeoQuiz | |
4 // | |
5 // Created by Dennis Concepción Martín on 18/9/22. | |
6 // | |
7 | |
8 import SwiftUI | |
9 | |
10 struct GameToolbar: View { | |
11 @Binding var userScore: Int | |
12 @Binding var userLives: Int | |
13 @Binding var gameName: GameName? | |
14 @Binding var showingBuyLivesView: Bool | |
15 | |
16 var body: some View { | |
17 HStack(spacing: 0) { | |
18 Group { | |
19 Button { | |
20 gameName = nil | |
21 } label: { | |
22 Image(systemName: "multiply") | |
23 .padding(10) | |
24 .background( | |
25 Circle() | |
26 .strokeBorder(lineWidth: 2) | |
27 ) | |
28 } | |
29 } | |
30 .foregroundColor(.white) | |
31 .font(.headline) | |
32 .frame(maxWidth: .infinity, alignment: .leading) | |
33 | |
34 Group { | |
35 Text("\(userScore)") | |
36 .padding() | |
37 .background( | |
38 Circle() | |
39 .strokeBorder(lineWidth: 3) | |
40 ) | |
41 } | |
42 .foregroundColor(.white) | |
43 .font(.title2) | |
44 .frame(maxWidth: .infinity, alignment: .center) | |
45 | |
46 Group { | |
47 Button { | |
48 showingBuyLivesView = true | |
49 } label: { | |
50 HStack { | |
51 Image(systemName: "heart.fill") | |
52 Text("\(userLives)") | |
53 } | |
54 .padding(10) | |
55 .background( | |
56 Capsule() | |
57 .strokeBorder(lineWidth: 2) | |
58 ) | |
59 } | |
60 } | |
61 .foregroundColor(.white) | |
62 .font(.headline) | |
63 .frame(maxWidth: .infinity, alignment: .trailing) | |
64 } | |
65 } | |
66 } | |
67 | |
68 struct GameToolbar_Previews: PreviewProvider { | |
69 static var previews: some View { | |
70 ZStack { | |
71 LinearGradient(gradient: .main, startPoint: .top, endPoint: .bottom) | |
72 .ignoresSafeArea() | |
73 | |
74 GeometryReader { geo in | |
75 VStack { | |
76 GameToolbar( | |
77 userScore: .constant(0), | |
78 userLives: .constant(6), | |
79 gameName: .constant(.guessTheFlag), showingBuyLivesView: .constant(false) | |
80 ) | |
81 | |
82 Spacer() | |
83 } | |
84 .padding() | |
85 } | |
86 } | |
87 } | |
88 } |