如何设置 x 和 y 可以移动多少movieclip 的最大/限制?

Posted

技术标签:

【中文标题】如何设置 x 和 y 可以移动多少movieclip 的最大/限制?【英文标题】:How to set a max/limit on how much a movieclip can be moved by x and y? 【发布时间】:2019-08-19 19:36:17 【问题描述】:

我正在制作一个 Create-a-Character。其中一个功能是能够调整面部特征的位置。例如可以上下移动鼻子 (通过箭头按钮,例如:1点击向上按钮,将鼻子向上移动一点点。)

但显然我不希望眼睛、鼻子或嘴唇漂浮在脸外,或者鼻子最终长在额头上,这会很奇怪,哈哈。

那么我该如何编写代码以使用户只能在所选方向上移动影片剪辑一定次数?

【问题讨论】:

如果你使用startDrag()会有一个限制矩形,否则你需要手动将约束附加到一个对象上,并在移动时检查它们。 您可以继承 MovieClip 并覆盖 xy 的设置器。不确定这是否适用于 startDrag(...) 但您可以尝试解决。 【参考方案1】:

如果您只使用箭头按钮来移动对象,这非常容易。单击按钮后,检查对象的位置并在需要时移动它。基本示例:

// if arrow up clicked
if (nose.y > 100)
nose.y -= 2

// if down arrow clicked
if (nose.y < 140)
nose.y += 2

x 轴也一样,显然,数字 100 和 140 可以是任何你想要的。这意味着,在这些点之间移动对象。

【讨论】:

【参考方案2】:

用户 987 的答案是正确的,但是如果您的按钮以更快的速度移动对象,例如 +-5,则将 +-2 设置为偏移量可能不会将其放回边界。它会在之后的每一帧中自行校正 +-2,不考虑用户是否继续按住按钮以尝试进一步超出边界。鼻子会继续滑得更远。

实现这一点的更好方法是立即将鼻子设置回边界的边缘。

if (nose.y > 140) 
  nose.y = 140;

【讨论】:

以上是关于如何设置 x 和 y 可以移动多少movieclip 的最大/限制?的主要内容,如果未能解决你的问题,请参考以下文章

如何移动线形对象

括号匹配方案

20181102 T1 相遇

机器学习:移动阈值

在Carto移动SDK中获取触摸的MapTile的x和y像素

如何将 TextView 移动到 relativeLayout 中的 x 和 y