簡體   English   中英

需要幫助使 Swift Cookie Clicker 游戲自動保存

[英]Need help making Swift Cookie Clicker Game Automatically Save

我是一名 9 年級學生,剛剛學習編程。 在我掌握了基礎知識后,我想我會很快制作一個餅干點擊游戲。 我做到了這一點,並且仍在努力改進它並使其更具可玩性,但我無法讓它自動保存。 我嘗試了其他一些粘貼和修改的行,但我做錯了。 我希望它在更新時自動保存變量 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 相同

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM