Articles of 迅速

如何在主故事板中分配一个button来启动GameViewController.swift文件

我对swift很陌生,我在main.storyboard文件中构建了一个主菜单,我如何分配“立即播放”button来启动GameViewController.swift文件,在那里我实际上计划编写游戏。

如何随机select一个SKSpriteNode?

我想用4个敌人随机select,并在场景中呈现。 为此我做了这个: func enemyPicker() -> SKSpriteNode { var enemyArray = [mouse, robot, drone, block, bird] var countArray = UInt32(enemyArray.count) var pickOneEneny = arc4random_uniform(countArray) var randomElement = Int(pickOneEnemy) return enemyArray.randomElement } 但Xcode对我说, SKSpriteNode does not have a member named randomElement 。 而且它肯定不会,但是我怎么会对我的函数说,我需要它从数组中select一个实际的敌人并将其分配给它? 我的SpriteNodes是这样声明的。 例: var mouse = SKSpriteNode() let mouseAtlas = SKTextureAtlas(named: "mouse") var mouseArray = […]

苹果是否允许客户通过蓝牙播放?

我是一个初学者在应用程序开发,所以对不起,如果我的问题是便宜:( 我想开始开发一个纸牌游戏,我想知道如果苹果允许客户玩蓝牙或不(在多人游戏) 我问了这个问题,因为我不想一直走,并意识到我的游戏不能通过蓝牙。

在C ++中制作iPhone应用程序的资源?

我想开始为iPhone制作游戏,而我只知道C ++。 我已经拿起了关于Swift开发的书籍,通过我的研究,我发现可以通过C ++(The mechanics)和Swift(For the UI)的组合来创建iPhone游戏。 任何人都可以为我指出正确的方向吗? 任何书籍或网站? 特别是将两个平台的代码整合到一个项目中,这一切似乎都很模糊。 谢谢。

SKSpriteNode和SKShapeNode之间的冲突

我试图创建一个对象之间的碰撞。 一个是SKSpriteNode,另一个是SKShapenode。 我迄今为止的联系方式是: func didBeginContact(contact:SKPhysicsContact){let firstBody:SKPhysicsBody = contact.bodyA let SecondBody:SKPhysicsBody = contact.bodyB if ((firstBody.categoryBitMask == PhysicsCatagory.Orange) && (SecondBody.categoryBitMask == PhysicsCatagory.Red)) || (firstBody.categoryBitMask == PhysicsCatagory.Red) && (SecondBody.categoryBitMask == PhysicsCatagory.Orange) { CollisionWithRed(firstBody.node as! SKSpriteNode, Red: SecondBody.node as! SKShapeNode) } } func CollisionWithRed (Orange: SKSpriteNode, Red:SKShapeNode){ Orange.removeAllChildren() Red.removeAllChildren() } 问题是在碰撞后,橙色和红色不会从屏幕上移除,他们仍然在那里。 橙色代码是: func SpawnOranges(){let Orange = SKSpriteNode(imageNamed:“Orange.png”)Orange.size = CGSize(width:80,height:80)let […]

如何在Swift中使用具有不同属性值的对象?

我认为这是一个非常基本的问题,为了更容易理解我不明白的地方,我使用了下面的场景。 场景:我有两艘或两艘以上的战舰。 他们应该有不同的属性,如名字,生命值和得分。 我想射击他们并获得分数。 我的方法:我扩展了SKSpriteNode来获得我自己的ship class 。 而当我发射子弹碰撞检测会告诉我什么时候命中。 import SpriteKit class ship: SKSpriteNode { var hitpoints: Int = nil? var score: Int = nil? func createPhysicsBody(){ self.physicsBody = SKPhysicsBody(circleOfRadius: self.size.width / 2) self.physicsBody?.dynamic = true … } } func didBeginContact(contact: SKPhysicsContact){ switch(contact.bodyA.categoryBitMask + contact.bodyB.categoryBitMask){ case shipCategory + bulletCategory: contactShipBullet(contact.bodyA, bodyB: contact.bodyB) break; default: break; } […]

OpenGL中的CPU和RAM使用率在Swift中过高

我的游戏设置,所以显示控制游戏循环,通常在cocoa。 callback函数调用run()这就是。 事情是,运行callback的线程使用63%的CPU,并且RAM不断上升,缓慢(内存泄漏?)。 我把它修改了一下,在使用RAM 2.32 GB之前。 有问题的代码是为了在屏幕上绘制一个旋转的表情符号,它是这样做的。 func run(){ update() render() } render()为所有GameObjects调用draw()的地方是: func draw(graphic: Graphic2D) { programID = 0 vaoID = 0 vboID = 0 eboID = 0 vertexShader = 0 fragmentShader = 0 let vertices: [GLfloat] = [ -0.25, -0.25, graphic.colors[0].r, graphic.colors[0].g, graphic.colors[0].b, graphic.colors[0].a, 0.0, 0.0, -0.25, 0.25, graphic.colors[1].r, graphic.colors[1].g, graphic.colors[1].b, graphic.colors[1].a, 0.0, […]

spritekit sidescroller如何通过关卡移动英雄

我正在努力通过开发一个简单的侧滚动游戏来学习spritekit,但是我无法find关于如何在关卡中移动英雄的明确答案。 我的地面的宽度远远超过了视野的宽度,我一直认为最好是移动地面而不是英雄,但是我的敌人(来回移动)往往会随着英雄的移动而更快地移动,错误的地方。 我猜测这是因为在移动行动中,地面正在移动并改变目的地。 移动地面(而不是英雄)是创建横向滚轮而不重复的最佳方式。 如果是这样,我该如何创造像马里奥那样在禁区内移动的敌人? 这是我的代码的一部分: let enemy = SKSpriteNode(imageNamed: "enemyWalk1.png") override func didMoveToView(view: SKView) { enemy.physicsBody = SKPhysicsBody(texture: SKTexture(imageNamed: "enemyWalk1.png"), size: enemy.size) enemy.physicsBody = SKPhysicsBody(rectangleOfSize: enemy.size) enemy.physicsBody!.affectedByGravity = true enemy.physicsBody!.allowsRotation = false enemy.physicsBody!.dynamic = true enemy.position = CGPoint(x:CGRectGetMinX(self.frame) + enemy.size.width + 800, y:CGRectGetMinY(self.frame) + ground!.frame.size.height + enemy.size.height) self.addChild(enemy) var enemyGoTo1 = enemy.position.x + 100 […]

快速枚举MDLAsset无法正常工作

我从我的主包加载一个MDLAsset,并快速迭代资产对象时得到一个编译错误。 Type 'MDLAsset' does not conform to protocol 'SequenceType' 文档说它支持快速枚举: https://developer.apple.com/library/prerelease/ios/documentation/ModelIO/Reference/MDLAsset_Class/ 迭代资产相当简单 for obj in asset { … } 我正在使用XCode7.1.1和Swift2,是有什么坏的,或者是我做错了什么?

如何在游戏场景重新加载时重新注册游戏控制器改变值处理程序

我正在使用siri游戏手柄控制器的tvOS游戏。 一切正常,第一次出。 如果用户失去了一轮,我使用presentScene重新加载相同的场景。 在重新加载场景之后,对self.xxxxx的引用在valuechangehandler闭包中不起作用,因为它引用了第一个场景而不是新引用。 在我didMoveToView有通常的 NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("gameControllerDidConnect:"), name: GCControllerDidConnectNotification, object: nil) 在gameControllerDidConnect函数中我们有: if let controller = notification.object as? GCController { if let mGPad = controller.microGamepad { let gamePad = mGPad gamePad.allowsRotation = true gamePad.reportsAbsoluteDpadValues = true gamePad.buttonA.valueChangedHandler = { (buttonA: GCControllerButtonInput, value:Float, pressed:Bool) -> Void in print("buttonA") // <— this still works self.theBall.alpha = […]