问题描述
我是一名9年级学生,只是在学习编程。了解基础知识后,我想到可以迅速制作一个Cookie唱盘游戏。我做到了这一点,并且仍在对其进行改进以使其更具可玩性,但是我无法使其自动保存。我尝试粘贴和修改其他一些行,但是做错了。我希望它在更新时自动保存变量click和mult。谢谢您的任何帮助。
//
// ViewController.swift
// EthanClicker
//
// Created by Ethan on 10/4/20.
//
import UIKit
class ViewController: UIViewController {
//Outlets/////////////////////////////////
@IBOutlet weak var clickOutput: UILabel!
@IBOutlet weak var multOutput: UILabel!
@IBOutlet weak var messageOutput: UILabel!
//Variables/////////////////////////////////
@objc var click = 0
var mult = 1
@IBAction func clickMeButton(_ sender: Any) {
click = click + (1 * mult)
clickOutput.text = "\(click)"
}
@IBAction func twoX(_ sender: Any) {
if ((click >= 100) && (mult == 1)) {
mult = 2
click = click - 100
multOutput.text = "\(mult)"
clickOutput.text = "\(click)"
messageOutput.text = "Nice Job! Keep Going!"
} else {
error()
}
}
@IBAction func fourX(_ sender: Any) {
if ((click >= 1000) && (mult == 2)) {
mult = 4
click = click - 1000
clickOutput.text = "\(click)"
multOutput.text = "\(mult)"
messageOutput.text = "Getting closer,Keep Going!"
} else {
error()
}
}
@IBAction func eightX(_ sender: Any) {
if ((click >= 10000) && (mult == 4)) {
mult = 8
click = click - 10000
clickOutput.text = "\(click)"
multOutput.text = "\(mult)"
messageOutput.text = "You Did It! Now Keep Playing To See How High You Can Go"
} else {
error()
}
}
@IBAction func sixteenX(_ sender: Any) {
if ((click >= 100000) && (mult == 8)) {
mult = 16
click = click - 100000
clickOutput.text = "\(click)"
multOutput.text = "\(mult)"
messageOutput.text = "You Did It! Now Keep Playing To See How High You Can Go"
} else {
error()
}
}
@IBAction func thirtytwox(_ sender: Any) {
if ((click >= 1000000) && (mult == 16)) {
mult = 32
click = click - 1000000
clickOutput.text = "\(click)"
multOutput.text = "\(mult)"
messageOutput.text = "You Did It! Now Keep Playing To See How High You Can Go"
} else {
error()
}
}
@IBAction func sixtyfourX(_ sender: Any) {
if ((click >= 10000000) && (mult == 32)) {
mult = 64
click = click - 10000000
clickOutput.text = "\(click)"
multOutput.text = "\(mult)"
messageOutput.text = "You Did It! Now Keep Playing To See How High You Can Go"
} else {
error()
}
}
func error() {
messageOutput.text = "Not enough Clicks,keep going!"
}
override func viewDidLoad() {
super.viewDidLoad()
clickOutput.text = "\(click)"
multOutput.text = "\(mult)"
messageOutput.text = ""
}
}
解决方法
我认为这会起作用
选项1:在代码末尾添加第一个代码段
func updateUI(){
clickOutput.text = "\(click)"
}
@IBAction func clickMeButton(_ sender: Any) {
click = click + (1 * mult)
clickOutput.text = "\(click)"
}
将其更改为此
@IBAction func clickMeButton(_ sender: Any) {
click = click + (1 * mult)
clickOutput.text = "\(click)"
updateUI()
}
选项2:另一个想法是也使updateUI()进行计数,并且,如果需要,还应使用运算符+ =添加到数字中
func updateUI() {
click += 1
clickOutput.text = "\(click)"
}
下一步与选项1中的步骤3