【发布时间】:2016-02-18 13:16:48
【问题描述】:
我想做一个应用程序,苹果从树上掉下来,用户可以用篮子接住它。当我触摸屏幕时,篮子开始移动,所以它朝那个方向移动——但速度很慢。为此,我使用
-(void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
UITouch* t = [touches anyObject];
CGPoint p = [t locationInView:self.view];
if(p.y <self.view.frame.size.height-50)
{
p.y = self.view.frame.size.height-50;
}
CABasicAnimation *basketmovementAnimation = [CABasicAnimation animationWithKeyPath:@"position"];
[basketmovementAnimation setFromValue:[NSValue valueWithCGPoint:[[self.basketLayer presentationLayer]position]]];
[basketmovementAnimation setDuration:3.0];
[self.basketLayer setPosition:p];
[self.basketLayer addAnimation:basketmovementAnimation forKey:@"basket"];
}
那么问题是如何在运动过程中获取“篮子”的坐标?我需要它来与落下的苹果的坐标进行比较。 提前致谢
【问题讨论】:
-
这就是像 SpriteKit 这样的游戏框架的用途。虽然您可以使用 UIKit 创建游戏,但 SpriteKit 可以让您确定呈现给用户的每一帧的视图位置,并让您定义苹果和篮子等对象之间的碰撞交互。
-
@ZeMoon 谢谢,但目前我没有使用这些框架,只是CABasicAnimation,在这种情况下如何定义它?
标签: ios objective-c core-animation calayer cabasicanimation