问题标签 [sktilemapnode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 如何在 swift 中正确复制 SKTileMapNode
当我loop
在节点上运行时,一切正常,节点移动正确。但是当我在到达屏幕左边框(中途)next
时对动作中断运行循环时。next
我认为副本有问题。谢谢!
swift - 1 个大的 sktilemapnode 或更小的 sktilemapnode
我将在我的 2d iOS 平台游戏中使用 sktilemapnodes。什么更好或更有效?
使用作为整个关卡的单一大小的 sktilemapnode 或将区域分成多个 sktilemap 节点。
示例:我有 3 层背景,将用于视差背景效果。
第一层(最靠后)只是一个渐变的天空。我将它分解为 512x512 像素的图块。我只有 8 个不同的瓷砖可以用作 1x8 瓷砖网格。然后我可以向左/向右或向上/向下继续这种模式,以使天空尽可能大。
问题:我的问题是我是否应该为整个天空使用 1 个瓦片地图节点,或者是否应该将其分解为可重复的更小块(如 1x8 网格)。如果我把它分成更小的块,我不需要它那么大,并且当我的游戏中相机移动时,我可以移动这些块。
我想知道这是否会以这种方式消耗更少的资源。
第二层是丘陵。我有大约 8 个不同的瓷砖,每个瓷砖都是 128x64 像素。我可以根据自己的喜好将它们排列成可重复的模式。所以我可以再一次拥有一个 tilemapnode,它是我可以重复的图案大小,我可以创建多个节点,或者我可以在 1 个节点中创建整个地图。
第 3 层略有不同,因为它基本上是包含 27 个 512x512 像素图块的树木图案图像。9x3 网格。但同样,我可以使用 1 个节点或多个节点。
我只关心效率。什么会为我带来最大的收益,这样我就可以有空间处理其他游戏对象。这只是你知道的背景......
使用 Tilemapnode,我不确定是否每个周期都没有处理不可见的图块,或者我是否需要手动进行某种检查。我想选择在某些级别上拥有大量地图。我是使用 sktilemapnodes 的新手,所以我试图弄清楚如何以最有效的方式使用它们。
swift3 - Spritekit Hexagonal map:SKAction 中的瓦片检测。
我问这个问题是因为我没有找到任何解决此类问题的方法。事实上,十六进制地图支持并不是很流行。
我正在使用 SpriteKit 框架制作游戏。我将 SktileMapNode 与六边形地图一起使用,其中包含 1 组 4 组图块。
playernode 在每个图块上移动,我不希望当他在特定图块上移动时可以触发某些事件(打印,函数,Sktransition),但目前我只停留在检测这些图块上。
我设置了用户数据(作为 bool )并将它们应用到代码中,但没有发生任何事情,即使在磁贴上发生了触摸事件。
只有“不同的瓦片”输出被触发。
欢迎任何帮助。
图片示例链接:我想要的东西
ios - SpriteKit 平台游戏中的性能问题问题
我第一次在为 iOS 开发平台游戏时遇到了一些滞后。我对开发比较陌生,所以我假设我已经犯了可能减慢游戏速度的错误。
我只是有几个问题让我感到困惑。
我正在构建一个平台游戏,所以有时我会在场景相机视图之外有节点。如果不是,我应该遍历所有节点并将它们从场景中删除吗?这会有助于提高性能,还是 SpriteKit 会自动使用 skcameranode 执行此操作?
我想营造一种开放世界的感觉,所以有些关卡可能很大。我有很多 128x128 的图块,我将它们与 tilemapnodes 一起用于前景。玩家将与之交互的地面、泥土、平台等东西。我还有 5 层视差背景,它们是 512x512 瓦片,每层都有自己的瓦片图节点。我的问题是关于这些巨大的水平。我应该把这些tilemapnodes分成几个部分吗?这会帮助你的表现吗?
最后一个问题,所以 128x128 的图块实际上是 256x256。我只是缩小了tilemapnode。我为前景创建了一个巨大的 tilemapnode,并用这个地图节点制作了地面和地板以及几座小山。当我将播放器移动到节点密集的区域时,它会延迟到 45-55 fps。当远离这个密集区域时,它会回到 60 fps;让我相信 SpriteKit 处理问题 1 的事情。无论如何,与其创建 256x256 的图像并在需要时按比例缩小,不如使用缩放选项创建不同尺寸的单独图像有助于提高性能?(如果重要的话,我对每张图像都使用 1,2,3x 图像)
谢谢你的帮助。
swift - 如何在 SpriteKit 中将磁贴更改为另一个(或空白)?
所以我试图在 Xcode 8.3.3 中使用一个 tile map 节点来编写一个国际象棋应用程序,一个 8x8 tile map 包含一个块或每个 tile 的空白空间(在 GameScene.sks 中制作,而不是使用代码)。我想要做的是改变瓷砖。例如,如果有人移动一个棋子,我想将起始空间从一个棋子更改为一个空格,然后将结束格从一个空格更改为一个棋子。瓦片组位于一个名为 pieces.sks 的文件中,我在 File->New->File->SpriteKit Tile Set 中创建了该文件。这是我到目前为止在 GameScene.swift 中的内容(我取出了与问题无关的内容),目标是在代码运行时将单个正方形更改为白色主教:
所以pieces.setTileGroup 让我感到困惑有几个原因,例如“forColumn”而不是简单的“column”。我从 Apple Developer Documentation 中得到了它,并且不确定这是做我想做的正确的事情。backgroundGroup(在代码中加星标)参数是一个占位符。我不知道如何填写那里的白人主教。谢谢!