【问题标题】:Simple click and hit flash game简单的点击和点击Flash游戏
【发布时间】:2018-09-08 01:57:10
【问题描述】:

我正在尝试创建一个简单的游戏,比如打一个痣,我想要的不是痣,而是让矩形在屏幕上快速出现和消失,玩家必须点击更多矩形,他点击更多他的分数增加。

我认为这是一个相当简单的游戏,但我的问题是:

当计时器减少时,我如何make the rectangles appear and disappear on screen at random position also at increasing speeds?即矩形出现和消失的速度随着时间的减少而增加,当玩家开始玩 30 秒时有一个倒计时时间。

import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.Event;


var inc:Number = 1;
var gogo:Timer = new Timer(inc*1000);
var val:Number = 30;
var counter = val;
var time2:Timer = new Timer(1000+speed);
var speed:Number = 50;

timee.text = counter;

box.addEventListener(MouseEvent.CLICK, st);

function st(event:MouseEvent):void
{
    gogo.start();
    time2.start();

}

gogo.addEventListener(TimerEvent.TIMER, res);

function res(ev:TimerEvent):void

{
    if(counter == 0){
        gogo.stop();
    }else{
        val = val - inc;
        counter = val;
        timee.text = counter;
    }
}

stage.addEventListener(Event.ENTER_FRAME, yea);

function yea(e:Event):void{
    speed += 50;
}

【问题讨论】:

  • 这是我的代码,到目前为止,我什至遇到问题,因为我试图随着时间的增加而提高计时器速度,并且在每次滴答时都会改变矩形的 x 和 y 位置,因此会以相同的方式工作,并且随着时间的增加滴答声速度增加,因此随着时间的推移矩形出现得更快

标签: actionscript-3 flash actionscript


【解决方案1】:

在我看来,您需要一个 math.random() 方法。 explained here

我个人会让每个成功的“击中”将“blinkSpeed”变量降低一定的秒数或百分比,并将该变量用作我的随机输入“最大”数。这样一来,它会减少他们玩游戏时自动可用的时间。

【讨论】:

    【解决方案2】:

    你好 嗯,这不会太难!这是一个线索。

    Step1:创建一个新的movieclip

    Step2:右键单击库中的影片剪辑。点击属性。选中“为 ActionScript 导出”复选框。将类命名为 MyEnemy(例如)。

    第 3 步:转到框架并拉出 Actions 窗口。
    现在把这段代码放进去:

    var mc:MyEnemy= new MyEnemy() // creates a instance of the movieclip.
    addChild(mc); // adds the movie clip to the stage.
    

    第 4 步:现在我们已经向舞台添加了一个新的影片剪辑。要将它添加到舞台中的随机 x 位置,您需要利用 mc 的 x 和 y 字段以及 Math.random() 函数。

    Math.random() 示例:

    var randomThing:Number = Math.random() * 100  // returns a number between n, where 0 <= n < 100
    

    现在,例如,我们需要相对于舞台的 x 和 y 值,您必须将 Math.random() 乘以舞台的宽度。如下:

     var randomX:Number = Math.random() * stage.stageWidth // returns a number between n, where 0 <= n < stage.stageWidth
    
     var randomY:Number = Math.random() * stage.stageWidth // returns a number between n, where 0 <= n < stage.stageWidth
    

    还有!神奇的最终代码是:

     mc.x = randomX;
     mc.y = randomY;
    

    编辑 1:要添加多个“mc”电影剪辑到舞台,我们将使用循环,请执行以下操作:

       stage.addEventListener(Event.ENTER_FRAME, doSimple);
       function doSimple (ev:Event) {
       var mc:MyEnemy = new MyEnemy();
       var randomX:Number = Math.random() * stage.stageWidth // returns a number between n, where 0 <= n < stage.stageWidth
       var randomY:Number = Math.random() * stage.stageWidth // returns a number between n, where 0 <= n < stage.stageWidth
    
    
         for (var i:Number=1; i<=10;i++){ //i is a number, you can discard the 'i<=10' if you want an infinite loop. 
    
         addChild(mc);
         } 
         mc.x = randomX; 
         mc.y = randomY;
         trace("yes");
         }
    

    结论:期待您的反馈!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-05
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多