我对编程非常陌生,而且我正在尝试学习Swift的基础知识。
我为iOS编写了一个非常简单的测验游戏,其中应用程序按顺序移动问题。我想要进入一个简单的文字冒险游戏。首先,我将测验问题更改为您可以完成的方案。但是,我现在想要点击显示的两个按钮中的任何一个,一个按钮会将您移动到一个场景,另一个按钮会转到另一个场景。
下面是我到目前为止的代码,它遵循呈现给用户的场景的简单顺序,其中一个答案允许您继续前进,而一个答案不是。实现所有场景和答案的结构的最佳方式是什么,用户可以通过选择不同场景的不同答案来浏览故事。
import UIKit
struct Scenario {
var Scenario : String!
var Answers : [String]!
var Answer : Int!
}
class ViewController: UIViewController {
@IBOutlet var actionButton: [UIButton]!
@IBOutlet var scenarioLabel: UILabel!
var Scenarios = [Scenario]()
var sNumber = Int()
var answerNumber = Int()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
listScenarios()
pickScenario()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func listScenarios() {
Scenarios = [Scenario(Scenario: "HELLO? Someone please answer me, I NEED HELP!", Answers: ["Who are you? I can help you.","*** Ignore ***"], Answer: 0),
Scenario(Scenario: "That is something I cannot share with you", Answers: ["Why?","I am unwilling to help if you don't share this with me."], Answer: 1),
Scenario(Scenario: "I... I... I just can't. You have to understand", Answers: ["Okay, I'll help.","What has happened to you?"], Answer: 0),]
}
func pickScenario() {
if Scenarios.count > 0 {
sNumber = 0
scenarioLabel.text = Scenarios[sNumber].Scenario
answerNumber = Scenarios[sNumber].Answer
for i in 0..<actionButton.count {
actionButton[i].setTitle(Scenarios[sNumber].Answers[i], forState: UIControlState.Normal)
}
Scenarios.removeAtIndex(sNumber)
}
else {
NSLog("Done!")
}
}
@IBAction func button1(sender: AnyObject) {
if answerNumber == 0 {
pickScenario()
}
else{
NSLog("Wrong!")
}
}
@IBAction func button2(sender: AnyObject) {
if answerNumber == 1 {
pickScenario()
}
else{
NSLog("Wrong!")
}
}
}
答案 0 :(得分:0)
由于您希望持久存储对象,因此实际上有很多选项。我在下面列出了一些热门选择供您查看并自行形成意见。请注意,虽然我列出的选项绝不是完整的或者必然是最佳选择,但是我在过去的应用程序中成功使用的选项。
Core Data - Apple的原生模型管理框架
FMDatabase - 第三方SQLite包装器
Realm - SQLite&amp;的第三方替代品核心数据(我个人最喜欢的)
管理和保存对象的方式完全取决于您,并且应该基于您的应用程序的需求和您所熟悉的内容。
您选择显示此数据的UI可以是一系列tableViews
,一个图形树层次结构,或者其他一些东西。您可以通过多种方式显示此数据,但这最终是您的决定。