Articles of spritekit

我应该如何构建我的代码来添加敌人?

所以我目前正在制作一个1942年的Sprite Kit游戏。 我已经达到了完成几乎所有事情的地步(移动,射击(也承认击中和爆炸物体),菜单等等)..期待敌人。 由于我在编程方面没有那么丰富的经验,所以我不太清楚应该如何执行我的敌人。 我想在我的游戏中有不同的敌人“class级”(他们有不同的外观/武器等),我也希望游戏能够随着时间的推移在游戏中产生更强大的class级。 (例如:在比赛开始时,有一个绿色的敌人,一次性武器,3分钟,他们应该是红色,火两枪) 我应该如何编码我的敌人? 我应该做不同的类(我现在正在考虑的),还是应该用string声明它们,或者使用.plist文件来做属性? (在一个侧面的节点上:我如何从场景代码中访问我的plist属性?) 你有关于敌人/类/ plist文件的其他技巧吗? 或者..有没有其他方式专门在Sprite Kit做这种东西?

游戏中心排行榜没有解雇

我在我的应用程序中实现了Game Center,除了排行榜完成button之外,一切都进行得很顺利,即使添加了gameCenterControllerDidFinish也不排除排行榜。我通过触摸.m文件中的button来调用排行榜,如下所示: – (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint location = [touch locationInNode:self]; SKNode *node = [self nodeAtPoint:location]; if ([node.name isEqualToString:@"rankButton"]) { [self runAction:[SKAction playSoundFileNamed:@"fishtran.m4a" waitForCompletion: NO]]; GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init]; if (gameCenterController != nil) { gameCenterController.viewState = GKGameCenterViewControllerStateAchievements; UIViewController *vc = self.view.window.rootViewController; [vc presentViewController: gameCenterController animated: YES […]

CGVector让SKNode以一定的速度向屏幕中间移动?

我试图每次启动时都以相同的速度向屏幕中间发射我的精灵。 let vel: CGFloat = 1000 dx = size.width / 2 – ball.position.x dy = vel – size.height / 2 – ball.position.y ball.physicsBody?.velocity = CGVectorMake(dx, dy) 这样做的作用在于,球向屏幕的中心发射,但是以不同的速度发射,取决于球的起点。

你如何设置多个碰撞规则与Swift和SpriteKit?

所以基本上我有2种types的球和2种types的敌人。 绿色只能删除红色,红色只能删除。 这是我第一次碰撞testing的结果: func didBeginContact(contact: SKPhysicsContact) { // 1. Create local variables for two physics bodies var firstBody: SKPhysicsBody var secondBody: SKPhysicsBody // 2. Assign the two physics bodies so that the one with the lower category // is always stored in firstBody if contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask { firstBody = contact.bodyA secondBody = contact.bodyB } […]

自定义健康栏/加载栏

我正在尝试创建一个自定义加载栏/健康栏。 有没有什么办法来创建这样的东西? 你能为我指出正确的方向吗? 我将使用哪些function等 另外,我可以在SingleViewApplication中执行此操作,还是建议在SpriteKit上完成此操作。

不知道如何处理XML文件和Spritesheet(Swift 3)

一般来说,我是新来的spritesheets和游戏开发。 我有两个文件:1)一个包含大量精灵的.png spritesheet,以及2)带有坐标,定位点,图像名称和animation信息的伴随XML文件。 spritesheet似乎没有顺序,我不能理解XML文件的组织(它似乎不包含看起来不同大小的精灵图像的尺寸) 我的问题是:我如何使用这些来制作精灵animation? 看来这项工作已经完成了,但我不知道如何使用它。 特别是,我想用Swift 3 SpriteKit。 我会满意的导出所有的精灵到适当的名字单独的图像。 那可能吗? 感谢您的帮助!!

纹理不加载在一个iOS设备上

我使用testflighttesting我朋友的设备上的应用程序。 在所有设备如:iPhone 6s,iPad 2的游戏工作正常,但iPhone 7不加载纹理(下面的图片)有什么不对?

有效地创建和管理一个非常大的tileMap

我正在做一个二维JRPG建立在一个鸟瞰tileMap上,我不能完全包围我的脑子,我将如何有效地做到这一点 我想使用50X50块,在玩家所在的邻近4个邻近点中的玩家周围呈现。当玩家从块移动到块时,与其相邻的所有块都被渲染,并且只有这些块其余的以前渲染的块被删除 我也需要一种方法来有效地处理由用户修改的块 如果你的答案可以提供必要的材料,所以我可以做这两件事的研究,我将不胜感激 方法,将允许有效的块加载和存储 一种方法来保持由玩家修改的块“保存”以备后用 如果你能列出所有必要的事情,我需要做到这一点,我真的很感激

打破地图,让国家可以分开在Spritekit中着色

我目前正在试图建立一个小型的战略游戏,玩家可以控制一个世界上的国家。 每个玩家的国家都有不同的颜色背景,但每个国家都是不同的不规则形状,我想知道如何最好地建立这个。 为了清楚我知道如何改变精灵或纹理的颜色,但我想知道是否有更好的方法来建立地图,然后我概述如下 我最初的想法是,我导出每个国家的精灵,然后使用着色等来改变背景颜色,如果需要的话。 要做到这一点,我显然需要手工拼凑每一个场景,确保我们的国家正确对抗,形成整个世界。 这意味着我不能真正创造任何“dynamic”的世界。 即每个地图必须手工策划。 有一个更好的方法来处理这个没有统一形状的国家吗? 考虑到这是一个2D游戏,并没有真正的物理,我可以使用一个物理机构或类似的东西来获得一个国家的实际形状,也许确保每个精灵都有一个白色/透明背景,然后改变特定颜色? 留下边框黑色或我select的任何颜色。 我的备选scheme是在每个国家都有一个建筑物,这个建筑物有一个代表派系颜色的标志,因为这样做会容易得多。

swiftkit spritekit如何旋转一个节点,使其始终处于垂直或水平位置

我正在写一个简单的tvOS游戏,使用swift 4和sprite工具包。 我想要一些关于如何旋转一个节点的帮助,既可以垂直站立,节点的顶部始终位于顶部,也可以水平放置,顶部始终位于最右边。 有人可以告诉我如何做到这一点? 现在节点似乎只是随机旋转。 // // GameScene.swift // //由1/20/18上的gregoryew1创建。 //版权所有©2018 gregsiosapps。 版权所有。 // 导入SpriteKit导入GameplayKit 类GameScene:SKScene { let player = SKSpriteNode(imageNamed: "player-rocket.png") override func didMove(to view: SKView) { // this method is called when your game scene is ready to run let background = SKSpriteNode(imageNamed: "space.jpg") background.zPosition = -1 addChild(background) if let particles = SKEmitterNode(fileNamed: […]