Tag: 精灵套件

SpriteKit:在场景之间传递数据

我试图在SpriteKit中的场景“SKScene”之间传递数据。 比如我想把A级的分数传给B级 也许解决scheme是归档,但我想实现一些更简单的事情,就像我们使用视图控制器的方式。 在这方面的任何线索将非常感激。

如何使相机跟随Sprite Kit中的SKNode?

我想有不同的对象(精灵和其他对象)静止的背景。 玩家将由将在世界各地移动的中心节点代表。 我想把我的相机固定到中央节点,例如世界应该移动,相机应该保持静止。 我如何做到这一点?

SpriteKit中无尽的滚动背景

我正在尝试使用Apple的SpriteKit进行侧面滚动游戏。 当想要做无尽的滚动背景时,我遇到了这个答案 。 在实施解决scheme之后,它似乎能够正常工作, 尽pipe它显着降低了我的FPS。 这可能是由于图像位置正在每帧重新计算。 我觉得如果我可以使用一个或多个SKAction调用来照顾这个animation,但我不确定如何实现它会好得多。 思考? 我到目前为止在我的场景类中的代码(这只是在屏幕上一次背景) – (void)addBackgroundTileAtPoint:(CGPoint)point { SKSpriteNode *bg = [SKSpriteNode spriteNodeWithImageNamed:@"background"]; bg.anchorPoint = CGPointZero; bg.position = point; bg.name = @"background"; bg.zPosition = -99; [self addChild:bg]; SKAction *sequence = [SKAction sequence:@[ [SKAction moveByX:-(bg.size.width * 2) y:0 duration:10], [SKAction removeFromParent] ]]; [bg runAction: sequence]; }

SkSpriteNode在通用游戏中的位置

我正在使用Swift在纵向模式下为所有iOS设备创build通用游戏。 在GameViewController中,我创build了这样的场景: let scene = GameScene(size:CGSize(width: 1536, height: 2048)) scene.scaleMode = .AspectFill 背景图片的分辨率为1536×2048,所以上面的scaleMode在iPad上显示的是全尺寸,在iPhone 6上显示的是1152×2048的两边修剪。 在所有设备上都能正常工作,只需要一个背景图像。 问题是,如果我要求size.width或self.frame.size.width它总是返回1536,即使实际可见区域是例如1152。 我如何设置SkSpriteNode相对于可见区域的位置,以便在每个设备上从angular落起例如是50×50?

雪碧套件侧滚动

我开始使用Sprite工具包,我想知道如何创build无限侧滚动游戏? 我读了Sprite套件文档,并通读了场景的预处理。 据说,如果内容大于场景,我们可以重新调整场景的位置。 我尝试了它,但是,当我滚动整个背景图像时,我开始看到场景的默认背景。 我如何创build无限的背景? 任何人都可以向我指出正确的文件或文章,谈论他的问题? 谢谢。

视网膜屏幕图像(@ 2x)

现在我正在Xcode 6中使用spritekit(swift)进行游戏。 它必须适用于iPhone 4及更高版本。 但据我所知,所有的iPhone都是4s以上的Retina,所以我可以用(750 x 1334 pix)和@ 2x.png添加所有的图片。 所以我不需要添加@ 2x图片 我对么?

Sprite Kit创build一个iAdBanner

我想在我的SpriteKit游戏中创build一个iAdBanner,但是我不知道它是如何工作的。 你可以帮帮我吗? 我还没有写任何代码,所以我觉得我不需要发布我的代码。 谢谢!!

SKSPriteNode的位置无缘无故变成0,0

我在didBeginContact位置的didBeginContact方法中创build了一个SKSpriteNode : CommonBox *boxTwo = [[CommonBox alloc] initWithTexture:[self.mainAtlas textureNamed:@"box07"]]; boxTwo.name = @"regularBox"; boxTwo.position = contact.contactPoint; [self addChild:boxTwo]; 这里的位置是正确的。 然后更新方法被调用,并且在更新方法开始时,在任何代码被执行之前,方框的位置被神奇地改变为0,0。 这是为什么? 这两个事件之间没有执行其他代码。 这真让我抓狂。 我试图从这个对象中删除所有的碰撞和接触位掩码,但它无论如何改变为零。 对象是合法的等等。 编辑:如果我从该节点删除物理机构,我会得到所需的位置。 但是如果有物理体,我该如何设置节点的位置呢?

SpriteKit中的攻击button

我对Xcode稍微有点新鲜,并且为我的课程制作了2D游戏。 现在我一直在button的问题。 我刚刚得到了解决scheme,为什么我的跳转button不起作用,但我也有一个攻击button。 我已经设置了button的代码在屏幕上,并按下时做图像更改。 但是,我不知道用什么代码来把播放器的图像更改为跳转animation。 我也不知道如何为它和敌人build立冲突,这样攻击animation就会被击中。 所以我的问题是,我怎样才能让button开始跳跃animation,我怎么能设置碰撞摧毁敌人击中? 这是我的代码到目前为止: override func sceneDidLoad() { //Setup start button jumpButton = SKSpriteNode(texture: jumpButtonTexture) jumpButton.position = CGPoint(x: 1850, y: 130) jumpButton.size = CGSize(width: 200, height: 200) jumpButton.zPosition = 20 addChild(jumpButton) //Setup start button attackButton = SKSpriteNode(texture: attackButtonTexture) attackButton.position = CGPoint(x: 1550, y: 130) attackButton.size = CGSize(width: 200, height: 200) attackButton.zPosition […]

无法将'UIView'(0x112484eb0)types的值转换为'SKView'(0x111646718)

无法将'UIView'(0x112484eb0)types的值转换为'SKView'(0x111646718)。 我一直在得到这个错误。 任何人都可以帮助我,因为该行的代码是在那里默认情况下。 我使用xcode 7 beta将SK游戏转换为最新的swift语法。 编译器错过了很多东西,这就是为什么我回到xcode 6.我没有红色的错误; 但是,游戏崩溃,说线程1:信号SIGARBT。 swift 2和swift 1的最新版本之间的任何提示,可能会导致在转换到最新的swift语法的问题。 也许是被转换的东西,我应该在xcode 6.3.2中改变。 一旦这个崩溃问题得到解决,我将删除testing版。 代码中可能存在错误,因为当我将代码复制到一个全新的xcode项目中时,我得到了同样的错误。 提前致谢! let skView = self.view as! SKView