社区首页 >问答首页 >SpriteKit和JSTileMap

SpriteKit和JSTileMap
EN

Stack Overflow用户
提问于 2015-01-13 04:16:22
回答 1查看 729关注 0票数 1

我很难理解JSTileMap如何与SpriteKit和平铺一起工作。

该问题与像素和点有关,也与使用基于屏幕比例因子的JSTileMap加载分集有关。

项目中的文件结构

在我的项目中,有一些文件具有以下结构,这表示了我的低分辨率映射(1024x768px和32x32px瓷砖):

  • 名为SD 的文件夹
    • level-1.tmx
    • 文件夹tmx-levels sd.atlasc
      • tmx-levels-sd.1.png
      • tmx-levels-sd.plist

在这种情况下,当我加载电平-1.tmx在非视网膜模拟器,一切都是正确的定位。当我在视网膜模拟器上运行相同的配置时,同样,一切都很好,但是瓷砖被缩放了。因为这种品质受到了损害。那么,在需要的时候如何加载高分辨率的呢?

另一个解决方案

我还试图通过对每个级别使用两个版本的地图(低分辨率和高分辨率)来解决这个问题。这实际上是我想避免的,但仍然是可以接受的:

对于这种情况,我有这样的文件结构(map是2048x1536和64x64px瓷砖):

  • 名为SD 的文件夹
    • level-1.tmx
    • 文件夹tmx-levels sd.atlasc
      • tmx-levels-sd.1.png
      • tmx-levels-sd.plist

  • 名为HD 的文件夹
    • level-1-hd.tmx
    • 文件夹tmx-Level-hd.atlasc
      • tmx-levels-hd.1.png
      • tmx-levels-hd.plist

我想那张尺寸为2048x1536的双倍的地图适合我的地图的高分辨率版本吗?另外,正如您所看到的,在我的项目中根本没有@2xtilesets(我猜我们不能使用带有平铺编辑器和JSTileMap?)的@2x后缀。

这种配置的问题是所有的东西都被改变了(位置和平铺是加倍的)。JSTileMap可能与点一起工作,用像素平铺,最重要的是有一个已知的与纹理地图集相关的iPad模拟错误,这让我很难理解是什么导致了高分辨率地图的问题。

有人能澄清这些关于使用JSTileMap,SpriteKit和平铺的事情吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-18 11:01:38

我拿到你的味精了。

首先,您需要瓷砖的@1x和@2x版本(精灵)。因此,如果您有一本名为myTiles的地图集,您将需要: myTiles.png & myTiles@2x.png。

我用纹理封隔器制作了我的雪碧薄片。我添加了@2x图像,然后在导出时让它创建一个@1x版本。

在平铺中,只使用@1x版本,这样您就可以使用myTiles.png

如果您的地图是32x32,您的@1x版本将是32x32,您的@2x版本将是64x64。

忘记SD & HD文件夹,只需使用一个名为“假设级别”的文件夹。

在这里你需要:

级别-1.tmx,tmx-级别-sd.1.png,tmx-级别-sd.1@2x.png

您可以在主级别文件夹下有子文件夹。取决于您,但是您必须同时拥有png的@1x版本和@2x版本,您不能只复制@1x或@2x版本。@1x版本必须是基于32x32的瓷砖,而@2x版本必须是该版本的两倍(64x64)。在tmx文件本身中,您不会加载@2x版本,因为这会使您的级别变得一团糟。

**所以你的游戏将在32x32分号上进行。雪碧工具包将做的是双倍的像素在视网膜显示,为此,您需要有@2x版本,否则它将升级您的@1x版本,瓷砖将看起来很大,像素化。所以,尽量不要混淆整个像素点的东西。

代码示例:

GameViewController (装载场景):

代码语言:javascript
代码运行次数:0
复制
- (void)viewDidLoad
{
[super viewDidLoad];

self.currentLevel = 1;

// Configure the view.
SKView * skView = (SKView *)self.view;
skView.showsFPS = YES;
skView.showsNodeCount = YES;

/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = YES;

// Create and configure the scene.
LevelScene *scene = [[LevelScene alloc]initWithSize:skView.bounds.size level:self.currentLevel];
scene.scaleMode = SKSceneScaleModeAspectFill;

// Present the scene.
[skView presentScene:scene];
}

LevelScene (Loads ):

代码语言:javascript
代码运行次数:0
复制
#import "LevelScene.h"
#import "SKTAudio.h"
#import "JSTileMap"
#import "Player.h"

@interface LevelScene()

@property (nonatomic, assign) NSUInteger currentLevel;
@property (nonatomic, strong) SKNode *gameNode;
@property (nonatomic, strong) JSTileMap *map;
@property (nonatomic, strong) Player *player;
@property (nonatomic, assign) NSTimeInterval previousUpdateTime;

@implementation LevelScene

-(id)initWithSize:(CGSize)size level:(NSUInteger)currentLevel {

if ((self = [super initWithSize:size])) {
    self.currentLevel = currentLevel;
self.gameNode = [SKNode node];
    [self addChild:self.gameNode];
NSString *levelName = [levelDict objectForKey:@"level"];
    self.map = [JSTileMap mapNamed:levelName];

    [self.gameNode addChild:self.map];
return self;
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27921999

复制
相关文章
SpriteKit动画小游戏
Spritekit简介 Spritekit是苹果IOS7中引入的一个2D游戏引擎框架,可以实现各种动画效果,在这之前业界比较优秀的游戏引擎是cocos2d,支持场景切换、精灵和精灵表单、动作、动画和特
MelonTeam
2018/01/04
5.1K1
SpriteKit动画小游戏
学习SpriteKit开发(1)
开发一款单机RPG游戏是很多80后儿时的梦想,但因为盗版等原因,国内的PC、家用机单击市场已经彻底被毁掉。新的独立游戏人想在这两个平台上线已经非常困难,引擎学习成本偏高。机能强大更多的强调的是游戏界面而不仅仅是游戏情节。但手机市场就大不同,机能还不够强大基本等于SFC、N64这个水准,吸引用户更多的还要依靠玩法和剧情。
海哥@开发
2022/04/06
1.3K0
学习SpriteKit开发(1)
iOS开发实战-基于SpriteKit的FlappyBird小游戏写在前面SpriteKit简介效果分析代码关于游戏上架TipsDemo地址还没结束
写在前面 最近一直在忙自己的维P恩的事情 公司项目也是一团乱 于是...随手找了个游戏项目改了改就上线了,就当充数了. SpriteKit简介 SpriteKit是iOS 7之后苹果推出的
gwk_iOS
2018/08/23
1.6K0
iOS开发实战-基于SpriteKit的FlappyBird小游戏写在前面SpriteKit简介效果分析代码关于游戏上架TipsDemo地址还没结束
SpriteKit简介-创建您的第一个iPhone平台游戏
在本节中,您将学习如何使用SpriteKit创建自己的平台游戏。您将学习如何实现所有基本游戏功能,如玩家移动,玩家跳跃,相机工作,动画等。
iOSDevLog
2019/03/11
3.6K0
SpriteKit简介-创建您的第一个iPhone平台游戏
touchpoint_pointpillars
在SpriteKit的游戏开发当中经常会使用到AnchorPoint这一属性,锚点的使用一般是配合着position属性使用的,锚点是在自身View上找,这个点一一映射的有一个父view的坐标(使用position来表示),可以通过这两个值来计算子视图的位置信息.也就是说position 用来设置CALayer在父层中的位置,而anchorPoint 决定着CALayer身上的哪个点会在position属性所指的位置 .
全栈程序员站长
2022/11/09
4300
新年开工啦,放个小烟花庆祝一下
2022年大年初八,正式开工大吉啦!我的技术输出路线也准备在今天正式开始营业。首先咱们今天就用 Apple 的 SpriteKit 2D 引擎给大家画一个小烟花吧!
HelloWorld杰少
2022/08/04
6110
新年开工啦,放个小烟花庆祝一下
升级和游戏音效 如何在场景和声音效果之间切换
在游戏中,您通常需要一项功能,以便在游戏进行时使游戏更难。例如,在Mario中,您需要清除每个阶段以传递到下一个区域。每次通过舞台,难度都会变得更难。在本节中,我们将学习如何从场景更改为另一个场景。此外,让我们实现任何游戏所需的功能:声音效果。
iOSDevLog
2019/03/11
1.7K0
ARKit 简介
ARKit 简介 苹果在AR一直布局VR,最近的苹果开发者大会上,果家终于放出大招:iOS移动端ARKit平台以及VR兼容新桌面操作系统macOS High Sierra。 增强现实(AugmentedReality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。说起AR,其实它并不是第一次出现,不管在国内还是国外,好多大小公司都对AR有所涉猎,去年流行的Pokémon Go,阿里的AR红包,百度的AR地图…都是AR领
xiangzhihong
2018/02/06
2.5K0
ARKit 简介
SceneKit-渲染视频
渲染普通视频 本节学习目标 使用SceneKit如何播放视频 scenekit 播放视频的方式有很多种,今天我就给大家介绍一种最简单的播放视频的方式 使用的技术 要用到SpriteKit框架中
酷走天涯
2018/09/14
1.4K0
SceneKit-渲染视频
我庆幸果断放弃了SwiftUI:它还不够成熟
编译 | 核子可乐、Tina SwiftUI 很好,但是苹果对它投资不足。 在 2019 年的 WWDC 大会上,苹果推出了一个全新的 SwiftUI 框架,这是一个现代化的 UI 界面编码结构,它是基于 Swift从头开始构建的。新框架使用声明性范例,让开发者用更少的代码编写相同的 UI。 SwiftUI 的愿景是降低开发 iOS 门槛,吸引更多开发者、丰富 iOS 的业态。并且 SwiftUI 可以“实现一次编码,可适应五端 Apple 产品平台”, 包括watchOS、tvOS、macOS 等,
深度学习与Python
2023/03/29
5.1K0
我庆幸果断放弃了SwiftUI:它还不够成熟
操纵杆控制-使用控制器移动玩家
在本节中,我们将播放器连接到操纵杆,这样我们就可以用旋钮移动它。我们还将了解触摸,将旋钮重置为其初始状态以及如何控制播放器的位置,以便他始终在X轴上朝向正确的方向。
iOSDevLog
2019/03/11
1.3K0
操纵杆控制-使用控制器移动玩家
图像检测-如何通过扫描图像来制造幻觉
今年,Apple发布了ARKit 2的新功能。其中之一就是图像检测。这是一个非常酷的功能,允许您在用户的环境中跟踪2D图像,并在其上放置增强现实内容。在本课程中,您将学习如何通过检测您喜欢的任何图像以及如何在呈现模型时更改模型的材质,将您自己的3D模型放置在任何对象之上。
iOSDevLog
2019/06/17
2.4K0
图像检测-如何通过扫描图像来制造幻觉
2021年游戏项目的十大编程语言:C++、Java、C#均上榜「建议收藏」
在这个技术驱动的世界里,游戏行业是全球增长最快的行业之一。在每一款华丽精美的电子游戏背后,都有一种编程语言,为用户提供优质的体验。游戏开发者利用顶级的编程语言来构建游戏。不同的游戏项目使用了不同的编程语言,这取决于游戏类型,如主机游戏、电脑游戏或手机游戏,还取决于互动性的程度。
全栈程序员站长
2022/09/02
2K0
SceneKit_中级06_场景的切换
SceneKit_入门01_旋转人物 SceneKit_入门02_如何创建工程 SceneKit_入门03_节点 SceneKit_入门04_灯光 SceneKit_入门05_照相机 SceneKit_入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11_粒子系统 SceneKit_入门12_物理行为 SceneKit_入门13_骨骼动画 SceneKit_中级01_模型之间的过渡动画 SceneKit_中级02_SCNView 详细讲解 SceneKit_中级03_切换照相机视角 SceneKit_中级04_约束的使用 SceneKit_中级05_力的使用 SceneKit_中级06_场景的切换 SceneKit_中级07_动态修改属性 SceneKit_中级08_阴影详解 SceneKit_中级09_碰撞检测 SceneKit_中级10_滤镜效果制作 SceneKit_中级11_动画事件 SceneKit_高级01_GLSL SceneKit_高级02_粒子系统深入研究 SceneKit_高级03_自定义力 SceneKit_高级04_自定义场景过渡效果 SceneKit_高级05 检测手势点击到节点 SceneKit_高级06_加载顶点、纹理、法线坐标 SceneKit_高级07_SCNProgram用法探究 SceneKit_高级08_天空盒子制作 SceneKit_高级09_雾效果 SceneKit_大神01_掉落的文字 SceneKit_大神02_弹幕来袭 SceneKit_大神03_navigationbar上的3D文字
酷走天涯
2022/05/13
7010
SceneKit_中级06_场景的切换
ARKit 初学和发布会 Demo
增强现实技术(Augmented Reality,简称 AR) ,概念我就不说了百度百科会告诉你,下面是我在iOS ARKit发布会对iOS AR应用的理解。
星宇大前端
2019/01/15
7060
ARKit上手 添加3D物体
之后,填写完项目信息后,选择Content Technology为SceneKit,当然也可以选择SpriteKit,不过在3D空间中就不是那么立体了。 开发语言选择Swift,Swift天然亲和ARKit,很多网上的Demo都是用Swift写的,这样也方便移植和借鉴。
Charlie_W
2018/10/19
2.2K0
ARKit上手  添加3D物体
摄影机-跟随玩家并添加背景视差
在本节中,我们将了解任何游戏中的基本元素:相机。在大多数标志性的平台游戏中,如Mario,Metroid,Super Meat boy,相机的良好实现使整个游戏体验更加完美。
iOSDevLog
2019/03/11
1.3K0
ARKit
一个增强现实(AR)描述了用户体验,从设备的摄像头的方式,使这些元素似乎居住在现实世界中添加2D或3D元素到实时取景。ARKit结合了设备运动跟踪,摄像机场景捕捉,高级场景处理和显示便利性,简化了构建AR体验的任务。您可以使用这些技术使用iOS设备的后置摄像头或前置摄像头创建多种AR体验。
iOSDevLog
2018/08/22
2.2K0
我是这样从零开始用深度学习做狗脸识别 iOS App 的
我是一个初创公司的软件工程师。曾经有段时间在谷歌工作,做谷歌财经图表和Multiple inboxes,并主管谷歌地图的业务。最近,我开了一家叫Spring的购物公司。同时,我也是一个创业者,在空余时间里我喜欢做一些副业。
AI研习社
2018/07/26
1.3K0
我是这样从零开始用深度学习做狗脸识别 iOS App 的
Swift学习资源
Swift,一种强大的开源编程语言, 让大家都能开发出众的 App。 Swift 是一种强劲而直观的编程语言,它由 Apple 创造,可用来为 iOS、Mac、Apple TV 和 Apple Watch 开发 app。它旨在为开发者提供充分的自由。Swift 易用并且开源,只要有想法,谁都可以创造非凡。 Swift is a high-performance system programming language. It has a clean and modern syntax, of
庞小明
2018/03/09
2.5K0
Swift学习资源

相似问题

未能使用SpriteKit和JSTileMap查看TMX

15

JSTileMap在ios7 SpriteKit模板中生成警告

14

如何在JSTileMap中使用JSTileMap

12

SpriteKit在运行大型tilemap游戏时使用95-100% CPU (JSTileMap)

16

使用JSTileMap在SpriteKit中加载TMX文件后,节点数很高

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文