开始使用简单的Flash游戏

时间:2010-11-12 18:36:48

标签: actionscript-3 actionscript flash-cs5

我想制作一个简单的游戏,其中“光盘”从屏幕顶部掉落,用户必须抓住它们。我有一个MovieClip,我希望将其调整为随机选择的三种尺寸之一。

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

  1. 创建并调整MovieClip的大小

  2. 定位MovieClip

  3. 使MovieClip失效

  4. 确定何时完成“摔倒”并查看用户是否“抓住”了它。

  5. 我的问题是:如何创建,调整MovieClip的大小和位置?我给它一个“光盘”的标识符。怎么办?我是否参加ENTER_FRAME活动并在那里创作?如何向下移动光盘?我是否使用补间,还有其他什么?

    我主要是将此视为理智检查。

3 个答案:

答案 0 :(得分:1)

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

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

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

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

  • 您可以使用属于DisplayObject类的AS3 hitTestObject方法判断两个对象是否发生冲突。

  • 您的工厂类可以使用start()stop()方法。触发start()后,将启动无限或ENTER_FRAME循环并且磁盘开始下降。如果要以特定速率创建磁盘,可以将循环与timer组合以在定义的时间间隔内运行代码。例如,每3秒创建10个磁盘(使用主循环)并将它们放到舞台上。

答案 1 :(得分:0)

您可能希望查看编程粒子。

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

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

您需要创建一个光盘类。

你可以给这个类一些变量属性,比如width,height,x等。

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

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

如果其y位置大于舞台高度,请移除光盘。如果用户捕获它(可能使用命中测试)也将其删除。

我真的建议您查看我发布的链接。

答案 2 :(得分:0)

假设你有名为'disc'的电影剪辑& 'userHand'导出到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'和&amp;之间的匹配。 'userHand'。
  • 将最初从屏幕上掉落的所有“光盘”剪辑的位置重置为随机位置。