也是从网上看来的,这里记录一下 原理是利用贝塞尔曲线弓箭的旋转来造成弓箭的抛物线效果。 贝赛尔曲线: ccBezierConfig bezier;bezier.controlPoint_1 = start;bezier.controlPoint_2 = ccp(start.x+(end.x-start.x)*0.5,start.y+(end.y-start.y)*0.5+100)
也是从网上看来的,这里记录一下
原理是利用贝塞尔曲线+弓箭的旋转来造成弓箭的抛物线效果。
贝赛尔曲线:
ccBezierConfig bezier; bezier.controlPoint_1 = start; bezier.controlPoint_2 = ccp(start.x+(end.x-start.x)*0.5,start.y+(end.y-start.y)*0.5+100); bezier.endPosition = ccp(end.x, end.y); float duration = 1.0f; CCBezierTo *actionBezier = CCBezierTo::create(duration,bezier);
然后是旋转动画:
float angle = 45.0f; CCRotateTo *actionRotate =CCRotateTo::create(duration,angle);
CCSpawn* actionSpawn = CCSpawn::createWithTwoActions(actionBezier,actionRotate);
但是这样做了之后,感觉射箭效果仍然不理想,毕竟是投机取巧的方法。为了优化视觉效果,可以调整动画播放的速度。
Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务