【问题标题】:Grouping Instances/ Symbols Together将实例/符号组合在一起
【发布时间】:2014-02-13 21:02:24
【问题描述】:

所以我正在开发一款游戏,如果你触摸盒子的一侧,你就会被推向那个方向。 * 例如:假设我击中了箱子的左侧,我应该被推进左侧。

我可以做到这一点的一种方法是将盒子分成 4 个实例,每个实例位于左侧、右侧、顶部和底部。 有没有办法让我嵌入实例/访问实例的某些部分等。

或者如果有更好的方法可以做到这一点,你能告诉我怎么做吗?

【问题讨论】:

  • @Atriace 您能否简要解释一下清单中缺少这个问题的内容......它有点宽泛,但我了解 OP 想要做什么。只是想知道我自己的好奇心。
  • @Kaushal:尽管这个问题很普通,但他未能展示尝试 (1) 研究,(2) 解释他已经尝试过的内容,以及 (3) 他为解决问题而编写的代码。来自stackoverflow.com/help/on-topic,“要求代码的问题必须证明对正在解决的问题有最低限度的理解。包括尝试的解决方案、它们为什么不起作用以及预期的结果。”见meta.stackoverflow.com/help/dont-ask。很高兴回答他的问题,但不鼓励提出这类问题。
  • @Atriace,谢谢,这是有道理的。不过,为了公平起见,这是“在舞台上执行”和“在代码中执行”之间的常见情况,这对于 Flash 来说有些独特。他的问题主要是关于 hr 应该往哪个方向发展,而不是直接的代码问题。

标签: actionscript-3 flash actionscript air adobe


【解决方案1】:

我想你的问题的答案是肯定的;您要做的是拥有一个包含 4 个内部 MovieClip 的容器 MovieClip,它们将成为您的命中目标。

我会进行以下设置;即使用三角形。

------------
|\   top  /|
| \      / |
|  \    /  |
|   \  /  r|
|left\/   i|
|    /\   g|
|   /  \  h|
|  /    \ t|
| /      \ |
|/ bottom \|
------------

如果您要根据坐标进行操作,正如 Adam Harte 所提到的,请像处理 9 切片网格一样处理它。如果您想象中心框过大,这将为您提供最大的命中区域。

-----------------
|   |       |   |
|   |   T   |   |
-----------------
|   |       |   |
| L |       | R |
|   |       |   |
-----------------
|   |   B   |   |
|   |       |   |
-----------------

【讨论】:

    【解决方案2】:

    当他们触摸盒子时,您可以测试盒子内触摸的 x 和 y 位置。类似这样的伪代码:

    function onTouchDown(){
        if(touchX < halfBoxWidth)
        {
            // We touched the left side, so go left.
        }
        else
        {
            // We touched the right side, so go right.
        }
    }
    

    【讨论】:

    • 顶部和底部呢?您可以使用 Y 坐标复制并粘贴它,但我总是会沿对角线移动。
    猜你喜欢
    • 2019-01-13
    • 2015-02-13
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多