问题标签 [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.

0 投票
0 回答
97 浏览

swift - Tile Map Node 在性能方面是否比手动添加 SKShapeNodes 更好?

我最近阅读了这篇关于使用的 raywenderlich 文章tile map node

https://www.raywenderlich.com/1079-what-s-new-in-spritekit-on-ios-10-a-look-at-tile-maps

在我自己的项目中,我自己使用SKShapeNode. 效果很好,但是我在阅读文章后注意到了一件事:

在此处输入图像描述

在教程中它说只有 5 个节点,而显然有更多的瓦片;可能超过 100 个。然而,在我自己的项目中,使用 8*8 瓷砖板,它说我有超过 130 个节点。

所以我的问题是:

  • 为什么说只有5个节点?Tile Map Node减少活动节点的数量有什么魔力吗?

  • 如果Tile Map Node确实减少了节点,这是否意味着与自己手动编程瓷砖相比,它提高了性能,从而Tile Map Node在性能方面变得更好?

0 投票
1 回答
52 浏览

swift - 从 skSpriteNode 位置获取 tileGroup

您好,我正在开发一个在棋盘式 SKtilemap 上进行的小游戏。当生成敌人时,我希望它们只出现在光砖上(以及只出现在地图的上半部分而不是玩家角色上)。为此,我使用 while 循环进行迭代,以尝试检查随机选择的行和列下的 tileGroup 类型。不幸的是,我收到一条错误消息:

表达式类型'(Int, Int) -> SKTileGroup?' 没有更多上下文是模棱两可的

当我尝试将此 tileGroup 检查移动到其他函数时,我没有收到此错误,但打印的 tileGroup 看起来像这样:SKTileGroup: 0x600003ce3b10> 而不是 tileGroup 名称。

谢谢!

0 投票
0 回答
92 浏览

swift - 将敌人移动到玩家的新位置

在下面的代码中,我将玩家移动到玩家触摸的瓷砖上,然后我期望发生的事情也将敌人移动到玩家的新位置。实际发生的是敌人移动到玩家在移动之前所在的瓷砖。有人可以解释为什么会发生这种情况以及如何获得我想要的结果吗?

单击图块时输出如下(行:0,列:1):

0 投票
1 回答
525 浏览

swift - Spritekit:如何将玩家移动限制在某些瓷砖上

问题背景:如截图所示,我有一个 24*24 的 tilemap 和一个玩家精灵节点。我目前要解决的问题是,我希望将玩家的移动限制在字母 A 形的红色瓷砖内。 在此处输入图像描述

我尝试过的解决方案:我使用 intersects 方法来逐帧检测 tilemap 和玩家精灵节点之间的碰撞。但是,我希望将玩家精灵节点仅与字母 A 形红色瓷砖的框架进行比较,而不是与整个瓷砖地图进行比较。

那么,我怎样才能将字母 A 形的红色瓷砖从整个瓷砖地图中分离出来,然后将其帧与玩家进行比较,这样我就可以将玩家的移动限制在字母区域内?

0 投票
1 回答
198 浏览

xcode - 自定义六边形 SKTileSet 的 Tile 不适合 SKTileMap 的 Hexes

所以我一直在尝试使用 xcode 编辑器制作 SKTileMap。
我已经从这里下载了资产。
将所有内容放入我的资产中,并创建一个我用瓷砖填充的空瓷砖集。
现在,当我在我的 sks 文件上制作瓷砖地图时,瓷砖根本不适合地图,如图所示
我尝试改变我的瓷砖的大小,这给了我一个更好看的结果,但是纹理并不像你在这里看到的那样集中在六边形上。

所以我猜我错过了一些明显的东西,但我找不到任何关于在线添加自定义十六进制图块的教程。任何人都知道我应该如何进行?
谢谢。

0 投票
1 回答
180 浏览

swift - [已解决]:在 Swift Spritekit 中定位 SKTileMapNode

我试图定位平铺地图,使其左下角连接到屏幕的左下角。以下是我尝试使用的代码:

请注意,我使用 GameScene.sks 而不是以编程方式添加了瓦片地图。我希望地图的位置应该按照定义工作。但是,当我尝试运行它时,地图确实移动了,但我用于瓷砖的图像保持在同一位置并且拒绝更新。相反,它创建了如下奇怪的纹理。请参阅附图以了解发生了什么。我被困在这几天,感谢任何帮助......

0 投票
1 回答
63 浏览

swift - 已解决:在瓷砖地图中移动角色时锚控制按钮?

我正在开发一款游戏,其中角色将由一组 4 个按钮控制,就像在旧游戏机中一样。我在 spritekit 中使用 Tile Map 来创建地图。一切正常(按下按钮时玩家正在移动,场景跟随玩家)除了我的 4 个按钮在角色移动时也会移动。直到 4 个按钮移出屏幕,我再也无法控制它了。我们如何将 4 个按钮锚定到屏幕的右下角?下面是我用来创建受控按钮的代码

这是我用来创建瓷砖贴图的代码,为包含墙的瓷砖添加带有物理主体的节点:

下面也是我将地图添加到场景的代码:

0 投票
1 回答
134 浏览

swift - 如何在spritekit tilemap中设置tileset的不透明度?

我有一个代码来为 tilemap 中的每个瓦片定义 PhysicsBody,如下所示:

我的瓦片地图中有 3 种不同的瓦片集:墙、检查点和陷阱。使用上面的代码,我已经为它们分配了一个带有物理体的 Spritenode。现在,我希望我的陷阱图块不可见,这样玩家就看不到它。实现它的最有效方法是什么?

0 投票
1 回答
50 浏览

swift - 如何在 Swift 中将 SKTilemap 场景定位在屏幕中间

我在 Swift 5 中创建了一个 TilemapScene (CKTilemapScene.sks)。这基本上是为了铺设我的游戏项目的瓦片地图背景。请参阅下面的第二个屏幕截图。

然后,在我的主要 swift 代码中,我使用标准代码加载所有背景。但是,不知何故,瓦片地图没有居中。请参阅下面的第一个屏幕截图。但是,在屏幕的左下方。我试着玩锚点。那没有帮助。我设置错了吗?

导入 UIKit 导入 SpriteKit 导入 GameplayKit

类 GameViewController: UIViewController {

这就是结果,瓦片地图没有集中

这是属性检查器的屏幕截图

0 投票
0 回答
28 浏览

swift - 将物理实体添加到 SKTileMapNode 上的所有图块

我正在尝试在最新版本的 Xcode 中制作一个简单的游戏。我使用非常简单的 TileMap。我试图弄清楚如何为每个瓷砖添加一个物理体。我被困在获取每个图块的位置并在那里添加一个 SKNode 。任何获取每个图块位置的方法都会非常有帮助。下面的所有代码都在 didMove(to: view) 中