问题描述
我的代码:
import UIKit
class ViewController: UIViewController {
var score = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func textfield(_ sender: Any) {
}
@IBAction func Button(_ sender: Any) {
let imageName = "FB copy-3.png"
let image = UIImage(named: imageName)
let imageView = UIImageView(image: image!)
imageView.frame = CGRect(x: 64.5,y: 413.5,width: 100,height: 100); view.addSubview(imageView)
Counterlabel.text = String(score)
if score >= 500 && score <= 998 {
score += 2
imageView.image = UIImage(named:"500button")
}
else if score >= 998 && score <= 1995 {
score += 5
}
else if score >= 1995 && score <= 4000 {
score += 10
imageView.image = UIImage(named:"2000button")
}
else if score >= 4000 && score <= 10000 {
score += 20
}
else if score >= 10000 && score <= 25000 {
score += 50
}
else if score >= 25000 && score <= 75000 {
score += 100
}
else if score >= 75000{
score += 250
}
else {
score += 1
}
}
@IBAction func buttonimage(_ sender: Any) {
}
@IBOutlet weak var Counterlabel: UILabel!
}
所以我最近开始编码,对我想创建一个小型游戏并不太了解,这是我的问题:
我首先想在我的游戏中添加一个作弊代码,所以我有一个文本标签,并且想要它,如果我的文本标签文本为1811(或其他任何可行的方法),则得分+ = 50000
那是我一直面临的问题
还有一个更重要的事情(如果可能的话),我真的很想知道如何保存gtame数据,因此,如果再次播放,则可以保存进度。 我要保存的唯一进度是数字。
排行榜也很好
以上任何一项都将对我非常感激。
这是我的故事板的外观:
解决方法
您可以使用UserDefaults保存分数:
let defaults = UserDefaults.standard
defaults.set(25,forKey: "score")
defaults.set("ESRAA",forKey: "Name")
检查此链接以获取更多详细信息:https://www.hackingwithswift.com/example-code/system/how-to-save-user-settings-using-userdefaults
,As per my understanding,
-
有毒的您可以添加UITextField并将其设置为委托,
textField:shouldChangeCharactersInRange:replacementString:TextField_Delegates_Detail
您可以在其中设置支票的地方,
如果textfield.text ==“ 1811” { 得分+ = 50000 }
-
要保存和存储游戏数据,可以使用IOS支持的UserDefaults,CoreData和SQLite数据库。 Some_Basic_Detail
您可以使用类似的方法来检查textField值
if textField.text == "11811" { socre += 5000 }
,
要考虑文本字段值,请将文本字段的delegate
连接到控制器并实施
@objc func textFieldDidEndEditing(textField : UITextField) {
if textField.text! != "1811" { return }
score += 50000
UserDefaults.standard.set(score,forKey: "score")
}
这样做的好处是,按下某个键时不会永久执行检查。该值将保存到UserDefaults
。删除IBAction
在viewDidLoad
中加载值形式UserDefaults
override func viewDidLoad() {
super.viewDidLoad()
score = UserDefaults.standard.integer(forKey: "score")
}
可以更有效地编写范围检查
@IBAction func Button(_ sender: Any) {
let imageName = "FB copy-3.png"
let image = UIImage(named: imageName)
let imageView = UIImageView(image: image!)
imageView.frame = CGRect(x: 64.5,y: 413.5,width: 100,height: 100)
view.addSubview(imageView)
Counterlabel.text = String(score)
switch score {
case 500..<998:
score += 2
imageView.image = UIImage(named:"500button")
case 998..<1995:
score += 5
case 1995..<4000:
score += 10
imageView.image = UIImage(named:"2000button")
case 4000..<10000:
score += 20
case 10000...25000:
score += 100
case 75000...:
score += 250
default:
score += 1
}
UserDefaults.standard.set(score,forKey: "score")
}
我怀疑每当按下按钮时是否打算添加(其他)图像视图
并且请命名变量Button
和Counterlabel
lowerCamelCased :button
和counterLabel