ARKit基础(五)——AR动画效果

上一节中已经接触过CABasicAnimation

-(void)cupMoveTo:(SCNVector3) position{
    CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"transform.translation"];
    animation.toValue=[NSValue valueWithSCNVector3:position];
    animation.removedOnCompletion=NO;
    animation.duration=2;
    animation.fillMode=kCAFillModeForwards;
    [cupNode addAnimation:animation forKey:@"move"];
    
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        cupNode.position= position;
    });
}

这里再介绍一个旋转动画效果

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    // NSLog(@"touch the screen");
    UITouch *touch=[touches anyObject];
    CGPoint point = [touch locationInView:[touch view]];
    
    SCNVector3 planePos=[self worldPositionFromScreenPosition:point];
    
    if (planePos.x*planePos.x+planePos.y*planePos.y+planePos.z*planePos.z>3) {
        [shipNode removeFromParentNode];
        
        if (shipNode==nil) {
            SCNScene *scene = [SCNScene sceneNamed:@"art.scnassets/lamp/lamp.scn"];
            shipNode = scene.rootNode.childNodes[0];
            shipNode.position = SCNVector3Make(0, 0, -1.5);
        }
        
        SCNNode *node1 = [[SCNNode alloc] init];
        node1.position = planePos;
        [sceneView.scene.rootNode addChildNode:node1];
        [node1 addChildNode:shipNode];
        
        CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"rotation"];
        rotationAnimation.duration = 15;
        rotationAnimation.toValue = [NSValue valueWithSCNVector4:SCNVector4Make(0, 1, 0, M_PI * 2)];
        rotationAnimation.repeatCount = FLT_MAX;
      
        [node1 addAnimation:moonRotationAnimation forKey:@"rotation around"];
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,734评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,573评论 5 13
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,251评论 25 709
  • 男: ①日支力强为用神,财星纯正、旺盛。 ②身旺,见食、伤生财。 ③身旺,见厚财生官。 ④身寒,日支见火。 ⑤身燥...
    运安阁主阅读 1,310评论 0 0
  • “他叫什么呢?他到底叫什么呢?” 其实夏令营中有许许多多的老师来给我们上课,来教会我...
    沈迁阅读 1,886评论 0 0

友情链接更多精彩内容