#ios #swift #xcode #swiftui
#iOS #swift #xcode ( код x ) #свифтуи #xcode
Вопрос:
мой код:
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 amp;amp; score <= 998 {
score = 2
imageView.image = UIImage(named:"500button")
}
else if score >= 998 amp;amp; score <= 1995 {
score = 5
}
else if score >= 1995 amp;amp; score <= 4000 {
score = 10
imageView.image = UIImage(named:"2000button")
}
else if score >= 4000 amp;amp; score <= 10000 {
score = 20
}
else if score >= 10000 amp;amp; score <= 25000 {
score = 50
}
else if score >= 25000 amp;amp; 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, чтобы при повторном воспроизведении прогресс сохранялся. единственный прогресс, который я хочу сохранить, — это число.
таблица лидеров также была бы хороша
любое из вышеперечисленных помогло бы, я действительно ценю это.
вот как выглядит моя раскадровка:
Комментарии:
1. Я не понимаю, в чем проблема с этикеткой.
Ответ №1:
вы можете использовать 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
Ответ №2:
As per my understanding,
-
Токсичный вы можете добавить UITextField и установить его делегирование,
Текстовое поле: следует изменить Charactersinrange:replacementString: TextField_Delegates_Detail
Где вы можете установить проверку,
if textfield.text == «1811» { оценка = 50000 }
-
Для сохранения игровых данных вы можете использовать UserDefaults, CoreData, базу данных SQLite, которые поддерживает IOS. Some_Basic_Detail
Ответ №3:
Вы можете использовать что-то вроде проверки значения текстового поля
if textField.text == "11811" { socre = 5000 }
Ответ №4:
Для учета значения текстового поля подключите 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
в нижнем регистре: button
и counterLabel
Комментарии:
1. привет, спасибо за ваш ответ с вашим кодом, я получаю две ошибки, одна из которых для функции obj, в которой говорится, что значение типа any не имеет текста элемента. второе — для улучшения всего моего кода, в нем говорится, что могут быть объявлены только методы экземпляра @ibaction
2. Первая ошибка: моя ошибка, это опечатка (
textField.text
). Вторая ошибка, которую я не понимаю.3. кроме того, когда я использую код и запускаю игру, количество кликов не увеличивается
4. Что означает, что количество кликов не увеличивается ?
5. также мои данные не были сохранены (извините за беспокойство)