Swift 语言 while 循环模拟倒计时游戏

Swift阿木 发布于 2025-05-30 7 次阅读


Swift 语言中的 While 循环:模拟倒计时游戏

在 Swift 语言中,`while` 循环是一种常用的控制流语句,它允许程序在满足特定条件时重复执行一段代码。本文将围绕 `while` 循环,通过一个简单的倒计时游戏示例,展示如何在 Swift 中使用 `while` 循环来创建一个有趣且实用的程序。

倒计时游戏简介

倒计时游戏是一种常见的游戏形式,它要求玩家在限定的时间内完成某个任务。在这个例子中,我们将创建一个简单的倒计时游戏,玩家需要在 60 秒内点击屏幕来停止倒计时。

准备工作

在开始编写代码之前,我们需要准备以下内容:

1. 一个 iOS 开发环境,如 Xcode。
2. 一个 Swift 项目,用于编写和运行代码。

游戏设计

在这个倒计时游戏中,我们将使用以下设计:

- 游戏开始时,显示一个倒计时数字。
- 每秒减少 1 秒,直到倒计时结束。
- 如果玩家在倒计时结束前点击屏幕,则游戏结束,并显示得分。
- 如果倒计时结束,游戏自动结束,并显示最终得分。

代码实现

以下是使用 Swift 语言实现的倒计时游戏代码:

swift
import UIKit

class ViewController: UIViewController {

// 倒计时时间(秒)
var countdownTime = 60

// 显示倒计时的标签
let countdownLabel = UILabel()

override func viewDidLoad() {
super.viewDidLoad()

// 初始化标签
countdownLabel.frame = CGRect(x: 100, y: 200, width: 200, height: 50)
countdownLabel.textAlignment = .center
countdownLabel.font = UIFont.boldSystemFont(ofSize: 24)
view.addSubview(countdownLabel)

// 开始倒计时
startCountdown()
}

// 开始倒计时函数
func startCountdown() {
while countdownTime > 0 {
countdownLabel.text = String(countdownTime)

// 暂停 1 秒
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
self.countdownTime -= 1
}

// 如果倒计时为 0,则结束游戏
if countdownTime == 0 {
self.endGame()
}
}
}

// 结束游戏函数
func endGame() {
countdownLabel.text = "Game Over!"

// 显示得分
let score = 60 - countdownTime
let alert = UIAlertController(title: "Score", message: "Your score is (score)", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
present(alert, animated: true, completion: nil)
}

// 点击屏幕结束游戏
override func touchesBegan(_ touches: Set, with event: UIEvent?) {
endGame()
}
}

代码解析

1. 初始化标签:我们创建了一个 `UILabel` 对象 `countdownLabel`,用于显示倒计时时间。将其添加到视图 `view` 中,并设置字体和位置。

2. 开始倒计时:`startCountdown` 函数使用 `while` 循环来减少 `countdownTime` 的值。在循环中,我们更新标签的文本,并使用 `DispatchQueue.main.asyncAfter` 来延迟 1 秒执行代码。

3. 结束游戏:当倒计时为 0 时,调用 `endGame` 函数。该函数显示一个包含得分的 `UIAlertController`,并结束游戏。

4. 点击屏幕结束游戏:重写 `touchesBegan` 方法,以便在玩家点击屏幕时调用 `endGame` 函数。

总结

通过本文,我们学习了如何在 Swift 语言中使用 `while` 循环来创建一个简单的倒计时游戏。这个例子展示了 `while` 循环的基本用法,以及如何在 iOS 应用中实现游戏逻辑。希望这个例子能够帮助你更好地理解 Swift 语言的控制流语句,并在实际项目中应用它们。