Compare commits

...

2 Commits

Author SHA1 Message Date
b653ee2eee 添加游戏结束按钮 2024-12-24 09:25:44 +08:00
eba8a2fc62 游戏结束相关内容 2024-12-24 09:19:25 +08:00

View File

@@ -33,32 +33,56 @@ struct ContentView: View {
var answerTime: Double
@Binding var isGameActive: Bool
@State private var playerHasWon = false
var body: some View {
HStack(spacing: 0) {
PlayerButton(gameState: gameState, score: player1Score, color: .blue, onSelect: selectPlayer1)
ZStack {
answerColor
.scaleEffect(x: answerScale, anchor: answerAnchor)
if leftCard.isEmpty == false {
HStack {
CardView(card: leftCard, userCanAnswer: gameState != .waiting, onSelect: checkAnswer)
CardView(card: rightCard, userCanAnswer: gameState != .waiting, onSelect: checkAnswer)
ZStack(alignment: .topTrailing) {
HStack(spacing: 0) {
PlayerButton(gameState: gameState, score: player1Score, color: .blue, onSelect: selectPlayer1)
ZStack {
answerColor
.scaleEffect(x: answerScale, anchor: answerAnchor)
if leftCard.isEmpty == false {
HStack {
CardView(card: leftCard, userCanAnswer: gameState != .waiting, onSelect: checkAnswer)
CardView(card: rightCard, userCanAnswer: gameState != .waiting, onSelect: checkAnswer)
}
.padding(.horizontal, 10)
}
.padding(.horizontal, 10)
}
PlayerButton(gameState: gameState, score: player2Score, color: .red, onSelect: selectPlayer2)
}
PlayerButton(gameState: gameState, score: player2Score, color: .red, onSelect: selectPlayer2)
Button("End Game", systemImage: "xmark.circle") {
isGameActive = false
}
.symbolVariant(.fill)
.labelStyle(.iconOnly)
.font(.largeTitle)
.tint(.white)
.padding(40)
}
.ignoresSafeArea()
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(Color(white: 0.9))
.persistentSystemOverlays(.hidden)
.onAppear(perform: createLevel)
.alert("Game Over!", isPresented: $playerHasWon) {
Button("Start Again") {
isGameActive = false
}
} message: {
if player1Score > player2Score {
Text("Player 1 Won \(player1Score) - \(player2Score)")
} else {
Text("Player 2 Won \(player2Score) - \(player1Score)")
}
}
}
func createLevel() {
@@ -114,7 +138,7 @@ struct ContentView: View {
}
if player1Score == 5 || player2Score == 5 {
//
playerHasWon = true
} else {
createLevel()
}