我正在搜索示例代码,通过使用触摸绘制贝塞尔曲线,如果任何人有链接或示例代码,请帮助我。我正在开发用于飞行控制的游戏,我必须沿着用户用手指绘制的路径移动我的ccsprite
编辑:感谢建议,现在我正在使用CAShapeLayer和CAKeyframeAnimation.now制作曲线我需要删除曲线一个用户通过我们的it.like在filght控制应用程序如果ccsprite沿着路径移动背面路径被删除像那个,非常感谢答案 0 :(得分:1)
使用两个端点和两个锚点绘制贝塞尔曲线。使用此信息绘制贝塞尔曲线非常简单。从手绘曲线中获取这些点称为矢量化(图像跟踪)。我是一项非常复杂的任务。
我认为通过使用这样的简单算法可以获得更好的结果:
编辑:
我刚检查了飞行控制视频,我会这样做。一旦用户按下一个,就选择它。然后用户开始绘图,逐点绘制点,尽可能靠近用户手指(运动受平面转弯半径限制)。这将记录一系列步骤。每个步骤由其角度定义(我认为速度是恒定的),这个角度必须等于前一个+/-转动能力。
使用简单的三角法计算x,y坐标。
看看这个: How to make a sprite point at the mouse. XNA C#
您可以在https://gamedev.stackexchange.com/上找到更好的帮助,确保有人准备好粘贴类似于您需要的代码。我多年前在阿米斯Amigo上做过这个,但是我无法将代码粘贴到这里,抱歉:)
答案 1 :(得分:0)
#include <math.h>
CGFloat radius = 100;
//CGFloat pi = 3.1415927; //comes for free in math.h
UIBezierPath *basecircle = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0,0,radius*2,radius*2)];
[[UIColor blackColor] set];
[basecircle fill];
这是绘制bezierPath的代码。您需要在drawRect方法中实现它。 希望它有所帮助。