草庐IT

Spritekit

全部标签

ios - 如何在 WatchKit 扩展应用程序中实现 SpriteKit?

我正在尝试将基于SpriteKit的iPhone应用程序扩展到AppleWatch,但是鉴于Watch扩展不使用UIKit和UIViews(而是使用WKInterfaceObject及其子类),我不确定如何设置我的SKView和Watch扩展中的SKScene。 最佳答案 这是旧的,但只是想提一下,在watchOS3中你可以使用SpriteKit和SceneKit。 关于ios-如何在WatchKit扩展应用程序中实现SpriteKit?,我们在StackOverflow上找到一个类似的

ios - Spritekit 将完整游戏扩展到 iPad

所以我正在使用Spritekit在Xcode上为iPhone开发游戏。通过使用node.setScale()方法,它在所有iPhone设备上看起来都一样好。现在我想让它在iPad上也可以通用和运行。我如何轻松地做到这一点?是否有某种比例公式?我已经尝试过的是:ifUIDevice.current.userInterfaceIdiom==.pad{sscale=frame.size.height/768}else{sscale=frame.size.height/320}然后我为每个节点创建node.setScale(sscale)。这最终不起作用,因为在iPadMini上它看起来与iP

ios - SpriteKit : suggestions for rounding corners of unconventional grid?

目标是将非常规网格的角圆化,如下所示:https://s-media-cache-ak0.pinimg.com/564x/50/bc/e0/50bce0cb908913ebc2cf630d635331ef.jpghttps://s-media-cache-ak0.pinimg.com/564x/7e/29/ee/7e29ee80e957ec22bbba630ccefbfaa2.jpg与传统网格那样具有四个角的网格不同,这些网格具有多个需要倒圆角的角。蛮力方法是识别带有暴露角的图block,然后使用不同的背景图像或通过在代码中剪裁角来围绕这些角。有没有更简洁的方法?网格是在SpriteK

ios - iPhone X 上 SceneKit + SpriteKit 覆盖的像素格式错误

在使用Metal渲染器的iPhoneX(iOS11.1.2)上运行SceneKit应用程序时,我遇到了一个棘手的问题。该应用程序的plist键SCNDisableLinearSpaceRendering设置为YES,以便在iOS9和更高版本上获得相同的颜色渲染。它还具有通过overlaySKScene添加的SpriteKit2D叠加层。在发布版本中,iPhoneX在叠加层中显示出奇怪的颜色,但在3D场景中却没有。调试构建崩溃并显示错误日志:-[MTLDebugRenderCommandEncodervalidateFramebufferWithRenderPipelineState:]

ios - 在 SpriteKit 中暂停游戏并显示菜单

我想为我的SpriteKit游戏实现一个暂停菜单,我总是遇到代码self.scene.view.paused==YES但是它会暂停游戏中的所有内容,甚至是touchesBegan方法。因此,当我在暂停游戏之前显示菜单时,我无法与之交互,因为touchesBegan不起作用。我用谷歌搜索了这个问题,有些人只是说将菜单添加为SKNode,但这仍然无济于事,因为它忽略了暂停状态下的触摸输入。 最佳答案 如您所说,您不能暂停场景并继续使用它。所以你有两个选择:如果你想使用paused属性,你应该添加包含暂停按钮的暂停菜单,作为包含场景的SK

ios - SpriteKit : Stuttering during movement with constant velocity

我正在开发一款带有sprite套件的简单飞行游戏。一旦spaceship达到最大高度和速度,它就会以恒定速度继续飞行。我注意到spaceship在不断的飞行过程中会随机出现断断续续的情况。我已经在这里阅读了所有关于这个问题的帖子,但没有什么能真正帮助100%解决它。为了测试,我写了一个非常简单的游戏,它只包含一艘spaceship和一个简单的云(代码如下)。但是即使在这个非常简单的游戏中,spaceship仍然会卡顿。LOG表明,即使飞船以恒定速度飞行,飞船运动也不是随机恒定的。这就是口吃的原因。希望有人能帮我解决这个问题。感谢您的任何想法。Sprite套件、Objectivec、Xc

ios - 为什么 CGPath 和 UIBezierPath 在 SpriteKit 中定义 "clockwise"不同?

在SpriteKit中,clockwise方向对于UIBezierPath是相反的,但对于CGPath则不是。例如,如果我有do{letpath=CGPathCreateMutable()CGPathAddArc(path,nil,0,0,10,0,CGFloat(M_PI_2),true)letnode=SKShapeNode(path:path)node.position=CGPoint(x:self.size.width/2,y:self.size.height/2)self.addChild(node)}do{letpath=UIBezierPath()path.addArcW

ios - SpriteKit - 获取缩放场景中可见区域的实际大小/帧 .AspectFill

我一直在用SpriteKit制作游戏,但在支持所有屏幕尺寸时遇到了问题。我试图通过将所有场景缩放模式设置为.AspectFill并为宽度为480和高度为800的所有屏幕设置固定大小来解决该问题,如下所示:letscene=GameScene(size:CGSize(width:480,height:800))我去添加一个与游戏场景边缘对齐的边框(一个SKShapeNode),我发现self.frame.width和self.frame.height没有给出设备的尺寸可见区域。经过一些研究,我发现了很多关于使用UIScreen.mainScreen().bounds.height和UIS

ios - 如何使用 spritekit 使背景连续垂直滚动

我设置了背景并且水平滚动,这是我的代码:-(void)initalizingScrollingBackground{for(inti=0;i还有这段代码:-(void)moveBottomScroller{[selfenumerateChildNodesWithName:@"background"usingBlock:^(SKNode*node,BOOL*stop){SKSpriteNode*bg=(SKSpriteNode*)node;CGPointbgVelocity=CGPointMake(-BG_VELOCITY,0);CGPointamtToMove=CGPointMulti

iOS 9 Spritekit 双击在 iPhone 6S 上不起作用

我制作SpriteKit游戏已有一段时间了。它是一种纸牌游戏,允许双击纸牌Sprite以获得特定行为。现在我们在iOS9中,双击在iPhone6s上根本不起作用。在iOS8上运行良好,所有设备。在我的SKScene中,我使用touchesBegan方法来检测点击:-(void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event{UITouch*touch=[touchesanyObject];CGPointtouchLocation=[touchlocationInNode:self];if(touch.tapCount==2){