Tag: 精灵套件

iOS SpriteKitanimation不会出现

我使用TextureAtlas中的纹理加载animation。 但是animation不会出现在屏幕上。 我只有当我NSLog的纹理! 看起来像一个错误。 有人有类似的经验吗? SKTextureAtlas *atlas = [SKTextureAtlas atlasWithRetinaCorrection:spriteSheetName_]; if ([atlas.textureNames count] == 0) return; NSArray *r = [self getSprites:WEAPON_FIREANIMATION ofDict:atlas.textureNames]; if ([r count] == 0)return; SKSpriteNode *firstSprite = (SKSpriteNode*)[self childNodeWithName:tFIRSTSPRITE]; [firstSprite removeActionForKey:aFIRE_ANIM]; NSMutableArray *walkAnimFrames = [NSMutableArray array]; int k =0; if (self.weaponAnimDuration == 0) { k = (self.weaponShootInterval / 0.1f)/[r count]; } else […]

我怎么能指出一个从SKScene使用UIKit创build的视图?

我有一个名为“MainScene.swift”的SKScene文件,并在其上创build了一个button,供用户跳转到另一个页面。 另一个页面不是由SpriteKit创build的,而是由UIKit创build的。 在这种情况下,我如何指定目标页面并编写代码? 如果我使用SpriteKit创build了两个页面,我通常会跳到其他场景。 override func viewDidLoad() { super.viewDidLoad() let scene = MainScene(size: CGSize(width: 750, height: 1334)) let skView = self.view as! SKView scene.scaleMode = .AspectFit skView.presentScene(scene) } 当我在UIKit创build的场景上做同样的事情时,在Identity列上键入一个Storyboard ID,然后像这样编码; 我只知道使用故事板的方式。 class ViewController: UIViewController { @IBAction func gotoNewPage(sender: AnyObject) { let nextVC = self.storyboard?.instantiateViewControllerWithIdentifier("newPage") presentViewController(nextVC!, animated: false, completion: nil) } } 但是当在创buildSKScene和UIKit的场景之间尝试同样的东西时,我不知道如何从前一个场景指定后者; 我不坚持使用故事板。 如果有任何简单的方法,请让我知道。 先谢谢你。

迅速多层次的场景

我正在努力在一个新的游戏项目,我将包括多个级别。 我正在阅读这个问题( Sprite Kit – 定义多个场景的variables ),以尽可能使用尽可能less的重复代码来完成多个场景的最佳方式。 答案当然是子类。 所以说我创build了我的“baseScene”这是SKScene的子类。 在这里,如所build议的,我应该把所有相关的代码(玩家,对象,碰撞位掩码,触摸开始function等),将在所有的子类级别场景共享。 我在baseScene中使用了通常的moveToView函数来添加内容,并且它适用于baseScene的所有子类的多个场景(level1Scene,level2Scene等)。 同样是开始function等,所以没有问题。 然而,我现在的问题是,在我的“level1Scene”中,我不能在我的生活中找出如何在baseScene中添加一些东西,例如一级敌人,障碍物或背景。 我不能使用didMoveToView,因为它是一个覆盖函数,将删除我在baseScene超类中添加的所有东西。 如果这是一个基本的,也许是愚蠢的问题,我将不胜感激,但是我对swift,特别是场景子类化是相当新的。

Sprite Kit保存最高分

我使用Sprite Kit(使用Swift xCode 6 beta 4)构build游戏,我需要保持玩家达到的最高分数(所以只有一个Int)。 我知道有一种方法可以使用NSCoding,我使用了它,只发现了Objective-C教程/指南,我不能使用,因为我根本不知道objective-c,也许有更好的方法来在xCode的后期版本中。 任何帮助将不胜感激!

SpriteKit通过applyImpulse移动旋转physicsBody

我想用applyImpulse方法在基于physicsBody旋转的方向上移动一个physicsBody。 例如,physicalBody是一个正方形的形状,我称之为“移动”,它会施加一个冲动,使它垂直向上移动。 然后我调用一个方法将物理旋转45度的权利。 如果我再次调用“移动”方法,physicalBody将向右和向上对angular移动。 任何人都可以帮忙吗?

SKAction playSoundFileNamed停止背景音乐

我希望我的SpriteKit游戏不会中断用户监听的背景音乐(Music.app或Radio应用程序)。 一切都很好,直到执行到这一行: sSharedShootSoundAction = [SKAction playSoundFileNamed:@"plane_shoot.aiff" waitForCompletion:NO]; 在此行后台音乐停止。 如何避免这一点?

如何在精灵套件游戏中改变重心?

我一直在努力寻找,但没有成功。 有没有办法以这种方式改变物理世界的重力属性,物体不会被吸引到屏幕的底部,而是到它的中心呢?

截图在iPhone上的iPhone只有一个白色的背景

一些背景:我只是试图做一个简单的程序使用Xcode 6testing版7迅速截图的iPhone后,我按下button。 这是在SpiteKit和游戏场景中完成的。 背景是一个随机的PNG图像和“你好世界”默认示例文本。 我以编程方式在gamescene didMoveToView函数中使用以下代码放置一个按下button(默认飞船图像是button): button.setScale(0.2) screen.frame = CGRect(origin: CGPointMake(self.size.width/4, self.size.height/1.5), size: button.size) screen.setImage(playAgainButton, forState: UIControlState.Normal) screen.addTarget(self, action: "action:", forControlEvents: UIControlEvents.TouchUpInside) self.view!.addSubview(screen) 这将我的按下button,在它链接到一个function的屏幕上,使用下面的代码截图: func action(sender:UIButton!){ UIGraphicsBeginImageContext(self.view!.bounds.size) self.view!.layer.renderInContext(UIGraphicsGetCurrentContext()) let screenshot = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil) } 所以这个代码是截图的,但是当我查看照片的时候,只能显示按下button,其余的图像是白色的。 图像如下所示: 下面,我认为屏幕截图应该看起来像这样,因为这是模拟器中的屏幕(我只是用一些随机的图像/文本作为背景): 有人可以向我解释为什么截图程序不是也拍摄背景图片,以及如何解决? 我在网上查找,我还没有看到任何问题是解决我的问题。 在线我看到了一些类似的问题,并尝试了他们的修复:我import了quartzCore,coreGraphics和coreImages,但没有修复。 另外,我尝试使用ViewController,并设置一个UIbutton与一个IBaction屏幕截图,但仍然得到相同的白色背景图像。 我已经尝试了不同的背景图像,结果相同。 我是相当新的编程,所以,任何帮助将不胜感激! 先谢谢你!

如何为SpriteKit创build图集

如何为SpriteKit创build图集? 我试图把我的所有图像转移到一些文件夹,并给它扩展名。 在结果文件夹将被称为“somefolder.atlas”。 这是正确的方式来使用它?

在Swift SpriteKit场景中显示Admob插页式广告

我想知道如何在展示我的GameOverScene时设置Admob插页式广告。 我应该怎么做才能在游戏结束时才显示广告? 而我如何在Swift中实现呢? 我指的是这篇文章如何使用swift,spritekit和xcode调用admob插页式广告? 但我想知道如何在场景之间调用广告。 编辑这里是我用来展示广告的代码 class GameViewController: UIViewController, GADInterstitialDelegate { var interstitial = GADInterstitial() var intersitialRecievedAd = false let defaults = NSUserDefaults.standardUserDefaults() override func viewDidLoad() { super.viewDidLoad() interstitial.delegate = self self.interstitial = createAndLoadAd() let timer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: "checkIfAdIsToBeDisplayed:", userInfo: nil, repeats: true) //Scene implementation, boring stuff, got nothing to do with […]