我正在尝试使用Xcode为iPhone应用程序创建效果,但不知道它叫什么。

我将尽我所能描述它:

  • 目标是在屏幕上滑动一个球以击中目标
  • 用户不应该一直拖动它,因为那样太容易了
  • 用户释放触摸后,球才应开始移动
  • 用户“滑动”对象的速度越快,它应该移动的越快

这是我可以在Xcode中使用的现有效果吗?

谢谢。

===============>>#1 票数:2 已采纳

问:

这是我可以在Xcode中使用的现有效果吗?

答:没有

但是,一种方法是从“ 轻弹 ”手势创建CGVector 然后将向量作为脉冲力施加到您“ 轻弹 ”的对象上。 以下是与SpriteKit一起使用的,但是从“ 轻弹 ”手势获取矢量的原理也可以用于其他框架。

#define FLICK_SCALAR 0.5 // tweak this to alter sensitivity

我们需要一个辅助结构-

typedef struct TouchData {
CGPoint point;
NSTimeInterval time;
} TouchData;

和财产-

@property TouchData touchOriginData;

// Touch Handling
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    // store the start data
    for (UITouch *touch in touches) {
        _touchOriginData.point = [touch locationInNode:self];
        _touchOriginData.time = [touch timestamp];
    }
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    // store the end data
    TouchData touchEndData;
    for (UITouch *touch in touches) {
        touchEndData.point = [touch locationInNode:self];
        touchEndData.time = touch.timestamp;
    }
    // calculate the impulse vector from TouchData structs
    NSTimeInterval timeTaken = touchEndData.time - _touchOriginData.time;
    CGFloat vector_x = (touchEndData.point.x - _touchOriginData.point.x) / timeTaken * FLICK_SCALAR;
    CGFloat vector_y = (touchEndData.point.y - _touchOriginData.point.y) / timeTaken * FLICK_SCALAR;
    CGVector impulseVector = CGVectorMake(vector_x, vector_y);
    // fire projectile node
    [self someMethodThatFiresWithVector:impulseVector];
}

===============>>#2 票数:0

我会说是沙狐球般的物理学。 查看cocos2d了解物理和精灵处理。 似乎有人使用的版本为http://www.cocos2d-iphone.org/forums/topic/an-interesting-and-free-game-hishuffle/

===============>>#3 票数:0

它称为弹弓效果,您可以通过使用游戏开发框架(例如Cocos2dSpriteKit)来实现

Cocos2D教程链接

SpriteKit教程链接

  ask by S.D translate from so

未解决问题?本站智能推荐: