我对SKNode
方法convertPoint:fromNode:
和convertPoint:ToNode:
工作方式感到有些困惑,我看过文档,但不是很明显他们做了什么.例如,这个(见下图)是我用过的一个小测试convertPoint:fromNode:
.黑色区域是SKScene
背景,蓝色区域是一个SKSpriteNode
父级SKScene
,红色区域是另一个SKSpriteNode
蓝色精灵的父级.两个精灵的锚点由小绿点表示.我想要做的是获取红色精灵的场景位置,我使用以下代码完成:
CGPoint positionInScene = [self convertPoint:[self position]
fromNode:[self redSprite]];
Run Code Online (Sandbox Code Playgroud)
结果是这样的
positionInScene = [105, 205]
Run Code Online (Sandbox Code Playgroud)
这是我所期望的,因为那将是场景空间中红色方块的起源.我很困惑的是争论.根据我的猜测:
[SKNode_A convertPoint: CGPoint_B toNode: SKScene_C]
Run Code Online (Sandbox Code Playgroud)
我最初的尝试是[self convertPoint:[redSprite position] fromNode:redSprite]
因为我想将红色精灵原点转换为场景.如果有人能在这个和它的朋友身上投入一点点光明和逻辑,convertPoint:toNode:
那将会非常感激,这似乎有点笨拙.
我需要在我的应用程序中添加雨粒子效果,我一直很难找到实际执行这个想法的方法.
我尝试按照这个CALayer方法教程:链接, 但我不太确定这是否是最好的方法,考虑到Xcode 5中提供的新的iOS 7 SpriteKit粒子发射器.
我已经创建了.sks
文件并且它在我的层次结构中,但我仍然无法将其添加到我的故事板/项目中.
话虽如此,我究竟如何在我的视图中添加SpriteKit粒子(sks)?我对SpriteKit框架中的场景,分层等并不熟悉,因为我不是游戏开发人员.我需要尽可能多的细节和示例代码,以便我能够解决这个问题
更新:我已按照SO成员答案中提供的指示:AyatollahAndy,请参阅下面的答案.虽然我能够SKScene
在view
收到任何触摸事件时显示我的应用程序崩溃.我得到以下内容:
谢谢
有没有办法让SKScene的背景透明,并通过透明度将该场景呈现在另一个场景上.
想法是让所呈现的场景的背景如下:
self.backgroundColor = [SKColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.5f];
Run Code Online (Sandbox Code Playgroud)
什么可以看到背后的场景变暗.但这样做并不奏效.背景呈现完全不透明.
有没有办法做到这一点?
简而言之,我只想知道我是否应该关注这个问题:
运行时:GPU帧捕获:
由于部署目标早于设备版本,着色器性能数据可能不可用
我使用的设备运行iOS 12.0,当我将应用程序设置为目标iOS 12时,此问题没有出现.
但是,在我将应用程序的目标更改为11.4之后,就会出现这种情况.
基于我对它的阅读,以及我的应用程序在更改后的性能,我认为这不是真正令人担忧的,只是存在提醒我可能在获取着色器性能数据时遇到问题.
如果没有对11.4设备进行测试,我能做什么甚至应该做什么,去除它?
我的场景有一堆矩形,物理体与矩形大小相同.我喜欢将我的所有物体锚定到CGPointZero,但是我注意到当我这样做时,物理体仍然固定在中间.换句话说,我的物理体的位置就像是视觉表示的左下方100像素.
这是一段简单的代码:
SKSpriteNode* square = [SKSpriteNode spriteNodeWithColor:[SKColor blackColor] size:CGSizeMake(width, height)];
square.anchorPoint = CGPointZero; //position based on bottom-left corner
square.position = CGPointMake(x, y);
square.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(width, height)];
Run Code Online (Sandbox Code Playgroud)
任何想法或建议解决这个问题将不胜感激.例如,如果我可以想象物理机构,这可能有所帮助,但我不知道如何.
更新:所以我通过简单地设置锚点并重新定位我的矩形来解决问题.所以这个问题仍然存在,但我已经有了解决方案并且工作正常.
如何将SKSpriteNode带到所有其他节点的前面?
使用UIView,我可以使用bringSubviewToFront在其他视图前面显示uiview.
关于如何使用SpriteKit中的SKLabelNode类插入换行符的简单问题.我有以下代码但它不起作用 -
SKLabelNode *nerdText = [SKLabelNode labelNodeWithFontNamed:@"Times"];
NSString *st1 = @"Test break";
NSString *st2 = @"I want it to break";
NSString *test = [NSString stringWithFormat:@"%@,\r%@",st1,st2]; //Even tried \n
nerdText.text = test;
nerdText.fontSize = 11;
nerdText.fontColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0];
nerdText.position = CGPointMake(150.0, 250.0);
[self addChild:nerdText];
Run Code Online (Sandbox Code Playgroud)
请帮帮我!
我一直在钻研Apple的新Sprite Kit,并且已经使用了一段时间了.然而,当我试图为一个弯曲的路径绘制时,我遇到了一个问题SKShapeNode
.它似乎只是绘制一条直线.
这是我遇到的一个非常简单的例子 - 试图绘制CGPath
一个SKShapeNode
:
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 0, 0);
CGPathAddQuadCurveToPoint(path, NULL, 50, 100, 100, 0);
CGPathAddLineToPoint(path, NULL, 50, -100);
CGPathCloseSubpath(path);
SKShapeNode *shape = [[SKShapeNode alloc]init];
shape.path = path;
[self addChild:shape];
CGPathRelease(path);
Run Code Online (Sandbox Code Playgroud)
这是我的ASCII艺术,它正在做什么(抱歉,我没有足够的声誉发布实际图像):
---------------------------------------------------------------------------------
| EXPECTED RESULT | ACTUAL RESULT |
---------------------------------------------------------------------------------
| | |
| __----__ | |
| / \ <- Curve | ? |
| / \ | ____________ |
| \ / | \ / |
| …
Run Code Online (Sandbox Code Playgroud) 有没有办法让SKSpriteNode圆形走投无路?我正在尝试用颜色填充的SKSpriteNode创建一个Tile likesqaure块:
SKSpriteNode *tile = [SKSpriteNode spriteNodeWithColor:[UIColor colorWithRed:0.0/255.0
green:128.0/255.0
blue:255.0/255.0
alpha:1.0] size:CGSizeMake(30, 30)];
Run Code Online (Sandbox Code Playgroud)
如何围绕走投无路?
谢谢!
我最近上传了一个应用程序到应用程序商店,现在已经处理了几天.我今天早上去看了所有的东西,在iTunes连接的顶部栏上,我点击了iOS版本,看看一切如何,我得到一个带有感叹号的红色圆圈.当我点击它时,它会显示"此版本无效".有谁知道这样做的原因是什么?
sprite-kit ×10
ios ×7
objective-c ×4
iphone ×3
ios7 ×2
xcode ×2
cgpath ×1
ipad ×1
sknode ×1
skshapenode ×1
skspritenode ×1
swift ×1
uiview ×1