代码之家  ›  专栏  ›  技术社区  ›  Moshe

开始一个简单的Flash游戏

  •  0
  • Moshe  · 技术社区  · 14 年前

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

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

    1. 创建并调整电影剪辑的大小

    2. 放置电影剪辑

    3. 把电影拍下来

    4. 确定何时完成“坠落”并查看用户是否“抓到”了它。

    我的问题是:我如何制作,大小和位置的电影?我给了它一个“光盘”的标识符。现在怎么办?我做一个 ENTER_FRAME 事件和我的创作在那里?如何向下移动光盘?我用花呢,还有别的吗?

    我问这个主要是为了检查一下精神状况。

    3 回复  |  直到 13 年前
        1
  •  1
  •   jdecuyper    14 年前

    我会使用某种工厂级的,负责从舞台顶部随机丢弃光盘。

    除了你正确提到的,你还需要:

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

    • 定义磁盘开始下落的位置 ,它可以是随机的,也可以总是来自同一个地方。

    • 你可以 使用AS3找出是否有两个物体相撞 hitTestObject 属于 DisplayObject 上课。

    • 你们工厂班可以 start() stop() 方法。一次 开始() 被发射,无限或 ENTER_FRAME 循环启动,磁盘开始下降。如果要以特定速率创建磁盘 你可以把你的循环和 timer 按定义的间隔运行代码 . 例如,每3秒创建10个磁盘(使用主循环)并将它们放到后台。

        2
  •  0
  •   Moshe    14 年前

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

    • 生成光盘数量并随机化其位置。从以下几点开始:
    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);
       }
    
    • 同时将电影剪辑“userhand”添加到舞台。
    • 添加enterframe处理函数。
    • 填写enterframe处理程序以更新(不断增加)每个光盘的y位置。
    • 在enterframe处理程序中使用hitTestObject()来确定每个“disc”&userHand之间的命中率。
    • 将从屏幕上掉下来的所有“光盘”剪辑的位置重置为最初的随机位置。
        3
  •  0
  •   BenMorel Manish Pradhan    11 年前

    你可能想看看编程粒子。

    http://r3dux.org/2010/01/actionscript-3-0-particle-systems-3-rain-effect/

    在一个很高的水平上你会做的是。

    你需要创建一个磁盘类。

    你可以给这个类一些可变的属性,比如宽度,高度,x等等。

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

    每个磁盘实例也可以有自己的entframe,该entframe增加其y位置,直到它到达屏幕底部。然后,光盘会从舞台上取下它自己。你可以使用一个宽松的函数给它一个随机数来确定它下降的速度。

    假设其y位置大于舞台高度,取下圆盘。如果用户捕捉到它(可能使用命中测试),也将其删除。

    它真的建议看看我发布的链接。