Tag: 精灵套件

SKSpriteNode(iOS)中的隐形圆笔划颜色

我试图用黑色画笔画颜色,但是没有出现任何线条… 这是如何在iOS模拟器中显示的: 但是,如果我在Xcode操场上运行相同的代码,那么这个圆是完美的 我的场景代码: import SpriteKit class GameScene: SKScene { override func didMoveToView(view: SKView) { /* Setup your scene here */ self.backgroundColor = UIColor.whiteColor() let midcir = self.mainCircle() self.addChild(midcir) } func mainCircle()->SKSpriteNode{ let node = SKSpriteNode() node.anchorPoint=CGPoint(x: 0.5, y: 0.5) let outsideNode = SKShapeNode(circleOfRadius: 127.5) let insideNode = SKShapeNode(circleOfRadius: 1) outsideNode.strokeColor = UIColor.blackColor() outsideNode.fillColor = […]

在SpriteKit中,zPosition如何用于渲染和命中testing?

编辑:苹果公司在iOS8中解决了这个问题,所以这肯定不是预期的,而是一个错误。 看起来zPosition在用于渲染节点时与在用于确定哪个节点被触摸时的解释是不同的。 当我创build父节点和子节点的层次结构(全部使用zPosition集合)时,渲染的最顶层节点由通向节点的所有zPositions的总和决定,因此来自不同父节点的节点可以交错。 但是,当确定接收触摸的最顶层节点时,zPosition仅用于区分同一父节点的同胞,当节点具有不同的父节点时,其父节点z顺序优先。 (一个父母的所有孩子都在一个不同的父母的节点之下或之上) 为了说明,一些带有结果的示例代码: #import "MyScene.h" @interface NodeWithHitTest : SKSpriteNode -(instancetype)initWithColor:(UIColor *)color size:(CGSize)size; -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; @end @implementation NodeWithHitTest -(instancetype)initWithColor:(UIColor *)color size:(CGSize)size { self = [super initWithColor:color size:size]; self.userInteractionEnabled = YES; return self; } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"%@ hit", self.name); } @end @implementation MyScene -(id)initWithSize:(CGSize)size { if (self = [super […]

如何获得米(快速)的场景高度?

所以我有我自己的身高self.frame.height返回736 iPhone 6s的预期。 如何将这个值转换成米,以符合物理世界单位系统?

如何在两个SpriteKit对象之间创build一个分隔符

我有一个圆形和三angular形内外。 我正在看我的angular色,如果它不是在触摸三angular形的圆圈之外的圆圈,反之亦然。 如果我的angular色出现在我的圈子里,那也没有关系。 事实上,如果我在我的圈子和三angular形外面,所以我的angular色不应该触摸他们。 我如何解决这个问题? 有没有人有一个想法? 我的代码: func AddCharacter() { BooCharacter.size = CGSize(width: 30, height: 30) BooCharacter.anchorPoint.y = 0 BooCharacter.zRotation = CGFloat(-M_PI_2) //BooCharacter.position.y += circleRadius BooCharacter.position = CGPoint(x:0.0, y:circleRadius) BooCharacter.physicsBody = SKPhysicsBody(texture:BooCharacterSKT, size: CGSize(width: 30, height: 30)) BooCharacter.physicsBody = SKPhysicsBody(circleOfRadius: 15); BooCharacter.physicsBody?.categoryBitMask = heroCategory BooCharacter.physicsBody?.contactTestBitMask = triangleCategory BooCharacter.physicsBody?.collisionBitMask = triangleCategory; } func AddCircle() { Circle […]

在Swift中使用Sprite工具包更改场景一段时间后?

我想在Swift的一个场景中,在一定的时间之后,从一个场景转换到另一个场景。 我正在尝试创造一种生存型的游戏,玩家必须在这样一个阶段才能生存下去,然后才能进入下一个阶段。 我知道,在我被调用后,我会用这个去下一个场景。 self.view?.presentScene(GameScene2()) 我相信NSTimer将会被使用,但是任何可以给我指出正确方向的东西都会有很大的帮助。 先谢谢你。

如何在通用的精灵套件游戏中调整精灵的大小

我对于快速编程相对比较陌生。 我已经做了一个应用程序,我没有使用SpriteKit,我会通过缩小图像的大小和宽度的多倍来调整大多数视图。 不知道这是否是最好的策略,但它的工作,我能够build立一个在所有设备上看起来不错的应用程序。 使用spritekit和scene.sks文件,我没有自动布局的选项来像我以前那样调整我的精灵。 网上没有关于通用应用程序的很多内容,所以我正在努力寻找解决scheme。 我的问题是如何去确定尺寸对象,并确保我的场景在不同设备上看起来相同? 如果你有一个很好的例子可以解释这将是非常有益的。 谢谢!

如何将SpriteKit AdBanner放置在视图顶部?

如何在SpriteKit应用程序的视图顶部放置一个iAd Banner ? 横幅工作完美,但在错误的位置。 以下是iAd Banner的代码,但总是在下面: ViewController.m – (void)viewDidLoad { [super viewDidLoad]; // Configure the view. SKView * skView = (SKView *)self.originalContentView; skView.showsFPS = YES; skView.showsNodeCount = YES; // Create and configure the scene. SKScene * scene = [MyScene sceneWithSize:skView.bounds.size]; scene.scaleMode = SKSceneScaleModeAspectFill; self.canDisplayBannerAds = YES; // Present the scene. [skView presentScene:scene]; }

在gameOverScene上与admob插播广告

我已经search了互联网的高和低的方向,关于在使用Swift时在SpriteKit场景中添加插页式广告。 谷歌文档仍然使用Obj-C。 到目前为止,我所收集到的是,我需要在viewController中初始化广告,然后从场景中的游戏中调用它。 任何build议将不胜感激。

在场景之间传递整数,iphone游戏精灵套件

我有一个场景,用户在游戏中select关卡,然后我想切换到用户select关卡的游戏场景。 我想用正确的级别创build游戏场景,但是要做到这一点,我需要传递一个整数,这是游戏场景的关卡号,所以我知道要装入哪个级别。 我的问题是,我如何做到这一点? 我已经看过节点的userdata属性,但无法弄清楚如何使用它来完成我想要的。 任何帮助将深表谢意。

当spritekit swift中的节点被触摸时声音不播放

点击一个节点时,我想要一个声音。 目前的代码是: let sndButtonClick = SKAction.playSoundFileNamed("button_click.wav", waitForCompletion: false) 从触动开始 override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { for touches: AnyObject in touches { let location = touches.locationInNode(self) if playButton.containsPoint(location) { playButton.runAction(sndButtonClick) playButton.removeFromParent() let nextScene = GamePlayMode(size: self.scene!.size) nextScene.scaleMode = self.scaleMode self.view?.presentScene(nextScene) } } 我做了两个在gameplaymode节点相同的事情,它的工作原理,但在主菜单不起作用! 我试过了 self.runAction(sndButtonClick) 然后 playbutton.runAction(sndButtonClick) 两个都没有工作