草庐IT

SkSpriteNode

全部标签

objective-c - 水平镜像 SKSpriteNode 纹理

我正在使用名为SpriteKit的新API开发一款iOS7游戏。我想水平旋转SKSpriteNode图像/纹理。我已经尝试过首先镜像图像,然后创建一个SKTexture,最后将它应用到SKSpriteNode,但它不起作用。有什么办法可以做到这一点?或者我应该使用不同的图像? 最佳答案 如果你只是想沿着一个轴翻转Sprite,你可以这样做:sprite.xScale=-1.0; 关于objective-c-水平镜像SKSpriteNode纹理,我们在StackOverflow上找到一个类

objective-c - 水平镜像 SKSpriteNode 纹理

我正在使用名为SpriteKit的新API开发一款iOS7游戏。我想水平旋转SKSpriteNode图像/纹理。我已经尝试过首先镜像图像,然后创建一个SKTexture,最后将它应用到SKSpriteNode,但它不起作用。有什么办法可以做到这一点?或者我应该使用不同的图像? 最佳答案 如果你只是想沿着一个轴翻转Sprite,你可以这样做:sprite.xScale=-1.0; 关于objective-c-水平镜像SKSpriteNode纹理,我们在StackOverflow上找到一个类

无法为'SKSpritEnode!

我正在用SpriteKit在Swift3中写一款Galaga风格的游戏,我一直遇到一个错误,说无法为'SKSpritEnode!谁能解释这意味着什么,以便我将来可以自己修理并给我一个可能的解决方案?这是我获得错误的功能:overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){fortouchintouches{letlocation=(touchasUITouch).location(in:self)iffireButton=self.nodes(at:location){shoot()}else{lettouchLocation=t

ios - SKSpriteNode 动画渐变

我有一个开始透明的SKSpriteNode,我想让它从一侧开始完全可见,然后移动到另一侧,以整个Sprite可见结束。Thisquestion解决了UIViews上CALayers的问题,但似乎我们无法访问SKSpriteNode的CALayers。有没有办法将动画渐变应用于SKSpriteNode? 最佳答案 这是一个如何使用裁剪节点进行操作的示例。您可以通过在Xcode中创建一个新的“SpriteKitGame”项目并替换MyScene.m中的touchesBegan来运行它:-(void)touchesBegan:(NSSet

ios - SpriteKit - SKSpriteNode 在 3.5 英寸和 4 英寸设备上的缩放比例不同

我也是游戏开发和SpriteKit的新手,正在使用它开发小游戏。不幸的是,我无法在两种设备上正确显示SKSpriteNode-3.5英寸和4英寸。我对Cocos2d有一点经验,所有定位的东西都是在非常方便的SpriteBuilder工具中完成的。在SpriteKit中,它应该以编程方式完成。问题是节点的规模在设备上不同,看一看:这里是MyScene.m中的定位代码:-(id)initWithSize:(CGSize)size{if(self=[superinitWithSize:size]){_screenRect=[[UIScreenmainScreen]bounds];_scree

ios - 为无尽的跑酷游戏创建动态大小的 SKSpriteNode 平台

我正在为IOS开发我的第一个EndlessRunner游戏,我希望它尽可能地动态。我想创建一个大的“平台”图像,然后使用该图像创建各种大小的平台。想法是随机选择一个数字作为平台的宽度,然后生成与所选尺寸相匹配的Sprite和主体。完成此操作后,通过仅使用图像的一部分来获取图像以填充Sprite。目前我正在使用以下内容,但这会根据UIImage的大小创建节点。SKSpriteNode*spritePlatform=[[Platformalloc]initWithImageNamed:@"Platform"];[spritePlatformsetPosition:CGPointMake(s

ios - 如何让SKSpriteNode重新出现在它的SKScene的对面?

我已经尝试使用SpriteKit一段时间了,对于我的SKSpriteNode在其SKScene范围内移动的一些“最佳实践”输入,我将不胜感激。我使用加速度计对SKSpriteNode的PhysicsBody属性施加力,以便以类似弹珠的方式在屏幕上移动节点。目前,我使用self.physicsBody=[SKPhysicsBodybodyWithEdgeLoopF​​romRect:self.frame]设置场景的PhysicsBody,这样大理石就可以简单地从场景的边缘反弹。我希望一旦弹珠移出我的场景边界(1),它就会以相同的速度重新出现在我场景的另一侧(2),而不是从场景的边缘弹起。

ios - 在 SKSpriteNode 中调用自定义方法不起作用

我有一个自定义的SKSpriteNode对象,想在其中调用一个自定义方法“设置默认值”。#import@interfacePlatform:SKSpriteNode-(instancetype)initWithDynamicPlatform;-(void)setDefaults;@end在.m文件中#import"Platform.h"@implementationPlatform-(instancetype)initWithImageNamed:(NSString*)name{if(self==[superinitWithImageNamed:name]){NSLog(@"Initi

ios - SKSpriteNode 忽略物理停用

我有一个节点,它放置在我的屏幕下方并用作平台。一旦另一个节点接触到该节点,bool值就会设置为NO。当我使用SKPhysicsBody属性定义我的节点时,节点会忽略affectedByGravity属性。我的代码:+(void)addNewNodeTo:(SKNode*)parentNode{//CorrectimagesizeSKSpriteNode*desertBottom=[SKSpriteNodenode];desertBottom=[[SKSpriteNodealloc]initWithImageNamed:@"Giraffe.png"];desertBottom.posit

ios - 如何从 SKSpriteNode 获取图像名称?

我想获取我在SKSpriteNode上使用的图像的名称。这是我创建节点的方式:SKSpriteNode*button=[SKSpriteNodespriteNodeWithImageNamed:@"img.png"];通过触摸屏幕,我想在NSLog上获取这张图片的名称。UITouch*touch=[touchesanyObject];CGPointloc=[touchlocationInNode:self];SKSpriteNode*node=(SKSpriteNode*)[selfnodeAtPoint:loc];通过触摸节点,我想在NSLog上获取此SKSpriteNode使用名为