早教吧 育儿知识 作业答案 考试题库 百科 知识分享

AS3.0,在满足某个条件下,就生成一个随机位置,随机运动的小球。要求小球在舞台上匀速直线运动,碰到边界就弹回。但每个小球的速度都不一样,而且出现的位置也要随机。要求能重复

题目详情
AS3.0,在满足某个条件下,就生成一个随机位置,随机运动的小球。
要求小球在舞台上匀速直线运动,碰到边界就弹回。但每个小球的速度都不一样,而且出现的位置也要随机。要求能重复生成小球,越来越多。该如何用代码实现呢?
▼优质解答
答案和解析
首先,在库里有一个小球元件,元件中心就是小球的中心,然后输一下代码;
var sw:Number = 550; //Stage Widht,舞台宽,自定
var sh:Number = 400; //Stage Height,舞台高,自定


function creatBall():void{
//创建小球
var ball:Ball = new Ball();
//随机位置
ball.x = Math.random()*sw;
ball.y = Math.random()*sh;
//随机速度和方向
Math.random()>0.5?ball.speedX = Math.random()*5+1 : ball.speedX = -1 * Math.random()*5+1
Math.random()>0.5?ball.speedY = Math.random()*5+1 : ball.speedY = -1 * Math.random()*5+1
//因为小球的坐标原点是小球的中心,所以用该函数用来调整小球位置,防止移出边界
adjustBall(ball);
//添加小球到显示列表
addChild(ball);
//用ENTER_FRAME侦听器使小球运动
ball.addEventListener(Event.ENTER_FRAME,moveBall);
}

function adjustBall(mc:MovieClip):void{
if(mc.x > sw-mc.width/2){mc.x = sw-mc.width/2;}
if(mc.x < mc.width/2){mc.x = mc.width/2};
if(mc.y > sh-mc.height/2){mc.y = sh-mc.height/2;}
if(mc.y < mc.height/2){mc.y = mc.height/2;}
}

function moveBall(evt:Event):void{
//改变小球的坐标让小球运动
evt.target.x += evt.target.speedX;
evt.target.y += evt.target.speedY;
//检测小球是否碰到舞台边界
if(evt.target.x >= sw-evt.target.width/2 || evt.target.x <= evt.target.width/2){
evt.target.speedX *= -1;
}
if(evt.target.y >= sh-evt.target.height/2 || evt.target.y <= evt.target.height/2){
evt.target.speedY *= -1;
}

}




最后,在“满足某个条件下”调用creatBall函数就行了。
看了 AS3.0,在满足某个条件下...的网友还看了以下:

进行压条时,预先将要埋入土中的枝条中部的树皮剥下去半圈,其目的是()A.刺激枝条生长B.刺激枝条发  2020-05-16 …

一工厂共有6条生产线生产某种机器设备,每条生产线每月可生产500台,该厂计划从今年1月开始对6条生  2020-06-23 …

美国当代历史学家斯塔夫里阿诺斯在《全球通史:1500年以后的世界》中指出:“20世纪30年代是萧条  2020-07-06 …

1,机床厂去年生产机床2000台,今年比去年超产了10分之一,今年生产机床———台.2,一修路队要  2020-07-19 …

生产线效率问题求指导我厂有两条生产线,一条机芯,一条组装.机芯28人标准产量(700/时),日产(  2020-07-21 …

原核生物或病毒难道不是有机物?在人工合成第一类有机物尿素之前,科学界认为只有生物可以产生有机物,当时  2020-11-15 …

进行压条时,预先将要埋入土中的枝条中部的树皮剥下去半圈,其目的是()A.刺激枝条生长B.刺激枝条发芽  2020-11-21 …

压条为什么要刻伤植株?进行压条时,预先将要埋入土中的部分划破或剥去半圈树皮,其目的是?1刺激枝条生长  2020-11-22 …

昆仑润滑油公司依靠自身强大的研发能力,将世界领先的有机——无机复合纳米铜技术,节能环保的高科技配方普  2020-12-02 …

进行压条时,预先将要埋入土中的枝条中部的树皮剥下去半圈,其目的是()A.刺激枝条生长B.刺激枝条发芽  2021-01-06 …