Tag: 精灵套件

如何使雪碧套件显示在正确大小的@图像从阿特拉斯?

当一个项目只有@ 2x的图像,因为它只针对视网膜显示设备,地图集精灵套件地图集得到规模错误的RGBA8888_COMPRESSED设置用于PVR纹理。 RGBA8888_PNG(默认) 有时可以正常工作。 在切换到地图集之前,我把所有@ 2张图像放在一个组中,并加载它们: sprite = [SKSpriteNode spriteNodeWithImageNamed:@"theImage.png"]; 没问题。 正确的大小。 现在使用地图集和RGBA8888_COMPRESSED,我得到了SKTexture,图像太大了。 完全相同的节点和configuration。 只使用阿特拉斯的SKTexture。 为什么会这样呢?

使用Swift在Sprite Kit中构build棋盘游戏?

在使用Swift的Sprite工具包中,我正在尝试构build一个棋盘(实际上是一个象棋棋盘/瓷砖网格)。 所以一般来说,我应该如何去创build一个方形网格板? 我已经做了大量的研究,并通过multidimensional array研究了象棋棋盘的高级概念的一些例子,但是它仍然没有真正解释如何在Sprite Kit中可视化地表示它,更重要的是,如何将视觉表示映射到multidimensional array中的字母+数字表示… 有什么想法吗? 如果有人能够回答上述问题中的至less一点/部分,将不胜感激! 非常感谢您的高级!

在SpriteKit中预加载纹理

我已经做了一些研究,我似乎无法find任何明确解释如何在animation中预加载单个纹理和纹理的任何内容。 我目前在Assets.xcassets使用Atlas来分组相关的animation图像。 在Atlas里有我的图像是否意味着它们被预装了? 就像单张图片一样,在GameScene之前声明纹理是否合理是这样的: let laserImage = SKTexture(imageNamed: "Sprites/laser.jpg")然后(例如)在我的SKSpriteNode子类中,我可以通过laserImage通过? 我最终想知道是否有一个明确的方式去做这个,或者如果我应该在GameScene之前将每个纹理存储为一个常量。 任何有关正确(而且最有效)的方式的build议都是很好的。

如何将文字打印到游戏画面上

我有这个if语句,所有的代码完美的工作,暂停function和所有,但…游戏已经暂停后,我想要在屏幕上打印一些文本给用户,但它只打印在控制台,可以请让我知道如何在游戏设备屏幕上打印文字,谢谢! if score[0] == 10 { pauseGame() print("HEY") sleep(5) let skView = self.view! skView.presentScene(scene) } else if score [1] == 10 { pauseGame() print("HEY") sleep(5) let skView = self.view! skView.presentScene(scene) }

对精灵进行滚动视图locking并放大

参考我以前的问题: Swift 2.0,SpriteKit – 滚动查看不使用页面。 我想获得滚动视图(这是UIScrollView的子类),我必须locking在屏幕中间的精灵,而不是只是能够停止在精灵之间的差距滚动。 我也试图让它在屏幕中央稍微放大(如十字路口字符select菜单) 这是我的scrollview: scrollView = CustomScrollView(frame: CGRect(x: 0, y: 0, width: self.frame.size.width, height: self.frame.size.height), scene: self, moveableNode: moveableNode, scrollDirection: .Horizontal) scrollView.contentSize = CGSizeMake(self.frame.size.width * 3, self.frame.size.height) // * 3 makes it three times as wide as screen view!.addSubview(scrollView) /// Set scrollView to first page scrollView.setContentOffset(CGPoint(x: 0 + self.frame.size.width * 2, […]

使用SpriteKit相机节点防止位置偏移

我注意到了centerOnNode:方法如图所示, – (void)centerOnNode:(SKNode *)node { cameraOffset = [node.scene convertPoint:node.position fromNode:node.parent]; node.parent.position = CGPointMake(node.parent.position.x – cameraOffset.x, node.parent.position.y – cameraOffset.y); } 极大地影响了子节点的相对定位。 只要此方法运行,子节点确实似乎受到影响。 下图显示了NO移动的逻辑,然后左移和稍移: 我画了一个浅蓝色的框来估计看起来path正在引用的物理体而不是更新的帧。 您所看到的线条和圆圈代表我用于寻路的两种方法。 带点的线只是我正在做的射线testing,看看绿线上的光线是否与方形物理体相交。 您在顶部看到的单点是使用GameplayKit来构build避开黑色方块作为障碍的path。 我正在努力想办法避免摄像机的重新定位,从而影响到现场儿童的定位。 仅供参考 :我已经通过移动字符而不是相机testing了寻路,它完美地工作(如下所示) 显然,相机偏移是问题。 如果有人能告诉我该怎么做,以保持相机的移动和寻路的精度,我将不胜感激。

Swift 2.0,SpriteKit – 滚动查看不使用页面。

好的,我有一个scrollView已经被子类化,可以应用到任何场景,这是从我在这里问: SpriteKit,Swift 2.0 – ScrollView相反 import Foundation import SpriteKit /// Nodes touched var nodesTouched: [AnyObject] = [] // global /// Scroll direction enum ScrollDirection: Int { case None = 0 case Vertical case Horizontal } class CustomScrollView: UIScrollView { // MARK: – Static Properties /// Touches allowed static var disabledTouches = false /// Scroll view […]

与session.dataTaskWithRequest UIAlertView问题

我有这个代码来validationIAP收据,我试图显示一个基于这个函数返回的状态的警报,但我不断收到这个错误 "This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes. This will cause an exception in a future release. ……. ( then a whole list of numbers and stuff)" 这是我使用的代码,(很简单)。 我猜它与线程和asynchronous的东西有关,我不太确定。 我如何以正确的方式做到这一点? func verifyPaymentReceipt(transaction: SKPaymentTransaction, completion : (status : Bool) -> ()) { …. […]

SpriteKit侧滚动不更新physicsWorld

按照这里的例子(目标C除外)和标准的苹果文档,我发现当myWorld更新它的位置时, physicsWorld不会更新它的位置。 我打开我的skView showsPhysics来validation这一点。 看这些截图。 任何议案之前: 一点点动议之后 走得更远一点 就在联系之前 这是我的myWorld中心代码。 大部分的长度是由于我在处理边缘限制时非常冗长。 – (void)centerOnNode:(SKNode *)monkeyNode { CGPoint monkeyPosition = monkeyNode.position; // Check if monkey died if (monkeyPosition.y < myWorld.frame.origin.y – sceneHeight/2) { [self monkeyDied]; } // Check if monkey won if (monkeyPosition.x > skyFarRightSide.x) { [self monkeyWon:monkeyNode]; } // Define limits CGFloat scrollTopLimit = skyFarTopSide.y – […]

SpriteKit,Swift 2.0 – ScrollView相反

我设法得到一个滚动视图工作和滚动,但现在当我去滚动它只滚动从右到左,并想知道如何去扭转它,所以它从左到右滚动。 这是我的菜单代码,其中包含我的滚动视图: var moveableNode = SKNode() var scrollView: CustomScrollView! private var spriteSize = CGSize.zero let kMargin: CGFloat = 40 var sprite = SKSpriteNode() class Menu: SKScene { override func didMoveToView(view: SKView) { addChild(moveableNode) spriteSize = SKSpriteNode (imageNamed: "card_level01").size let initialMargin = size.width/2 let marginPerImage = kMargin + spriteSize.width scrollView = CustomScrollView(frame: CGRect(x: 0, y: 0, […]