【问题标题】:Generating random starting points for incoming objects in Flash ActionScript 3在 Flash ActionScript 3 中为传入对象生成随机起点
【发布时间】:2011-10-26 17:47:04
【问题描述】:

我们有这个游戏,您可以在舞台中间控制一个化身,以保护自己免受来袭的弹丸的伤害。如果它用手臂或腿击中他们,你会得到 +1,但如果他们击中头部或躯干,你会得到 -1。但无法弄清楚如何沿着给定的路径随机生成它们。见下图。希望它们从侧面进入,但具有相同的“目标区域”——即头部和躯干。

这是图片,无法发布图片,因为我显然没有足够的积分。

http://img80.imageshack.us/img80/517/flashobjects.jpg)

【问题讨论】:

    标签: flash actionscript-3


    【解决方案1】:

    听起来您想将每个生成的粒子的 X 值初始化为小于 0(来自左侧)或大于 stageWidth(来自右侧)。然后,您需要将它们放在朝向头部或躯干的轨迹上。

    起点的逻辑可能类似于:

    var x:int = (Math.random() > .5) ? -10 : stage.stageWidth + 10;
    var y:int = Math.random() * stage.stageHeight);
    

    粒子向角色的实际移动可以通过多种不同的方式完成。但最简单的可能是将 Event.ENTER_FRAME 事件上的每个粒子移动到更靠近它们的目标的位置。一些简单的三角函数应该可以帮助您实现目标。

    或者,您可以使用一些脚本补间来在所需的时间段内将粒子移动到它们的目的地。

    【讨论】:

    • 好答案。如果您知道起始 x/y 坐标和结束 x/y 坐标,也可以使用矢量实现而不是 trig。然后,您可以将速度设置为变量,然后将该变量用作标准化向量的标量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 2017-08-07
    • 1970-01-01
    • 2011-06-14
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多