草庐IT

Sprite-Kit

全部标签

ios - 如何在 Cocos2D 中使 Sprite 在更新循环内跳转

我有一个球Sprite从顶部掉落,下面有一个男孩。当球击中男孩的头时,我希望它遵循抛物线路径。我尝试如下使用CCJumpTo,但无法正常工作。我正在调用更新循环内的操作。我不允许这样做吗?我不能在更新循环中调用CCJumpTo吗?-(void)jump{if(!method_called){method_called=TRUE;CCActionInterval*jump1=[CCJumpToactionWithDuration:3position:CGPointMake(400,400)height:150jumps:1];[_ballrunAction:jump1];NSLog(@"

objective-c - 动画多个 Sprite Cocos2d

我正在尝试向我当前正在开发的游戏中的游戏层添加多个动画Sprite。为此,我创建了一个实例Sprite:bunsen,对于每一个需要添加的bunsen,我都运行这个循环:elseif(blockValue==2||blockValue==3||blockValue==4||blockValue==5){bunsen=[CCSpritespriteWithSpriteFrameName:@"15_1.png"];if(blockValue==2){bunsen.rotation=90;}elseif(blockValue==3){bunsen.rotation=180;}elseif(b

ios - Cocos2d + box2D 从世界中移除 Sprite

应该很容易,但我没有找到...我的世界里有很多Sprite,在某个时刻X,我需要销毁多个Sprite。使用下面的代码,我可以通过标签号删除这个Sprite:CCSprite*sprite=(CCSprite*)[selfgetChildByTag:TagFromMyArray];[selfremoveChild:spritecleanup:YES];问题是留在屏幕上的body......并在下一个tick时使游戏崩溃。用下面的代码我可以找到“一具尸体”:for(b2Body*b=world->GetBodyList();b;b=b->GetNext()){if(b->GetUserDa

ios - 抄袭。除 sprite 外,处处填满屏幕

所以我试图在我的一款游戏中加入一个非常基本的“手电筒”式的东西。我让它工作的方式是在我的游戏屏幕顶部有一个层,这个层会绘制一个黑色矩形,不透明度约为80%,在我的游戏场景顶部创建黑暗的外观。ccDrawSolidRect(ccp(0,0),ccp(480,320),ccc4f(0,0,0,0.8));我想要做的是在屏幕上的任何地方绘制这个矩形,除了代表“光源”的视锥周围。这将创建一个深色覆盖层,覆盖在除光以外的所有东西之上,给人一种手电筒/灯/手电筒的错觉。我可以预见这种情况发生的唯一方法是使用ccDrawSolidPoly(),但由于光源的位置发生变化,多边形的顶点也会发生变化。关于

ios - 如何在 SpriteKit 中为关节添加纹理?

也许我可以用anchor来做,但我真的不明白我应该怎么做。 最佳答案 我正在构建的解决方案需要一个带有关节纹理的SKSpriteNode,然后将其添加为连接节点之一的子节点,这样它就覆盖了SKPhysicsJoint正在运行。每当我旋转关节时,纹理也会随之旋转。我的想法是从带有隐藏关节的可动人偶那里得到的,基本上,您只是在机械关节上放置了一些东西,以便获得更令人愉悦的美感。我不知道这是否适合您,但您也可以使用现有纹理的centerRect定义纹理,然后定义要在关节节点上绘制的部分。这比我想投入的工作要多,这取决于您的艺术作品Asse

iOS 如何在 Sprite Kit 中实现 UIButton 的节点行为?

我希望我的一些SpriteKit节点表现得像UIButtons。我尝试了两种方法:1)使用touchesBegan:-如果用户小心,这会起作用,但似乎触发了多次,比我禁用交互的速度更快,导致按钮可以被多次激活:spriteNode.userInteractionEnabled=YES;//causesthefollowingtofirewhennodereceivestouch-(void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event{self.userInteractionEnabled=NO;DLog(@"Donodea

iOS Kobold Kit 如何禁用屏幕调试 (gpu : renderer: . ..etc)?

启动vanillaSpriteKit项目时,它会显示使用这些调用的节点数和FPSSKView*skView=(SKView*)self.view;skView.showsFPS=YES;skView.showsNodeCount=YES;但是,我似乎无法为KKView禁用这些,我尝试过:self.kkView.showsFPS=NO;self.kkView.showsNodeCount=NO;self.kkView.showsDrawCount=NO;我仍然在右下角看到蓝色的调试文本。如何禁用KKView的调试文本? 最佳答案 在d

ios - Sprite Kit - 使用 textureFromNode 时 Retina 上的低分辨率纹理

对于我的游戏,我正在尝试从另外两个纹理创建自定义纹理。这是为了在我的Sprite中允许各种颜色等。为此,我通过将两个纹理添加到一起来创建Sprite,然后通过使用将其应用于新的SKTextureSKTexture*texture=[self.viewtextureFromNode:newSprite];整体效果很好,我得到了一个不错的自定义纹理。除了在Retina设备上尝试我的游戏时,纹理在屏幕上的大小正确,但分辨率明显较低。纹理都在那里并且命名正确,所以我认为这不是问题。有没有人遇到过这个,或者知道如何创建正确的@2x纹理? 最佳答案

ios - 如何平滑地为具有大纹理序列的 Sprite 制作动画?

我创建了一个SKSpriteNode作为场景中的唯一节点。它显示了一只120x75像素的小乌龟在跳舞。乌龟有100个舞格。我可以逐步浏览Finder中的帧并看到完美流畅的运动。现在我在SpriteKit中做了可笑的简单测试。纹理图集上的所有帧。在应用程序启动时,我生成SKTextureAtlas对象,然后将所有SKTexture对象预加载到序列数组中。在每一帧上,我都在海龟节点上调用-next。然后它简单地从数组中获取下一个SKTexture并将其设置为当前纹理。动画不流畅。iPhone5S表示60fps。但我看到随机掉帧发生。我尝试使用PVR进行压缩。然后我尝试没有map集。还尝试调

ios - 缩小我的世界 : Joints and their positions are not adjusted

这是我的设置:SKScene有一个名为world的节点在这个世界上,我附加了另一个节点:车辆我将三个节点附加到这辆车上;一个body和两个轮子轮子通过指定anchor的SKPhysicsJointPin连接到body上现在,一切都很好,直到我缩小我的世界:[_worldrunAction:[SKActionscaleTo:0.5duration:0.75]];我的车突然从车轮上抬起。看起来好像保持了与未放大世界中相同的距离。车辆的所有部分都适当缩放-除了到其部分的距离。我是否也必须对我的关节应用缩放?还是我需要重置关节的anchor?感谢您的帮助! 最佳答案