annotate GeoQuiz/ContentView.swift @ 3:4dbe0cd9dadc

first game prototype
author Dennis C. M. <dennis@denniscm.com>
date Thu, 22 Sep 2022 10:42:39 +0200
parents 259a15f485c5
children de54f05adb78
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 //
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2 // ContentView.swift
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 // GeoQuiz
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 //
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 5/9/22.
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 //
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 import SwiftUI
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10 struct ContentView: View {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11 @State private var gameName: GameName? = nil
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12 @State private var showingBuyLivesModal = false
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 var body: some View {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15 NavigationView {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16 ScrollView(showsIndicators: false) {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17 VStack(spacing: 20) {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18
1
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
19 NavigationLink(
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
20 destination: GuessTheFlagView(gameName: $gameName),
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
21 tag: GameName.guessTheFlag,
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
22 selection: $gameName
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
23 ) {
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24 GameButton(
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 gradient: .main,
1
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
26 level: "Level 1", symbol: "flag.fill", name: "Guess the flag"
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 )
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29
1
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
30 NavigationLink(
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
31 destination: GuessTheCapitalView(gameName: $gameName),
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
32 tag: GameName.guessTheCapital,
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
33 selection: $gameName
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
34 ) {
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
35 GameButton(
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
36 gradient: .secondary,
1
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
37 level: "Level 2", symbol: "building.2.fill", name: "Guess the capital"
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
38 )
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
39 }
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
40
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
41 NavigationLink(
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
42 destination: Text("Guess the country"),
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
43 tag: GameName.guessTheCountry,
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
44 selection: $gameName
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
45 ) {
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
46 GameButton(
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
47 gradient: .tertiary,
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
48 level: "Level 3", symbol: "globe.americas.fill", name: "Guess the country"
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
49 )
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
50 }
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
51
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
52 NavigationLink(
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
53 destination: Text("Guess the population"),
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
54 tag: GameName.guessThePopulation,
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
55 selection: $gameName
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
56 ) {
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
57 GameButton(
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
58 gradient: .quaternary,
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
59 level: "Level 4", symbol: "person.3.fill", name: "Guess the population"
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
60 )
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
61 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
62 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
63 .padding()
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
64 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
65 .navigationTitle("Select a game 🎮")
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
66 .toolbar {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
67 Button {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
68 showingBuyLivesModal = true
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
69 } label: {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
70 Label("Buy lives", systemImage: "heart.fill")
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
71 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
72 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
73 .sheet(isPresented: $showingBuyLivesModal) {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
74 BuyLivesModal()
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
75 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
76 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
77 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
78 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
79
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
80 struct ContentView_Previews: PreviewProvider {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
81 static var previews: some View {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
82 ContentView()
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
83 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
84 }