草庐IT

Sprite-Kit

全部标签

ios - SKAction playSoundFileNamed 在接到两个连续的电话后不起作用

我想弄清楚为什么playSoundFileNamed在接到两个连续的电话后不起作用。实际上,它仅在接到第一个电话后才起作用。复制步骤是:开始游戏等一个电话,然后转到后台电话通话结束(来电者拒绝或打断)回到前台在此之后,播放touchesBegan的声音仍然有效。当我重复上面的步骤(跳过第一步)时,touchesBegan的机制停止工作。不确定为什么会这样......这是可以产生所描述行为的代码:@interfaceGameScene()@property(nonatomic,strong)SKAction*sound;@end@implementationGameScene-(void

ios - SpriteKit 球在撞墙时失去所有能量,恢复=1

如果我在y方向施加1的冲量,球会来回弹跳而不会损失任何能量。但是,如果初始冲量为0.5或以下,则球在撞到墙壁时会立即失去所有能量。为什么会这样?我对SKPhysicsBody类的属性有很好的理解。试试这段代码,看看您的计算机上是否会出现相同的行为。-(id)initWithSize:(CGSize)size{if(self=[superinitWithSize:size]){/*Setupyourscenehere*/self.physicsWorld.gravity=CGVectorMake(0.0f,0.0f);SKPhysicsBody*borderBody=[SKPhysics

ios - SpriteKit 球在撞墙时失去所有能量,恢复=1

如果我在y方向施加1的冲量,球会来回弹跳而不会损失任何能量。但是,如果初始冲量为0.5或以下,则球在撞到墙壁时会立即失去所有能量。为什么会这样?我对SKPhysicsBody类的属性有很好的理解。试试这段代码,看看您的计算机上是否会出现相同的行为。-(id)initWithSize:(CGSize)size{if(self=[superinitWithSize:size]){/*Setupyourscenehere*/self.physicsWorld.gravity=CGVectorMake(0.0f,0.0f);SKPhysicsBody*borderBody=[SKPhysics

ios - 渲染 Sprite 的纹理采样坐标

假设我们有一个纹理(在本例中为8x8像素),我们想将其用作sprite表。其中一个子图像(Sprite)是纹理内部4x3的子区域,如下图所示:(显示了四个角的归一化纹理坐标)现在,基本上有两种方法可以将纹理坐标分配给4pxx3px大小的四边形,以便它有效地成为我们正在寻找的Sprite;第一个也是最直接的是在子区域的角落对纹理进行采样://TexturecoordinatesGLfloatsMin=(xIndex0)/imageWidth;GLfloatsMax=(xIndex0+subregionWidth)/imageWidth;GLfloattMin=(yIndex0)/imag

ios - 渲染 Sprite 的纹理采样坐标

假设我们有一个纹理(在本例中为8x8像素),我们想将其用作sprite表。其中一个子图像(Sprite)是纹理内部4x3的子区域,如下图所示:(显示了四个角的归一化纹理坐标)现在,基本上有两种方法可以将纹理坐标分配给4pxx3px大小的四边形,以便它有效地成为我们正在寻找的Sprite;第一个也是最直接的是在子区域的角落对纹理进行采样://TexturecoordinatesGLfloatsMin=(xIndex0)/imageWidth;GLfloatsMax=(xIndex0+subregionWidth)/imageWidth;GLfloattMin=(yIndex0)/imag

ios - SpriteKit 着色器崩溃 iOS 9 : SKDefaultShading, gl_FragCoord

刚刚安装了iOS9公开测试版(第3版),现在我遇到了很多SpriteKit着色器问题。在iOS8上,以下代码运行良好:_fontShader=[SKShadershaderWithFileNamed:@"TheShader"];//TODO:iOS9compatibilityissueshere_fontUniform=[SKUniformuniformWithName:@"labelBase"float:0];[self.fontShaderaddUniform:self.fontUniform];//TODO:iOS9compatibilityissueshere_fontEffe

ios - SpriteKit 着色器崩溃 iOS 9 : SKDefaultShading, gl_FragCoord

刚刚安装了iOS9公开测试版(第3版),现在我遇到了很多SpriteKit着色器问题。在iOS8上,以下代码运行良好:_fontShader=[SKShadershaderWithFileNamed:@"TheShader"];//TODO:iOS9compatibilityissueshere_fontUniform=[SKUniformuniformWithName:@"labelBase"float:0];[self.fontShaderaddUniform:self.fontUniform];//TODO:iOS9compatibilityissueshere_fontEffe

ios - SKScene 中的 UIPanGestureRecognizer

我一直在试验UIGestureRecognizers和SpriteKit中的新SKScene/SKNode's。我遇到了一个问题,我快要解决了,但我对一件事感到困惑。本质上,我有一个平移手势识别器,允许用户在屏幕上拖动Sprite。我遇到的唯一问题是,它需要一次点击才能真正初始化平移手势,然后只有在第二次点击时它才能正常工作。我认为这是因为我的平移手势是在touchesBegan中初始化的。但是,我不知道该把它放在哪里,因为在SKScene的initWithSize方法中初始化它会阻止手势识别器实际工作。-(void)touchesBegan:(NSSet*)toucheswithEv

ios - SKScene 中的 UIPanGestureRecognizer

我一直在试验UIGestureRecognizers和SpriteKit中的新SKScene/SKNode's。我遇到了一个问题,我快要解决了,但我对一件事感到困惑。本质上,我有一个平移手势识别器,允许用户在屏幕上拖动Sprite。我遇到的唯一问题是,它需要一次点击才能真正初始化平移手势,然后只有在第二次点击时它才能正常工作。我认为这是因为我的平移手势是在touchesBegan中初始化的。但是,我不知道该把它放在哪里,因为在SKScene的initWithSize方法中初始化它会阻止手势识别器实际工作。-(void)touchesBegan:(NSSet*)toucheswithEv

ios - 在 Sprite Kit iOS 中使用一张图片 Sprite 表

我有一个sprite表,其中包含我的sprite的动画图像。我如何在不拆分单个文件的情况下将这些图像放入SKTextureAtlas(这样我就可以在SKAction中制作动画)?我以前见过并做过这个,但是不使用SpriteKit和/或SKTextures。如果不拆分文件,这甚至可能吗?最坏的情况:我需要将工作表中的图像分开。在过去,我只是制作了一个方法,其中包含Sprite大小和Sprite总数,这些方法在代码中将图像分开,然后进行动画处理。在此先感谢您的帮助!附言我是SpriteKit的新手,但不是游戏编程或iOS的新手 最佳答案