- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用多个 map 集时遇到问题。
例如,我有 main_menu.atlas 和 game.atlas 以及这些场景的图像。在主菜单场景出现之前,我为它准备了图集([SKTextureAtlas atlasNamed:@"main_menu"])并且一切正常。但是当我开始游戏并在游戏中准备游戏图集( [SKTextureAtlas atlasNamed:@"game"] )后,我只看到空节点(带红色交叉的矩形)。没有异常(exception)或警告 - 一切正常。
当我将所有游戏资源移至 main_menu.atlas 并删除 game.atlas 时,一切正常 - 我在游戏中看到 Sprite 。但我想分离图集以进行性能优化。
我使用自己的助手进行 SpriteKit 纹理管理。它加载 map 集并返回我需要的纹理。所以我有这些方法:
- (void) loadTexturesWithName:(NSString*)name {
name = [[self currentDeviceString] stringByAppendingString:[NSString stringWithFormat:@"_%@", name]];
SKTextureAtlas *atlas = [SKTextureAtlas atlasNamed:name];
[self.dictAtlases setObject:atlas forKey:name];
}
- (SKTexture *) textureWithName:(NSString*)string {
string = [string stringByAppendingString:@".png"];
SKTexture *texture;
SKTextureAtlas *atlas;
for (NSString *key in self.dictAtlases) {
atlas = [self.dictAtlases objectForKey:key];
texture = [atlas textureNamed:string];
if(texture) {
return texture;
}
}
return nil; // never returns "nil" in my cases
}
“清洁”无济于事。我做错了什么?提前致谢。
最佳答案
首先让我声明:你绝对可以使用 2+ 纹理图集:)
现在手头的问题:
您首先加载菜单图集(首先是字典),然后是游戏图集。当您抓取菜单纹理时,一切都很好。当您外出获取游戏纹理时,您首先查看菜单图集(没有可用图像,因此图集返回此 doc 中定义的占位符纹理,而不是您期望的 nil。
这段代码应该可以正常工作
- (SKTexture *) textureWithName:(NSString*)string {
string = [string stringByAppendingString:@".png"];
SKTexture *texture;
SKTextureAtlas *atlas;
for (NSString *key in self.dictAtlases) {
atlas = [self.dictAtlases objectForKey:key];
if([[atlas textureNames] containsObject:string]){
texture = [atlas textureNamed:string];
return texture;
}
}
return nil;
}
此外,不添加 .png 也能正常工作 :)
关于ios - SKTextureAtlas:不止一个图集令人困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21260571/
如何通过 GLSL Sampler 仅绘制存储在 Texture Array 中的 Texture2D Atlas 的一部分?例如我有纹理图集,我会将它们放在一起(与其他相同大小的图集)在 Textu
我想要来自 atlas 纹理的简单动画,顺序为 win1、win2、win3。我的代码: var Image = SKSpriteNode() var ImageAtlas = SKTextureAt
我有一个 SpriteKit 游戏,可以毫无问题地访问 Sprite 图集图像。 但是,在我的一些菜单中,我使用标准 iOS UI 组件,例如 TableView 和 Collection View
我是编程新手,正在阅读《Getting MEAN》一书。不幸的是,关于 MONGODB 和 HEROKU 的部分使用了 MLAB,我想使用 AtlasMongoDB。所以,我连接数据库的代码是 con
我需要帮助!!!我尝试使用我的连接字符串连接到 mongodb atlas,但我无法连接。我不知道如何继续。我有一个准系统应用程序。我收到一个连接错误(一个 mongooseServerSelecti
Apple 推荐的在 SpriteKit 项目中组织 Assets 的方式在引擎的历史进程中发生了很大的变化。旧方法中也存在错误,这些错误阻碍了这些实践和所需变通办法的实现。 SO 上的旧 Q&A 充
我是一名优秀的程序员,十分优秀!