Tag: 精灵套件

SKShapeNode使用错误的宽度和高度

最近我一直在创造一个游戏,在屏幕上放置圆圈。 不过,我注意到通告不是圆圈,而是椭圆。 y轴被拉伸的x轴已经缩小了。 为了弄清楚这个问题,我现在正在试图用一个矩形进行debugging。 我做矩形有相同的高度和宽度(方形),但是,当变成skshapenode它不再是正确的形状。 代码: var testSquare = CGRect(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame), width: 1, height: 1) var squareNode = SKShapeNode(rect: testSquare) println(testSquare.width) println(testSquare.height) println(squareNode.frame.width) println(squareNode.frame.height) self.addChild(squareNode) 这是从这里打印的: 1.0 1.0 513.5 385.5 如果我将testSquare的高度和宽度都更改为100,则这是打印的内容: 100.0 100.0 612.5 484.5 出于某种原因,x中squarenode的框架增加了512.5,在y中增加了384.5。 屏幕上出于某种原因,创build的矩形在Y中的长度更长。 也许框架不是我应该打印的数字,但不pipe屏幕上的形状是不是一个正方形。 有谁知道这是为什么? 任何帮助是极大的赞赏!

更新纹理不工作

不工作更新这个纹理。 代码是一个缩写版本,我需要它。 我需要更新纹理。 我如何能够在SpriteKit的Swift中做到这一点? func didBeginContact(contact: SKPhysicsContact) { if firstBody.categoryBitMask == PhysicsCatagory.ball && secondBody.categoryBitMask == PhysicsCatagory.coin { vyhodnoceni() screen(2) }} override func update(currentTime: NSTimeInterval) { vysledekHvezdyTexture = SKTexture(imageNamed: starString1!)} func vyhodnoceni(){ starString1 = "hvezdy1"} func screen(number: Int){ if number == 2 { vysledekHvezdy = SKSpriteNode(texture: vysledekHvezdyTexture) vysledekHvezdy.size = CGSize(width: screenSize.width / 2, height: screenSize.height / […]

让SKNode不要互相施加压力

我有两个SKNode对象。 碰撞时他们的位置会改变。 我怎样才能防止呢? 同时,我仍然希望能够通过- (void)didBeginContact来联系他们。 我试着把它们的mass属性都设置为0.0f但是没有奏效。

警告:尝试使用SLComposeViewController将不在窗口层次结构中的*视为*

当我在游戏中推送Twitter图像时,我想显示共享图像(SLComposeViewController的模式显示)。 但是,当我推动Twitterbutton,显示不显示和日志说像标题。 然后,我search了类似的问题,但我不知道该怎么做… [ViewDidLoad]和[ViewDidAppear]是重要的事情,我知道。 以下是我的代码。 ViewController.m #import "ViewController.h" #import "NewGameScene.h" #import <Social/Social.h> #import "GameOverScene.h" @interface ViewController () { GameOverScene *gameOver; } @end @implementation ViewController //Loads the view onto our main class – (void)loadView { self.view = [[SKView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; } //Executes when view finishes loading – (void)viewWillLayoutSubviews { //extracted important code. [super viewDidLoad]; […]

如何让相机跟随玩家?

任何人都有快速的代码让相机跟随玩家? 是否创build相机节点,如: var camera = SKSpriteNode() ?

spritekit:粒子关键帧序列的麻烦

这应该是非常简单的。 我试图让我的粒子淡出使用关键帧序列..但是当我使用关键帧序列他们不淡出。 不知道我可能做错了什么。 粒子创build: static func debris(size: Int) -> Array<SKEmitterNode> { if size > 5 { fatalError("we don't have that much debris") } var debrisArr: [SKEmitterNode] = [] for i in 1…size { let debris: SKEmitterNode = SKEmitterNode(fileNamed: "debris") debris.particleTexture = SKTexture(imageNamed: "debris\(i)") convertNumRef(&debris.particleScale) convertNumRef(&debris.particleScaleRange) debris.particleRotationSpeed = debris.particleRotationSpeed * CGFloat.randomSign() // THE PART WE CARE […]

iOS ADMOB基于奖励的video广告加载失败

直到今天我能够显示奖励video,但现在的video不出现,admod的日志提醒我安装新的 ADMOB SDK 7.23.0 现在使用新的ADMOB SDK奖励video无法加载。 与testingID ,似乎工作: GADRewardBasedVideoAd.sharedInstance().load(GADRequest(),withAdUnitID: "ca-app-pub-3940256099942544/1712485313") 如果我更改了我的参考ID,video将无法加载。 我也join了AppDelegate: //ADMOB import GoogleMobileAds func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { //ADMOB GADMobileAds.configure(withApplicationID: AppConfiguration.AdMob.ID_APP) return true }

iAd冻结游戏的场景

我正在开发一个使用SpriteKit的游戏。 我在现场的视图中显示了iAds。 当广告视图中的广告被触摸时,广告就会出现,但是如果我越过(X)/closures广告,则游戏中的场景被冻结。 当广告出现并消失时,我不会暂停现场或对事件做任何事情。 如果我再次触摸广告(现在这是第二次冻结的场景),并返回到现场,场景不冻结,一切都开始工作,因为他们假设(奇怪)。 我不知道iAd或我的应用程序中的问题在哪里? // Method is called when the iAd is loaded. -(void)bannerViewDidLoadAd:(ADBannerView *)banner { NSLog(@"Banner did load"); [self animateAdBanner]; } -(void) animateAdBanner{ if(iAdsEnable){ [UIView animateWithDuration:6 delay:8 options:UIViewAnimationOptionAllowUserInteraction animations:^{ [self.adBanner setAlpha:0.85]; } completion:^(BOOL finished){ if(finished){ //[self.adBanner setAlpha:0.7]; } }]; } }

扩展SKAction以覆盖timingMode

我在SpriteKit项目中有许多SKActions。 SKAction的默认timingMode是“线性的”。 是否有可能使用扩展来覆盖这个timingMode默认为例如“easeInEaseOut”所以所有的SKActions有timingMode = easeInEaseOut? Objective-Cselect器'init'与隐式初始值设定项'init()'冲突,但是没有一个会编译 – 通常返回在其自身types中使用的''timingMode''或'Initializer'init与相同的Objective-Cselect器“ 文档似乎没有给出任何这样的例子,但肯定这将是一个有用的事情,能够做到? 特别是当你在游戏中有数以百计的SKActions?

Sprite Kit / Objective C:什么是对象的“触摸指示器”

我指的是我的SpriteKit游戏的菜单屏幕。 我使用图像SpriteNodes作为开始和选项button。 如果我触摸开始button,我想要改变到“游戏视图”;如果按下了选项button,我想改变为“选项视图”。 应该是一个简单的问题,但我找不到任何资源。