我已经创建了一个playground并将我的Swift文件添加到它的源文件夹中,这样我就可以访问类并根据需要实例化它们,但是我需要更多地使用playground!
我有一个典型的问题与精灵定位在精灵,我需要测试精灵的位置和手势触摸点位置与poayground,我有不同的锚节点为每组精灵在我的游戏和每个我面对的三坐标系
原点在左上角的手势坐标系
屏幕中心中继的SpriteKit坐标系
等轴测地图坐标系,显示等轴测地图上的每个精灵。
通过添加一个缩放工具(使用夹点手势)作为纹理盐,我有一个非常复杂的几何计算,每一个转换本身非常简单,但是连接这些仿射变换是完全混乱的,我不喜欢我正在编写的代码。
我需要一些测试,看看一个仿射变换如何影响前一个变换,以及如何转换这三个坐标系之间的坐标。
我曾经使用println和断点来观察我的变量,但这还不够,我发现playground非常有用,所以我想一定有一种方法可以在那里观察我的变量,或者在测试我的游戏时通过真实的数据来测试我的函数。
问题:
在我的操场上有手势触控点吗?它们将传递给我的handle手势函数,所有假设要编写或转换这些接触点的测试代码都必须在handle手势函数中编写,问题是我可以在操场上使用它们吗?
最佳答案
我相信你必须公开你的课程才能在操场上使用。
在操场上使用触摸和互动是可能的。
看看这个。
import PlaygroundSupport
import UIKit
struct Pokemon {
let id: UInt
let name: String
}
class PokedexViewController: UITableViewController {
let pokemons: [Pokemon] = [
Pokemon(id: 1, name: "Bulbasaur"),
Pokemon(id: 2, name: "Ivysaur"),
Pokemon(id: 3, name: "Venusaur"),
Pokemon(id: 4, name: "Charmander"),
Pokemon(id: 5, name: "Charmeleon"),
Pokemon(id: 6, name: "Charizard"),
Pokemon(id: 7, name: "Squirtle"),
Pokemon(id: 8, name: "Wartortle"),
Pokemon(id: 9, name: "Blastoise")
]
override func viewDidLoad() {
super.viewDidLoad()
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return pokemons.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: .default, reuseIdentifier: "PokemonTableViewCell")
let pokemon = pokemons[indexPath.row]
cell.textLabel?.text = pokemon.name
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let pokemon = pokemons[indexPath.row]
let viewController = PokemonViewController(frame: tableView.frame, pokemon: pokemon)
navigationController?.pushViewController(viewController, animated: true)
}
}
class PokemonViewController: UIViewController {
private let pokemon: Pokemon
init(frame: CGRect, pokemon: Pokemon) {
self.pokemon = pokemon
super.init(nibName: nil, bundle: nil)
self.title = self.pokemon.name
self.view = UIView(frame: frame)
self.view.backgroundColor = UIColor.white
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
let rootViewController = PokedexViewController()
rootViewController.title = "Pokedex"
let navigationController = UINavigationController(rootViewController:rootViewController)
PlaygroundPage.current.liveView = navigationController.view
关于swift - 如何在操场上访问ViewController和Scene实例?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32632478/