Tag: 精灵套件

将UITextView添加到SpriteKit中的场景中

我试图创build一个游戏,并遵循苹果的build议,我正在使用多个场景。 你可以认为游戏是一个文本的重点和点击冒险。 这就是问题所在。 大量的文本,做了一些search,似乎是推荐的方式,或者更确切地说,目前唯一的方法是使用UITextView : [self.view addSubview: textView]; 如果您只有一个SKScene ,那么这是非常好的,因为这是当前视图/ SKView所显示的场景。 我的问题是,当我添加文本到我场景的*视图,这不是应用程序加载的第一个场景(它的第三个或更高),应用程序跳回到它加载的第一个场景(这是我的菜单场景),并愉快地显示所需的文字。 有人知道为什么吗? 我有菜单场景过渡到场景一,到场景二(我希望显示testing)。 如果我想要在每个场景中显示一些以上的单词,请不要说每个场景都需要一个视图,这只是没有意义,但是也许不会使用SpriteKit。 我还是有些什么惊呆了,没有UITextView SK等价物。 无论如何,任何帮助,指针会很好,谢谢。 好的,这里是代码的相关部分….我想。 控制器: – (void)viewWillLayoutSubviews { [super viewWillLayoutSubviews]; // Configure the view. SKView *skView = (SKView *)self.view; skView.showsFPS = YES; skView.showsNodeCount = YES; skView.showsDrawCount = YES; // Create and configure the scene. SKScene *scene = [[GTMainMenu alloc] initWithSize:skView.bounds.size]; […]

SpriteKit联合:跟随身体

我被要求简化这个问题,所以这就是我正在做的事情。 我在SpriteKit的物理关节中挣扎(可能还有物理属性)。 我试过每一个子类和许多configuration,但接缝没有任何作品,或者我做错了什么。 我正在开发蛇游戏。 用户可以控制蛇头以恒定的速度向前移动,用户可以顺时针或逆时针旋转。 所有剩余的蛇的碎片应该跟着头 – 他们应该旅行完全相同的path,头一段时间前。 我认为对于这个游戏来说,拼接点应该是答案,哪个锚点恰好在元素之间的中心。 不幸的是结果并不完美。 结构应该是完美的圆形,但不是。 我附上代码,显示当前效果的gif。 有没有人有足够的经验给我任何build议什么属性的身体和/或关节应该在这里适用于预期的效果? 我的代码: class GameScene: SKScene { private var elements = [SKNode]() override func didMove(to view: SKView) { physicsWorld.gravity = CGVector(dx: 0, dy: 0) let dummyTurnNode = SKNode() dummyTurnNode.position = CGPoint(x: size.width / 2 – 50, y: size.height / 2) let dummyTurnBody = SKPhysicsBody(circleOfRadius: […]

SpriteKit SKTextureAtlas,由于加载纹理时的内存压力而终止

类似于WWDC的SpriteKit精选游戏“冒险”,我尝试通过拼贴加载我的背景图片。 我创build了一个包含6,300“瓦片”的纹理图集,每个瓦片的尺寸都是100×100像素。 完整的背景图像总共为30,000×2048(用于视网膜显示器)。 这个想法是,背景将从右侧移动到左侧(侧滚动)。 第一列和最后一列匹配,以便它们看起来连续。 当应用程序运行时,它将我的初始加载屏幕和标题图像加载到我的内存选项卡中的54MB ,CPU使用率为16% 。 这一直保持不变,我浏览菜单,直到我select我的关卡,它告诉后台线程加载关卡资产(其中包含前述的背景图片)。 整个.atlas文件夹显示只有35.4MB 。 我不相信这是一个问题,因为Adventure .atlas文件夹(来自WWDC)显示只有32.7MB 。 一旦我select了关卡,在我开始接收内存警告之前,它会在.atlas文件夹中加载大约20个纹理,并使应用程序崩溃。 我检查了仪器泄漏,并没有显示任何内存泄漏。 我没有收到任何编译器错误(甚至没有EXC_BAD_ACCESS之一)。 我查看过我的设备控制台,发现应用程序崩溃的地方有几行,但对我来说并不合适。 我也检查了僵尸,但似乎没有find任何。 CoreLevel.m dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ // Used to determine time spent to load NSDate *startDate = [NSDate date]; // Atlas to load SKTextureAtlas *tileAtlas = [SKTextureAtlas atlasNamed:@"Day"]; // Make sure the array is empty, before storing the […]

SKAction:如何生成节点生成随机延迟

我使用下面的一段代码来定期生成SKNode。 有没有办法使这些SKNodes的生成周期是随机的。 具体来说,我如何使下面的代码中的“delayFish”具有随机延迟的行为? [self removeActionForKey:@"fishSpawn"]; SKAction* spawnFish = [SKAction performSelector:@selector(spawnLittleFishes) onTarget:self]; SKAction* delayFish = [SKAction waitForDuration:3.0/_moving.speed]; SKAction* spawnThenDelayFish = [SKAction sequence:@[spawnFish, delayFish]]; SKAction* spawnThenDelayFishForever = [SKAction repeatActionForever:spawnThenDelayFish]; [self runAction:spawnThenDelayFishForever withKey:@"fishSpawn"];

适用于iOS的自定义粒子系统

我想在iOS使用sprite工具包创build一个粒子系统,在这里我定义了每个粒子的颜色。 据我所知,现有的SKEmitterNode是不可能的。 看来我能做的最好的是指定一般行为。 有什么办法可以指定每个粒子的起始颜色和位置吗?

spritekit didBeginContact三个对象没有工作

我打算由三个节点[didBeginContact]。 我是在代码下写的。 但是不能正常工作。 当白色的矩形没有击中黑色或白色矩形,println(“黑色”)和println(“蓝色”)工作… whien白色矩形打黑色矩形,println(“蓝色”)工作… import SpriteKit class GameScene: SKScene, SKPhysicsContactDelegate { let blackCategory: UInt32 = 0x1 << 0 let whiteCategory: UInt32 = 0x1 << 1 let blueCategory: UInt32 = 0x1 << 2 override func didMoveToView(view: SKView) { self.physicsWorld.contactDelegate = self self.size = view.bounds.size self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame) self.physicsWorld.gravity = CGVectorMake(0.0, -3.0) let blackSquare = […]

我如何添加UIView ** spriteKit **?

我正在开发一个使用SpriteKit框架的游戏项目,现在我的要求是我想添加UIView 控制在我的spriteKit项目,但无法做到这一点。 UIView *myview=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 280, 480)]; [myview setBackgroundColor:[UIColor redColor]]; [self.scene.view addSubview:myview]; 目前我正在向这样的SKScene添加UIView,但它不工作。 谢谢

如何在中途在SKAction中反转path的方向?

我有一个SKSpriteNode沿着使用SKAction的圆形path移动: // create the path our sprite will travel along let circlePath = CGPathCreateWithEllipseInRect(CGRect(origin: pathCenterPoint, size: CGSize(width: circleDiameter, height: circleDiameter)), nil) // create a followPath action for our sprite let followCirclePath = SKAction.followPath(circlePath, asOffset: false, orientToPath: false, duration: 2 我可以添加.ReversedAction()来反转精灵的方向,但是这只会从起点开始。 当它在path上的某个点时,我如何反转精灵的方向?

检测button的三angular形网格中的触摸?

在下面的照片中,每个三angular形都是一个单独的子类SKShapeNode。 你如何识别哪个三angular形被触动? 目前在现场的toucheBegan:方法中,触摸网格会检测两个三angular形,因为它们的框架是方形的。

为什么CGPath和UIBezierPath在SpriteKit中定义“顺时针”?

在SpriteKit中, clockwise方向对于UIBezierPath是颠倒的,而对于CGPath不是。 例如,如果我有 do { let path = CGPathCreateMutable() CGPathAddArc(path, nil, 0, 0, 10, 0, CGFloat(M_PI_2), true) let node = SKShapeNode(path: path) node.position = CGPoint(x: self.size.width/2, y: self.size.height/2) self.addChild(node) } do { let path = UIBezierPath() path.addArcWithCenter(CGPoint(x: 0, y: 0), radius: 10, startAngle: 0, endAngle: CGFloat(M_PI_2), clockwise: true) let node = SKShapeNode(path: path.CGPath) node.position = […]