我想在我的數學游戲中實施問題。問題是,雖然我已經設定了問題,但我想將有多少問題限制為 10。當它達到最大值時,它不會遵守回圈進度條,而是繼續進行(我不想發生這種情況) . 請在下面查看我的代碼...
問題生成器 ->>
func answerIsCorrect(answer: Int) {
let isCorrect = answer == correctAnswer ? true : false
if isCorrect {
self.score = Double(0.1)
} else {
self.score = score
}
}
func generateAnswers() {
firstNumber = Int.random(in: 0...(difficulty/2))
secondNumber = Int.random(in: 0...(difficulty/2))
var answerList = [Int]()
correctAnswer = firstNumber secondNumber
for _ in 0...2 {
answerList.append(Int.random(in: 0...difficulty))
}
answerList.append(correctAnswer)
choiceArray = answerList.shuffled()
}
圓形進度條
Circle()
.trim(from: 0.01, to: CGFloat(score))
// when it reaches 1 (100%), show a view...
.stroke(LinearGradient(gradient: Gradient(colors: [Color.white, Color.white.opacity(0.2)]), startPoint: .topLeading, endPoint: .bottomTrailing), style: StrokeStyle(lineWidth: 17.5, lineCap: .round))
.shadow(radius: 8)
.rotationEffect(.degrees(90))
.rotation3DEffect(Angle(degrees: 180), axis: (x: 1, y: 0, z: 110))
.frame(width: 60, height: 60)
.animation(.easeOut)
.padding()
.padding([.top, .leading])
感謝您的關注!
uj5u.com熱心網友回復:
你必須在這里檢查:
showFinishedView應該是一些@State,例如顯示一張紙或另一個視圖。
func answerIsCorrect(answer: Int) {
let isCorrect = (answer == correctAnswer)
if isCorrect {
self.score = Double(0.1)
} else {
self.score = score
}
// check here
if self.score > 0.9 { showFinishedView = true }
}
uj5u.com熱心網友回復:
圓形進度條只是一個視圖,不會因為圓形完成就執行任何動作。如果您希望在達到 10 個正確答案時發生某些事情,您需要在某處設定條件。
例如,在您的 funcanswerIsCorrect中,更改分數后,您可以添加條件來觸發操作:
if self.score == 1 {
// something happens, like changing a @State var
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/430542.html
