diff --git a/Twinmoji/ContentView.swift b/Twinmoji/ContentView.swift index 11f673c..63ebe79 100644 --- a/Twinmoji/ContentView.swift +++ b/Twinmoji/ContentView.swift @@ -30,6 +30,8 @@ struct ContentView: View { @State private var answerAnchor = UnitPoint.center var itemCount: Int + var answerTime: Double + @Binding var isGameActive: Bool var body: some View { HStack(spacing: 0) { @@ -96,7 +98,7 @@ struct ContentView: View { func runClock() { answerScale = 1 - withAnimation(.linear(duration: 1)) { + withAnimation(.linear(duration: answerTime)) { answerScale = 0 } completion: { timeOut() @@ -132,5 +134,5 @@ struct ContentView: View { } #Preview { - ContentView(itemCount: 9) + ContentView(itemCount: 9, answerTime: 2, isGameActive: .constant(true)) } diff --git a/Twinmoji/MenuView.swift b/Twinmoji/MenuView.swift new file mode 100644 index 0000000..d40f00f --- /dev/null +++ b/Twinmoji/MenuView.swift @@ -0,0 +1,64 @@ +// +// MenuView.swift +// Twinmoji +// +// Created by Zhang Mengxu on 2024/12/24. +// + +import SwiftUI + +struct MenuView: View { + @State private var timeOut = 1.0 + @State private var items = 9 + @State private var isGameActive = false + + + + var body: some View { + if isGameActive { + ContentView(itemCount: items, answerTime: timeOut, isGameActive: $isGameActive) + } else { + VStack(spacing: 10) { + Text("Twinmoji") + .font(.largeTitle) + .fontDesign(.rounded) + + Text("Answer Time") + .font(.headline) + + Picker("Timeout", selection: $timeOut) { + Text("Slow").tag(2.0) + Text("Medium").tag(1.0) + Text("Fast").tag(0.5) + } + .pickerStyle(.segmented) + .padding(.bottom) + + Text("Diffculty") + .font(.headline) + + Picker("Diffculty", selection: $items) { + Text("Easy").tag(9) + Text("Hard").tag(12) + } + .pickerStyle(.segmented) + + Button("Start Game") { + isGameActive = true + } + .buttonStyle(.borderedProminent) + } + .padding() + .background(.white) + .clipShape(.rect(cornerRadius: 20)) + .shadow(radius: 10) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .padding() + .background(Color(white: 0.9)) + } + } +} + +#Preview { + MenuView() +} diff --git a/Twinmoji/TwinmojiApp.swift b/Twinmoji/TwinmojiApp.swift index 8b1d673..6a81a67 100644 --- a/Twinmoji/TwinmojiApp.swift +++ b/Twinmoji/TwinmojiApp.swift @@ -11,7 +11,8 @@ import SwiftUI struct TwinmojiApp: App { var body: some Scene { WindowGroup { - ContentView(itemCount: 9) + MenuView() + .preferredColorScheme(.light) } } }