围绕中心点的轨道对象

时间:2010-10-04 23:05:46

标签: iphone android

我试图围绕中心点绕物体运行,就像太阳和行星一样。但是我根本没有运气。任何帮助都会非常棒。谢谢。我在luna写作,我不认为这里有一个类别,但这可能只是一般代码。但如果它在错误的地方,我道歉。

local function animate(event)

    local rads = degrees * (Math.PI / 180);
    ballOne.x = 20 * Math.cos(rad);
    ballOne.y = 20 * Math.sin(rad);
    degrees = degrees + 1

end

Runtime:addEventListener("enterFrame", animate)

1 个答案:

答案 0 :(得分:3)

您可以尝试使用20.0和180.0强制它们浮点,否则您的计算结果可能最终为整数,这将无法正常工作,否则一切似乎都很好。

另外,我建议进行一次或两次单元测试。如果传入0,90,180和260,你应该得到偶数(+/- 20,0或0,20)。这将有助于您调整它并让您相信结果。

- 编辑 - 写了一个groovy版本的程序,因为我不认识你的很多代码。发现rad与rads有问题(在评论中提到)。这是你的算法的groovy转储:

float degrees=0.0
float rads = degrees * (Math.PI / 180.0);
float x = 20.0 * Math.cos(rads);
float y = 20.0 * Math.sin(rads);
degrees = degrees + 1
println x
println y

这很有效。单元测试的意思是你可以用“0.0”度设置调用方法的东西,并确保输出的x为20.0,y为0.0,然后用90调用它,你应该得到0,20(实际上你可能会得到一个轻微的浮点错误,只是测试看x是否小于.001或其他东西)

如果您使用谷歌批准的框架开发这些应用程序,我100%肯定会有一些“官方”方式进行单元测试,我强烈建议您研究一下,特别是使用动态语言单元测试绝对是至关重要的。

单元测试最重要的部分之一是您可以在开发环境中一键式运行它们。这确保了无论您添加什么代码,过去工作的所有内容仍然有效。它可以让你有信心去重构现有的代码而不用担心破坏你甚至不知道互动的东西。

大多数使用动态语言的人都认为单元测试是绝对必要的,即使在静态类型语言中,它们也非常重要,因为您的项目增长超出了微不足道的规模。