Tag: 精灵套件

在Spritekit游戏中限制GUI元素的比例

因为邮件太多,我提前道歉,但是每个试图制作某种通用应用程序的人都知道这是非常有问题的东西,所以请对我轻松一点。 目标 我试图实现的(如上图所示)是在iPhone 5和iPhone 6上使用@ 2x资源,并保持应用程序的外观。 如果可能的话,要做到这一点,而不是手动计算基于检测到的设备的节点的比例和位置属性…所以总之,如何实现该应用程序自动约束元素(和场景)的比例? 另外,我希望在iPhone 6+上使用@ 3x资源来看应用程序,但由于简单,我只集中在iPhone 5和6上。 我在网上发现的是有些人说这个(下采样)是由iOS自动完成的,例如他们提出这样的build议: “为iPhone 6制作@ 2x资产的尺寸,然后iOS会自动为iPhone 5降尺度”。 但是在Spritekit场景中显然不是这样,或者我错过了一些东西。 问题 即使iPhone 6和iPhone 5具有相同的宽高比和相同的PPI,但使用相同的素材与场景大小(与第一张和第二张图片相比,与场景大小相比,看起来菜单精灵)看起来不会相同,因为PPI与像素密度和iPhone 6有更多的空间(更大的对angular线,更多的英寸),这意味着它有更多的像素比iPhone 5。这是我的问题来自哪里,我不知道是一个有效的方式来处理它。 我到目前为止所做的 第二个图像对于GUI来说不是问题,但对于游戏来说,就我而言,这是因为我希望在不同的设备上具有相同的外观和感觉。 只要看第一和第三的形象。 感谢Skyler Lauren的build议,我已经设法在所有的iPhone 5设备上,在7.1或8.1系统以及iPhone 6上都有相同的应用程序外观。所以现在,问题是如何使这个代码适应iPhone 6 +使用@ 3x纹理,以及iPhone 4s。 这是iPhone 5和iPhone 6的解决scheme: 查看controller.m GameScene *scene = [GameScene sceneWithSize:CGSizeMake(375,677)];//fixed instead of view.bounds.size scene.scaleMode = SKSceneScaleModeAspectFill; 所以在iPhone 6的尺寸上,场景总是有固定的大小,而且视图大小是根据设备而变化的。 我正在使用资产目录启动图像,而不是xib文件。 图片大小build议大小为640x960px 4s,640x1136px 5,750x1334px […]

Xcode错误:调用-display没有效果

每当我加载我的SpriteKit应用程序,它会logging此错误: <CAMetalLayer: 0x15f57fa70>: calling -display has no effect. ,并没有正确显示许多对象。 我已经尝试重新创build场景并删除我的代码,两者都没有做任何事情。 有一段时间,我认为这可能是一个新的Xcode 7和iOS 9testing版的错误,但现在,我已经尝试了两者的GM版本,问题依然存在,可能并非如此。

Swift iOS操作系统:发送延期道具时出错

以这样简单的方式设置iOS游乐场: import UIKit import SpriteKit import XCPlayground let s = CGSize(width: 300, height: 300) let f = CGRect(origin: CGPointZero, size: s) let view = SKView(frame: f) let scene = SKScene(size: s) scene.backgroundColor = SKColor.redColor() view.presentScene(scene) XCPShowView("main view", view) 我在控制台中得到这个: 2014-09-04 17:02:13.358 SpriteKitBETA7[2009:20695] Error sending deferral props: 0x10000003 在助手编辑器中有一个“主视图”框,但它不显示任何内容。 这个完全相同的代码( import Cocoa而不是import UIKit )在OSX import UIKit完美工作。 […]

在SpriteKit中移动摄像头

/ /更新已更新的代码已被添加,按我的预期工作。 请参阅下面更新的代码中的didSimulatePhysics方法。 在我的情况下,我只关心在x轴上向左或向右移动字符,其中x轴上的0是绝对的左侧和右侧上的x轴是一个可configuration的值。 苹果冒险游戏真的帮了很多。 / /原来的职位以下 我正在与苹果SpriteKit工作,我正在努力实现一个相机,因为我希望它的行为。 我在代码中所做的是在开始时加载一个精灵字符,两个button和一个在视图外右侧的红色框。 我想要做的就是用button移动angular色,一旦玩家到达屏幕的中间或末端,摄像机就会重新调整,以揭示视图中看不到的东西。 因此,一旦玩家到达那里,最终应该显示最初在视野外的红框。 但是,在下面使用的代码中,我无法让摄像机跟随并根据主angular调整坐标。 我已经看过苹果的高级场景处理文档以及其他一些堆栈溢出post,但似乎无法做到。 如果任何人可以提供一些build议,将不胜感激。 #define cameraEdge 150 -(id)initWithSize:(CGSize)size { if (self = [super initWithSize:size]) { /* Setup your scene here */ //320 568 self.backgroundColor = [SKColor whiteColor]; myWorld = [[SKNode alloc] init]; [self addChild:myWorld]; mainCharacter = [SKSpriteNode spriteNodeWithImageNamed:@"0"]; mainCharacter.physicsBody.dynamic = YES; mainCharacter.name = @"player"; mainCharacter.position […]

什么是UnsafeMutablePointer <Void>? 如何修改底层的内存?

我正在尝试与SpriteKit的SKMutableTexture类,但我不知道如何使用UnsafeMutablePointer< Void > 。 我有一个模糊的想法,它是一个指向内存中的字节数据连续的指针。 但是我怎样才能更新呢? 这实际上是什么样的代码? 编辑 这是一个基本的代码示例。 我怎样才能做到这一点,就像在屏幕上创build一个红色方块一样简单? let tex = SKMutableTexture(size: CGSize(width: 10, height: 10)) tex.modifyPixelDataWithBlock { (ptr:UnsafeMutablePointer<Void>, n:UInt) -> Void in /* ??? */ }

我怎样才能使一个函数执行每秒迅速?

我想在我正在处理的游戏中将场景添加到场景的顶部。 得分是根据你持续的时间而定的,并且会每秒增加。 我在这里先向您的帮助表示感谢! import SpriteKit class easyScene: SKScene { let scrollBarEasyBottom = SKSpriteNode(imageNamed: "scrollBarEasyBottom") let scrollBarEasyTop = SKSpriteNode(imageNamed: "scrollBarEasyTop") let ball = SKSpriteNode(imageNamed: "ball") var origSBEBpositionX = CGFloat(0) var origSBETpositionX = CGFloat(0) var maxSBEBX = CGFloat(0) var SBEBSpeed = 5 var maxSBETX = CGFloat(0) var SBETSpeed = 5 var score = 0 var timer: NSTimer? […]

可以与SpriteKit的labelNodeWithFontNamed方法一起使用的字体列表

我怎样才能得到可以用于SpriteKit的labelNodeWithFontNamed方法的字体名称列表? 有一个SKLabelNode的方法,我可以指定字体名称,但我想知道哪些字体是支持的,他们的名字是什么。 例: [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];

如何在sprite工具包中创build进度条?

我想在Sprite Kit中创build我自己的进度条。 我想我会需要图像 – 一个完全空的进度条和填充进度条。 我有这些图像,我把一个放在空的顶部,他们是正规的SKSPriteNodes现在我无法弄清楚如何我需要削减我的填充图像? 我如何在某一点切割SKSpriteNode图像? 也许纹理?

在spritekit中模拟水/使精灵“漂浮”在水上

我正在尝试为我的游戏添加水。 除了不同的背景颜色,没有太多的东西。 但是,我希望player-sprite能够浮在顶部(或者半路)。 如果玩家从下面走进水里,我想让他漂浮在上面。 如果他跌倒了,我想让他慢慢改变方向,然后向上浮起来。 当他在水中时,我试图使重力消极,但是这给我一些有害的影响。 例如,当他(玩家)表面时,正常的重力会把他推倒,水会把他推开,等等。 最终,玩家将在水中“跳跃”,从一端推向另一端。 当他表面时,我希望他冷静地留在水面上。 我怎样才能做到这一点? 这是我在update-loop的代码: SKNode *backgroundNodeAtPoint = [_bgLayer nodeAtPoint:_ball.position]; if ([backgroundNodeAtPoint.name isEqualToString:@"WATER"]) { self.physicsWorld.gravity = CGVectorMake(self.physicsWorld.gravity.dx, 2); } else { if (self.physicsWorld.gravity.dy != -4) { self.physicsWorld.gravity = CGVectorMake(self.physicsWorld.gravity.dx, -4); } } 基本上,当玩家在水中时,这会将我的重力改变为2 ,否则将其改变为-4除非它已经是-4 。 谢谢!

如何将不同的缓动效果应用于精灵动作?

我在这里描述的Cocos2D中使用了很多CCEase*function。 iOS 7 Sprite Kit也有SKActionTimingMode 。 但只有简单的模式。 我如何获得CCEaseElasticIn或CCEaseBounceIn使用Sprite Kit的效果?