精灵以抛物线方式从位置(x, y) 跳转到位置(width-x, y)

Posted

技术标签:

【中文标题】精灵以抛物线方式从位置(x, y) 跳转到位置(width-x, y)【英文标题】:Sprite jump from position(x, y) to position(width-x, y) in a parabolic way 【发布时间】:2013-06-15 00:44:23 【问题描述】:

我正在研究 Cocos2D,我需要让精灵以抛物线方式从 position(x, y) 跳转到 position(width-x, y)。这是我第一次从事游戏开发工作。

如何制作从一侧跳到另一侧的动画?

点击屏幕时我当前的一段代码

- (void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event

    CGSize screenSize = [[CCDirector sharedDirector] winSize];

    if(!self.anim.flipY)
        self.anim.position = ccp(screenSize.width - self.anim.position.x, self.anim.position.y);
        self.anim.flipY = true;
    
    else
        self.anim.position = ccp(screenSize.width - self.anim.position.x, self.anim.position.y);
        self.anim.flipY = false;
    


我在论坛上看到,它需要使用重力和速度?有什么提示吗?我几乎没有想法!

【问题讨论】:

在这种情况下,您必须使用高中数学,您必须找到抛物线路径上的点。为此,您必须考虑抛物线的基本原理。 216.253.94.53/Algebra/Graphing/Basics/basics.html 基本检查此链接。如果您不明白,请告诉我。 【参考方案1】:

我不确定这是否是您需要的,但您可以使用动作进行精灵跳跃。

// Create a CCJumpTo action.
CCJumpTo *jumpAction = [CCJumpTo actionWithDuration:2.0 position:ccp(100,100) height:50 jumps:1];
// Tell your sprite to run our action.
[mySprite runAction:jumpAction];

还有CCJumpBy

它们具有抛物线风格。玩弄height 参数。

【讨论】:

我不认为,CCJumpTo 或 CCJumpBy 都会给出抛物线路径。 实际上,这将始终给出 x=y^2 抛物线路径。如果您想要 x = -y^2 或 y = x^2 或 y = -x^2 ,那么您将不会得到通过这个...我们会得到其他抛物线路径吗?

以上是关于精灵以抛物线方式从位置(x, y) 跳转到位置(width-x, y)的主要内容,如果未能解决你的问题,请参考以下文章

如何显示抛物线运动以及如何在 Cocos2D 中找到 Sprite 的最终位置 [关闭]

页面调用数据,并且刷新的时候,如何保持你的查看数据的位置不变,而不会跳转到开始位置

微信小程序加购动画

微信小程序加购动画

微信小程序加购动画

精灵在错误的位置生成