草庐IT

SkSpriteNode

全部标签

ios - 在 SKSpriteNode 上使用 resizableImageWithCapInsets

我目前正在尝试在SKSpriteNode上使用可拉伸(stretch)图像。通常,可伸缩图像由方法UIImage::resizableImageWithCapInsets:返回所以我写了这段代码:SKTexture*texture=[SKTexturetextureWithImage:[imageresizableImageWithCapInsets:UIEdgeInsetsMake(0,10,0,10)]];SKSpriteNode*node=[SKSpriteNodespriteNodeWithTexture:texturesize:CGSizeMake(150,8)];但它不起作

ios - SKSpriteNode的 Sprite 只有在iPhone 7 Plus真机上模糊

我正在使用SpriteKit和最新的Xcode制作游戏应用程序。我想以像素完美显示单色Sprite。我尝试了以下代码。letsprite=SKSpriteNode(color:SKColor.gray,size:CGSize(width:16,height:16))sprite.anchorPoint=CGPoint(x:0,y:0)sprite.position=CGPoint(x:100,y:100)sprite.texture?.filteringMode=.nearestaddChild(sprite)在大多数情况下,它的显示效果非常理想。(具体为iPhone6s、iPodto

ios - 有没有办法反转 SKSpriteNode 的颜色

我想知道是否可以反转SKSpriteNode的颜色(或调整色调)。 最佳答案 您可以通过应用带有SKEffect节点的CIFilter来反转颜色。这样的事情应该有效:SKEffectNode*effectNode=[[SKEffectNodealloc]init];effectNode.filter=[CIFilterfilterWithName:@"CIColorInvert"];SKSpriteNode*node=yourNode;//Makesurethisnodedoesn'talreadyhaveaparent[effec

ios - SKSpriteNode 使用 UIColor 设置颜色

我想通过UIColor的PresentComponentsValues设置SKSpriteNode的颜色通过显示UIColor的组件值,我的意思是:(UIColor*)blackColor(UIColor*)blueColoretc问题是它不起作用:SKSpriteNode*noddd=[SKSpriteNodespriteNodeWithColor:blackColorsize:CGSizeMake(50,50);有没有可能做到?提前致谢;) 最佳答案 使用SKColor而不是UIColor。SKSpriteNode*noddd=

ios - 为什么 SKSpriteNode 不响应 applyForce 或 applyImpulse?

我有一个sprite节点,它响应于施加在其连接的physicsBody上的重力而出现和下落。很好。现在,我想使用applyForce在它下落时向某个方向稍微插入它。不幸的是,无论我将physicsBody.mass或physicsWorld.gravity做得多小,或者我将applyForce向量做得多大--applyForce向量似乎被忽略了。当我注释掉self.physicsWorld.gravity行时,我看到applyForce正在工作正如预期的那样如何在施加重力的同时使用applyForce实现“插入”物理体?这是我的.h//GameScene.h#import@interf

ios - 在两个或多个 SKSpriteNode 上同步 SKActions?

我想同步移动两个(或更多)SKSpriteNode。任何差异都会显示出来。我尝试按顺序为每个Sprite触发SKAction,当最后一个Sprite完成时,它会触发一个新Action。但事实证明,操作的结束顺序与它们开始的顺序不同,这会导致明显的时间差异。有没有办法在两个或多个具有持续时间的Sprite上并行运行SKActions,以便它们在完全相同的时间结束,或者至少按照它们开始的顺序?这是一个不起作用的原理示例:-(void)testMethod1{SKSpriteNode*child_1=[arrayWithSpritesobjectAtIndex:1];SKSpriteNode

ios - SKSpriteNode 的 HitTest

这是我的问题:我使用SpriteKit,当触摸事件发生在某个矩形中时我想忽略它(防止调用touchesBegan)。我想做的方式类似于“覆盖UIView的hitTestWithEvent”。但是我无法为SKSpriteNode找到任何可以忽略事件并阻止调用touchesBegan的类似方法。当然我可以将isUserInteractionEnabled设置为false,但它会禁用整个Sprite,而不仅仅是一部分。我可以在touchesBegan方法中检查触摸的位置,但这已经晚了-位于同一位置下方的其他Sprite将不再接收此事件。我也尝试过使用SKCropNode,但它只是阻止显示Sp

ios - 根据触摸位置拖动 SKSpriteNode

我试图在y轴上拖动Sprite,但根据节点上开始触摸的位置,使Sprite“粘附”到用户的手指上。Sprite目前正在拖动,但它似乎正在将Sprite的anchor捕捉到节点内的触摸位置。我假设它与通过执行[touchlocationInNode:selectedNode];获取节点内的位置有关,但我不确定从那里去哪里。这是我当前的代码。-(void)touchesMoved:(NSSet*)toucheswithEvent:(UIEvent*)event{for(UITouch*touchintouches){CGPointlocation=[touchlocationInNode:

ios - SKSPriteNode 位置无缘无故变为 0,0

我在didBeginContact方法中创建了一个SKSpriteNode并带有联系位置:CommonBox*boxTwo=[[CommonBoxalloc]initWithTexture:[self.mainAtlastextureNamed:@"box07"]];boxTwo.name=@"regularBox";boxTwo.position=contact.contactPoint;[selfaddChild:boxTwo];这里的位置是正确的。然后调用更新方法,并且在执行任何代码之前,框的位置在更新方法开始时神奇地更改为0,0。这是为什么?在这两个事件之间没有执行其他代码。这

ios - 什么最能代表角色 SKNode 或 SKSpriteNode?

目前,我的类(class)看起来像@interfaceCharacter:SKNode@property(nonatomic,assign)CGFloatwalkingSpeed;@实现角色+(Character*)characterWithLevel:(BaseLevel*)level{return[[selfalloc]initWithLevel:level];}-(id)initWithLevel:(BaseLevel*)level{if(self=[superinit]){_sprite=[SKSpriteNodespriteNodeWithImageNamed:level.h