草庐IT

ios - ins SpriteKit, "select"我手指移动时接触到的所有 Sprite

因此,我正在尝试学习SpriteKit,同时构建我认为是简单的益智游戏。我有不同颜色的SKSpriteNodes的5x5网格。我想要的是能够触摸一个节点,水平或垂直移动我的手指并检测我的手指触摸的所有节点,就像我正在“选择”它们一样。我试图做这样的事情,但它使应用程序崩溃了:-(void)touchesMoved:(NSSet*)toucheswithEvent:(UIEvent*)event{UITouch*touch=[touchesanyObject];CGPointlocation=[touchlocationInNode:self];SKSpriteNode*node=[se

iOS Sprite 套件 : How to make Sprite follow Touches

我是SpriteKit的新手,我想知道如何让Sprite跟随触摸。例如,我的玩家Sprite在屏幕底部。当我点击屏幕顶部时,玩家Sprite应该以一定的速度移动到触摸点-如果我移动手指,它应该始终指向触摸点。这就是我尝试实现它的方式:-(void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event{for(UITouch*touchintouches){CGPointlocation=[touchlocationInNode:self];CGPointdiff=rwSub(location,self.player.position

ios - 使用 Sprite Kit 变换物理体

我正在制作一个2D游戏,其中一个角色静止不动地站在屏幕的左侧,物体从右侧飞向他。他需要能够击落这些飞行的敌人。我有一个包含“拍打”动画帧的Sprite动画。拍打过程中,他的body微微一动,ARM由着地旋转,完全伸过头顶,然后拍下地面。这是它的样子:SumoSmashAnimationGIF出于这些目的,我有一个名为SumoWarrior的类,它是SKSpriteNode的子类。SumoWarrior子画面节点有一个名为warriorArm的子子画面节点。我的想法是让主要的相扑武士sprite节点显示动画,并将此warriorArmsprite节点仅用于武士ARM形状的物理体。我需要以

ios - 在 Objective-C 的 Sprite-Kit 项目中,您将如何在 MyScene 以外的类中调用更新方法?

所以我正在制作一个基于Objective-CSprite-Kit的游戏。我是Objective-C的新手,所以我似乎被困在涉及更新方法的事情上。传统上,在默认的Sprite-Kit项目中,它会为您创建一个View,其中包含一个场景,该场景包含您要操作的所有节点。它还带有一个预先生成的空更新方法,从那时起我就用我自己的方法替换了它(效果很好)。但是我不希望我的更新方法基于MyScene类,这就是我的问题所在。如果我将update方法留在MyScene类中,我可以看到使用NSLog实际上它应该被连续调用,但如果我将它移动到ViewControler类,它根本不会被调用。我的问题是如何让它在

c++ - 在 Cocos2dx 中协调多个 Sprite 动画

我在sprite表上有一个角色的5帧运行动画。我想给这个角色多个“升级”,比如太阳镜、帽子等。我不知道这样做的“正确方法”,所以我是这样做的:我构建了一个层来表示Sprite本身,并首先添加了角色,然后是顶层的帽子。我有一个5帧的动画,用于角色头上帽子的位置也在Sprite表上,并使用与主角完全相同的参数设置动画。问题是,当我尝试同时为两个Sprite(角色Sprite和帽子Sprite)设置动画时,它们会不同步。有时它很管用,但有时只是稍微偏离了一点点,这足以让他的头穿过帽子的顶部,或者每走一步帽子就会从他的头上掉下来。我目前的解决方案是有一个更新滴答声,并在每次经过一定毫秒数时手动

ios - Sprite Kit - 设置位置不做任何事情

我试图在球击中球门后将其重置到屏幕中间,但在声明过程中声明它的位置后,我似乎无法再设置它的位置。这就是我定义我的球的方式:-(void)setUpBall{self.ball=[SKSpriteNodespriteNodeWithImageNamed:@"Ball"];self.ball.name=bName;self.ball.position=CGPointMake(self.frame.size.width/2,self.frame.size.height/2);self.ball.physicsBody=[SKPhysicsBodybodyWithCircleOfRadius:

ios - SKView bounds.size 在触摸事件中反转(Sprite Kit)

请帮助我理解以下行为(iOSSpriteKit)。我在下面给出的代码的输出是:1.skView.bounds.size=768.00,1024.002.skView.bounds.size=1024.00,768.00如上所示,宽度和高度在两种方法之间切换,这导致我的第二个场景没有以正确的比例呈现。我的游戏只会在横向模式下运行,这意味着事实上,第二个宽度x高度比是正确的(尽管它是第一个以正确的纵横比渲染场景,这本身就是一个谜对我来说)。谁能告诉我如何解决这个问题?我做错了什么?-(void)viewDidLoad{[superviewDidLoad];self.currentGameS

ios - 如何在 sprite kit 中抓取屏幕截图?

当我试图在spritekit中抓取屏幕截图时。我已经尝试了所有可以在网上找到的方法。他们不工作。UIGraphicsBeginImageContextWithOptions(self.view.bounds.size,self.view.opaque,0.0);[self.view.layerrenderInContext:UIGraphicsGetCurrentContext()];UIImage*gameOverScreenImage=UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();只是

ios - 在 Sprite Kit 中如何在开始时初始化所有场景?

每当我想转换到某个场景时,SKTransition甚至需要几秒钟才能开始。是否可以在游戏开始前将所有场景都初始化?NewScene*newScene=[NewScenesceneWithSize:self.size];SKTransition*reveal=[SKTransitionmoveInWithDirection:SKTransitionDirectionUpduration:0.5];reveal.pausesIncomingScene=NO;[self.viewpresentScene:newScenetransition:reveal];我也用didMoveToView试

c++ - 点击时如何更改 Sprite 图像

我知道这可能是有史以来最容易回答的问题之一,但我已经进行了一些搜索,但似乎无法找到答案...当用户点击时如何更改Sprite图像它在Cocos2d-x中?我知道的唯一方法是使用这样的菜单图像:autobox=MenuItemImage::create("box_untapped.png","box_tapped.png");但这只会在用户点击图像时改变图像。即使在他们松开按钮后我如何让它保持改变? 最佳答案 这段代码不需要任何菜单/按钮/...但是一个TouchListener:automySprite=Sprite("A.png"