帆船动画:用鼠标将舵柄向左转,船向右转动。反之亦然

时间:2011-03-31 14:17:04

标签: actionscript-3 events object mouse rotation

我正在尝试创建一个动画,展示驾驶帆船的基本知识。这个想法是将有一个船的顶视图与舵柄和方向舵非常明显。我希望学习者能够向一个方向或另一个方向点击并拖动耕耘机,而舵柄在拖动时我希望方向舵和船旋转正确的方向。例如,我希望船离开我将舵柄推向右舷,方向舵将顺时针旋转,船将向左转。船上不需要向前运动,我认为只要船旋转就可以了。任何帮助或资源将不胜感激。

2 个答案:

答案 0 :(得分:3)

我认为你真正需要考虑的是建模。创建帆船的非UI表示。构建您的代码,以便移动分蘖(无需鼠标......仅通过模型的界面)会导致您的船模型移动。模型的参与者和属性可能包括:

  • 风向量的方向和力
  • 分蘖的方向
  • 帆的方向
  • 分蘖的方向
  • 船矢量的方向和力
  • 帆的尺寸/形状
  • 船的长度
  • 船与水之间的摩擦系数
  • 船的质量
  • 波浪的大小

当然,你进一步深入了解模型的因素会越来越多地改进它的行为。我建议添加单元测试来驱动此行为。停止在任何精细程度上对模型的保真度最有意义。

一旦你有一个好的模型,将它连接到图形资产变得更加简单和直接。例如,您可以使用旋转变换根据模型中显示的角度旋转船只或分蘖图形。帆的角度或移动水动画的速度也是如此。

这种方法允许您设计与船的行为分开的动画。

祝你好运!

答案 1 :(得分:0)

嗯 - 只要你知道以编程方式转换displayObjects的基础知识,这不应该太难做到

我可能会这样:

为您的不同元素创建图形。您基本上将控制这些对象的旋转属性,因此需要在旋转点正确设置转换点。

设置完成之后,就像将鼠标按下事件监听器添加到分蘖一样简单,并测试mouseX中的delta变化,直到注册鼠标为止。

在动画循环期间(当鼠标按下时),只需在三个对象上应用不同程度的旋转(基于mouseX delta更改)。 IE:如果向左拖动鼠标,旋转舵柄使其匹配,方向舵朝向相反方向,父母(船)也向左旋转。

这显然是非常简陋的,但应该为你的意图创造一个合理的类比......

希望有所帮助