我的Xcode 8.3.3故事板非常慢,几乎没有响应,我不知道是什么导致它.
尝试:
删除xcuserdata并再次打开Xcode.
在另一个项目上打开Xcode.(它工作正常.它似乎只是这个特定项目中的一个main.storyboard.)
提取main.storyboard文件并打开和关闭Xcode,然后将其重新放入.
重启我的Mac(2016年末.使用触摸屏进行翻新.16GB内存512GB存储.)
清洁项目.(CMD + Shift + K)
所有这些都失败了,我试图在下周启动我的应用程序.如果这种情况持续存在,我将无法启动并将落后于我的日程安排.
当我删除xcuserdata时,我能够导航到另一个.swift文件,它工作正常.但是当我进入故事板时,它会慢慢减慢到1FPS.(我有一台配备16GB内存的MacBook Pro,我不知道它为什么不能更好地处理这个问题.)
我真的厌倦了这一点,我尝试过的所有其他事情都没有用.
我一直在GKNoiseMaps上关注Apple Docs,我设法得到一个图像产生,它看起来非常好
在这里使用此代码
class GameScene: SKScene {
class Noise: GKNoise {
var NoiseSource = GKPerlinNoiseSource(frequency: 0.05, octaveCount: 3, persistence: 1, lacunarity: 1, seed: Int32(arc4random_uniform(UInt32(500 - 1))))
override init(_ noiseSource: GKNoiseSource, gradientColors: [NSNumber : UIColor]) {
super.init(NoiseSource, gradientColors: [ (+1.0 as NSNumber): UIColor.red, (-1.0 as NSNumber) : UIColor.black])
}
}
let noise = Noise()
let Vector1 = vector_double2(1.0, 1.0)
override func didMove(to view: SKView) {
let NoiseMap = GKNoiseMap(noise, size: vector_double2(300.0, 300.0),
origin: vector_double2(0.0, 0.0),
sampleCount: vector_int2(100),
seamless: true) …
Run Code Online (Sandbox Code Playgroud) 我正在比较GKNoise字段中的值,然后根据噪声级别将tile设置为tileMap
这个if语句是通过四舍五入到最接近的十分来比较这些值,有没有更好的方法来编写它?
if round(MasterNoise.value(atPosition: vector_float2(Float(columns),Float(rows)))) == -1.0 {
tileMap.setTileGroup(tileGroup4, forColumn: columns, row: rows)
}
if round(MasterNoise.value(atPosition: vector_float2(Float(columns),Float(rows)))) == -0.9 {
tileMap.setTileGroup(tileGroup4, forColumn: columns, row: rows)
}
if round(MasterNoise.value(atPosition: vector_float2(Float(columns),Float(rows)))) == -0.8 {
tileMap.setTileGroup(tileGroup4, forColumn: columns, row: rows)
}
if round(MasterNoise.value(atPosition: vector_float2(Float(columns),Float(rows)))) == -0.7 {
tileMap.setTileGroup(tileGroup4, forColumn: columns, row: rows)
}
if round(MasterNoise.value(atPosition: vector_float2(Float(columns),Float(rows)))) == -0.6 {
tileMap.setTileGroup(tileGroup4, forColumn: columns, row: rows)
}
if round(MasterNoise.value(atPosition: vector_float2(Float(columns),Float(rows)))) == -0.5 {
tileMap.setTileGroup(tileGroup3, forColumn: columns, row: rows)
}
if round(MasterNoise.value(atPosition: vector_float2(Float(columns),Float(rows)))) == -0.4 { …
Run Code Online (Sandbox Code Playgroud)