菜鸟教程小白 发表于 2022-12-12 22:16:33

ios - Sprite 套件移动 Sprite


                                            <p><p>我制作了这个可以抓取和移动的 Sprite 。
我的问题是我希望能够“抛出” Sprite 。意思是,当我释放 Sprite 时,我希望它继续朝着我移动它的方向前进。就像扔球一样。</p>

<p>我该怎么办?</p>

<pre><code>@implementation NPMyScene
{
    SKSpriteNode *sprite;
}

-(id)initWithSize:(CGSize)size
{
    if (self = )
    {
      self.backgroundColor = ;
      sprite.physicsBody = ;

      sprite.physicsBody.dynamic = YES;
      self.scaleMode = SKSceneScaleModeAspectFit;

      sprite = ;
      sprite.position = CGPointMake(CGRectGetMidX(self.frame),
                                    CGRectGetMidY(self.frame));

      sprite.physicsBody.velocity = self.physicsBody.velocity;
      sprite.physicsBody.affectedByGravity = false;
      sprite.physicsBody.dynamic = true;
      sprite.physicsBody.friction = 0;
      ;

      ;

      ;
    }
    return self;
}



-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
;
}



-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    locationInNode:self]duration:0.21]];
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果您正在谈论将物理应用于球,那么您需要更深入地思考 Sprite Kit 如何处理物理。</p>

<p>当您指定“moveTo” Action 时,您实际上并没有使用 Sprite 套件的物理引擎。您只是指定一个点来为该 Sprite 设置动画。</p>

<p>您应该做的就是将 Sprite 的位置附加到您的手指上,因为它在屏幕上四处移动,如下所示:</p>

<pre><code>-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
   sprite.position = [ locationInNode:self];
}
</code></pre>

<p>然后当手指抬起时,你需要计算手指刚刚移动的方向和速度,并使用 <code>applyForce< 对 Sprite 的物理体施加适当的 <code>force</code>/code> 方法:</p>

<pre><code>;
</code></pre>

<p>您将需要弄清楚如何计算要施加的力,但可以尝试使用 applyForce 方法并查看您能够从 touchMoved: 事件中获取哪些信息来帮助您施加该力。希望对您有所帮助。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios -Sprite 套件移动 Sprite ,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23628155/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23628155/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Sprite 套件移动 Sprite