分享
 
 
 

Flash AS3代码制作躲避碰撞的盒子-Flash

王朝数码·作者佚名  2008-11-25
窄屏简体版  字體: |||超大  

效果演示:(请用鼠标点击小球观看效果)

在这个Actionscript 3教程中,我将为你展示怎样创建一个躲避被一个球碰撞的盒子。 看上面的效果(单击那白色的球使它运动).让我们马上开始吧!

设置环境

1.创建一个新的Flash Actionscript 3影片 (340x200).

2.在舞台上画一个矩形.设置大小为20x20.

3.将矩形转换为MC.给它取一个你喜欢的名字,将注册点移到中心!

4.设连接属性中MC的类名为"Box".如果你对MC连接属性感到陌生的话,请查看 Actionscript 3 扩展类教程.

5.现在在舞台上画一个10x10的园.

6.将园转换为MC.给它取一个你喜欢的名字,将注册点移到中心!

7.设连接属性中MC的类名为"Ball".

8.从舞台上删除园和矩形.

进入 Actionsctipt9. 在第一帧输入下列Actionscript代码.

//这个数组包含所有的盒子

var boxes:Array = new Array();

//设置球的速度

var ballSpeed:Number = -4;

//循环添加8个盒子到舞台

for (var i = 0; i

//创建一个盒子

var box:Box = new Box();

//添加一个位置

box.y = 150;

box.x = box.width * i * 1.5 + 40;

//添加一个盒子到数组

boxes.push(box);

//在舞台上添加一个盒子

addChild(box);

}

//创建一个盒子并设置它的右边

var ball:Ball = new Ball();

ball.x = 320;

ball.y =155;

//使球看起来象按钮 (手形光标)

ball.buttonMode = true;

//把球添加到舞台上

addChild(ball);

//侦听用户点击球的时候

ball.addEventListener(MouseEvent.CLICK, ballClicked);

//当用户点击球时这个函数被调用

function ballClicked(e:Event):void {

//在整个动画过程中添加ENTER_FRAME

addEventListener(Event.ENTER_FRAME, enterFrameHandler);

}

//在每一帧这个函数被调用

function enterFrameHandler(e:Event):void {

//将球左移2像素

ball.x += ballSpeed;

for (var i = 0; i

//从数组获得一个盒子

var box:Box = boxes as Box;

//检测从球到盒子的x距离

var distX:Number = ball.x - box.x;

//球来自右边

if (distX 0 && ballSpeed

//把盒子推上去

box.y -= 2;

}

//球离开左边

else if (distX

//如果球没有在原来的位置则往下落

if (box.y

box.y += 2;

}

}

//球从左边来

if (distX -50 && ballSpeed 0) {

//往上推盒子

box.y -= 2;

}

//球离开右边

else if (distX 0 && ballSpeed 0) {

//如果球没在原来的位置则往下落

if (box.y

box.y += 2;

}

}

//如果球到了左边则改变方向

//或者右边边缘

if (ball.x + 5 stage.stageWidth ball.x - 5

//反转速度

ballSpeed *= (-1);

}

}

}

测试你的影片,我希望你能从这里学到一些新的东西。记住如果你有任何问题,请毫不犹豫地到论坛提问。

下面附代码供学习研究。var boxes:Array = new Array();

var ballSpeed:Number = -4;

for (var i = 0; i

var box:Box = new Box();

box.y = 150;

box.x = box.width * i * 1.5 + 40;

boxes.push(box);

addChild(box);

}

var ball:Ball = new Ball();

ball.x = 320;

ball.y =155;

ball.buttonMode = true;

addChild(ball);

ball.addEventListener(MouseEvent.CLICK, ballClicked);

function ballClicked(e:Event):void {

addEventListener(Event.ENTER_FRAME, enterFrameHandler);

}

function enterFrameHandler(e:Event):void {

ball.x += ballSpeed;

for (var i = 0; i

var box:Box = boxes[i];

var distX:Number = ball.x - box.x;

if (distX 0 && ballSpeed

box.y -= 2;

}

else if (distX

if (box.y

box.y += 2;

}

}

if (distX -50 && ballSpeed 0) {

box.y -= 2;

}

else if (distX 0 && ballSpeed 0) {

if (box.y

box.y += 2;

}

}

if (ball.x + 5 stage.stageWidth ball.x - 5

ballSpeed *= (-1);

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有