Actionscript 3 开始一个简单的Flash游戏

Actionscript 3 开始一个简单的Flash游戏,actionscript-3,actionscript,flash-cs5,Actionscript 3,Actionscript,Flash Cs5,我想做一个简单的游戏,其中“光盘”从屏幕顶部落下,用户必须抓住它们。我有一个MovieClip,我想调整到三个随机选择的大小之一 在我看来,有四件事必须做 创建电影剪辑并调整其大小 定位电影剪辑 让电影界大跌眼镜 确定它何时完成“坠落”,并查看用户是否“抓住”了它 我的问题是:如何创建、调整和定位电影唇?我给了它一个“disc”的标识符。现在怎么办?我是否要创建一个ENTER\u FRAME事件并在那里进行创建?如何向下移动光盘?我要用tweens还是别的什么 我问这个主要是为了检查是否正常。我

我想做一个简单的游戏,其中“光盘”从屏幕顶部落下,用户必须抓住它们。我有一个MovieClip,我想调整到三个随机选择的大小之一

在我看来,有四件事必须做

  • 创建电影剪辑并调整其大小

  • 定位电影剪辑

  • 让电影界大跌眼镜

  • 确定它何时完成“坠落”,并查看用户是否“抓住”了它

  • 我的问题是:如何创建、调整和定位电影唇?我给了它一个“disc”的标识符。现在怎么办?我是否要创建一个
    ENTER\u FRAME
    事件并在那里进行创建?如何向下移动光盘?我要用tweens还是别的什么


    我问这个主要是为了检查是否正常。

    我会使用某种工厂类,负责从舞台顶部随机放置光盘

    除了您正确提到的内容外,您还需要:

    • 定义下落速度是否恒定,您可能需要一些加速度。要向下移动对象,可以使用本机tween方法,您需要将其应用于每个被丢弃的磁盘

    • 定义磁盘将从何处开始下落,它可以是随机的,也可以总是从同一个地方落下

    • 使用属于
      DisplayObject
      类的AS3方法,可以找出两个对象是否发生碰撞

    • 工厂类可以有一个
      start()
      stop()
      方法。启动
      start()
      后,将启动无限或
      ENTER\u FRAME
      循环,磁盘开始下落。如果要以特定速率创建磁盘,可以将循环与循环结合起来,以定义的间隔运行代码。例如,每3秒钟创建10个磁盘(使用主循环)并将它们放到舞台上


    您可能想看看编程粒子

    在一个非常高的层次上,你会做的是

    您需要创建一个disc类

    您可以给这个类一些可变属性,如宽度、高度、x等

    在主类的enter frame中,您将添加一个enterframe函数,该函数创建光盘的新实例,并为每个属性传递随机值

    光盘的每个实例也可以有自己的entframe,它会增加其y位置,直到到达屏幕底部。然后,光盘将从舞台上移除自身。您可以使用一个缓和函数将随机数传递给它,以确定其下降的速率

    如果其y位置大于工作台高度,则取出光盘。如果用户捕捉到它(可能使用命中测试),也将其删除


    它确实建议您看看我发布的链接。

    假设您已将名为“disc”和“userHand”的MovieClips导出到actionscript中,我将用以下方式对其进行总结:

    • 生成光盘数量并随机化其位置。从以下内容开始:
    var n:int=30//光碟总数
    
    对于(i:int=0;iAt每秒30帧),将有两张多张光盘掉落!
    var n:int = 30; //Total no of Discs
    
    for(i:int=0;i<n;i++) 
       {
       var mc:disc = new disc();
       mc.x=Math.random()*stage.width(); //to scatter the discs across the stage 
       mc.y=-mc.height;  //initially hide out a disc
       addchild(mc);
       }