我正在做的是基于完整图像创建一个SKTextureSKTexture*fullTexture=[SKTexturetextureWithImageNamed:@"fullImage"];我想使用fullTexture的整个宽度,但只使用纹理的一部分高度,但是,从完整图像的顶部开始。弄清楚宽度好像是百分比,我用了下面的代码:SKTexture*croppedTexture=[SKTexturetextureWithRect:CGRectMake(0,0,1,percentageY)有人能给我CGRectMake到CROP的正确浮点值吗,从左上角开始,完整的witdt和Y的一部分(固定数量
我正在制作一个游戏,其中涉及沙尘暴。我决定基本概念是我会制作一个看起来大致像沙尘暴的图像,然后用一些粒子/其他任何东西来装饰它。我在第一步遇到了问题。为了测试目的,我拼凑了一个简单的图像:我将其添加到我的游戏中,FPS下降了60%。我对一张图片的效果感到惊讶,但我并不太担心。我将图像的分辨率减半,但又出现了很多延迟。spritekit/iOS在处理带有alpha的中等大小图像方面真的那么糟糕吗?我读到另一个问题,模拟器在渲染方面很糟糕,但这不是全部问题。是否有希望在不影响性能的情况下进行渲染?粒子运行良好,其他一切都以60fps的速度运行,但添加此图像显然会严重消耗资源。编辑:我在手机
我多次使用block,但在这种情况下我怀疑它是否有效。我必须检查一堆节点,看看它们是否可见。然后我构建这个方法:-(BOOL)areNodesVisible{__blockBOOLvisible=YES;[selfenumerateChildNodesWithName:@"myNode"usingBlock:^(SKNode*node,BOOL*stop){if([nodeisHidden]){visible=NO;*stop=YES;}}];returnvisible;}我的问题是block是异步的,所以这个方法总是返回YES。我该如何解决? 最佳答案
我是SpriteKit的新手,刚刚构建了我的第一款游戏。在iOS7.1之前,一切都运行良好。现在,在推进到一个新的水平并呈现一个新的Scene几次之后,它崩溃了。我不认为我以不正确的方式呈现它:ZSSMyScene*nextLevel=[[ZSSMyScenealloc]initWithSize:self.sizelevel:self.levelscore:score];[self.viewpresentScene:nextLevel];我收到一个EXC_BAD_ACCESS错误,看起来它发生在removeSubsprite上,但我在我的代码中找不到要删除子Sprite的地方:不确定要
我在iOS7.1上的SpriteKit中发生崩溃。我尝试使用Xcode5.0.2和5.1进行构建。结果是一样的。在iOS7.1设备上仍然崩溃。附上截图。我找到了导致崩溃的代码。-(WATDirection*)panDown{WATDirection*direction=[[WATDirectionalloc]init];CGFloatnewY=830;@weakify(self)[directionaddStartHandler:^(WATDirection*direction){@strongify(self)self.panningDown=YES;[selfrunAction:[
我现在在做休闲游戏。我想在推特上分享乐谱。我的作品如下图。1.玩家玩游戏后有得分。2.当游戏进入gameoverscene时,他们可以按下twitter按钮(使用social.framework)3.出现类似“Yougotxxscore!!”的文字在twitterdisplay(modal)中。*我想将xx更改为共享分数。你能给我一些建议吗?我是Objective-C的初学者。所以,简单的方法对我来说更好。渐渐地,我想关注安全性和可扩展性。[信息]*MainScene和GameOverScene由SKScene制作主场景.m@implementationMainScene{//Thes
我如何在SpriteKit物理世界中创建气球和泡泡之类的东西?他们的物理体应该会受到重力的影响吧?但是没有办法为每个Sprite设置单独的重力吗?更新:根据论坛帖子,这是Box2d处理局部重力的方式:也许它可以复制到使用其他物理引擎的游戏中。b.m_linearVelocity.x+=step.dt*(gravity.x+b.m_invMass*b.m_force.x);b.m_linearVelocity.y+=step.dt*(gravity.y+b.m_invMass*b.m_force.y);来自http://www.box2d.org/forum/viewtopic.php?
我想在有人点击屏幕时显示“暂停的”SKLabelNode,从而暂停spritekit游戏。所以我在touchesBegan->[self.pausedLabelsetHidden:!self.pausedLabel.hidden];[self.scene.viewsetPaused:!self.scene.view.paused];游戏已正确暂停,但未显示SKLabelNode(暂停前未渲染场景?!)如果我添加一个NSTimer来暂停场景,则会显示标签,但游戏会继续该计时器时间。有人对此有更好的解决方案吗?提前致谢 最佳答案 我会为
所以我有一个shipNode(最初是面向右的)和两个子节点_laserCannon1(和2),它们是通过以下方法配置的:-(void)initializeLaserCannonLocations{CGSizesize=CGSizeMake(4.0,4.0);_laserCannon1=[SKSpriteNodespriteNodeWithColor:[SKColoryellowColor]size:size];_laserCannon2=[SKSpriteNodespriteNodeWithColor:[SKColoryellowColor]size:size];_laserCanno
我收到一个错误,上面写着“viewcontroller没有可见的@interface声明了选择器addChild”,基本上我正在尝试将我的skEmitter节点添加到我的游戏中。-(void)didMoveToView:(SKView*)view{NSString*path=[[NSBundlemainBundle]pathForResource:@"MyParticle"ofType:@"sks"];SKEmitterNode*node=[NSKeyedUnarchiverunarchiveObjectWithFile:path];node.position=CGPointMake(