游戏简介:随机的从界面顶部下落小球,界面的底部有一个滑块,可以根据鼠标或键盘左右键而左右移动,滑块接到下落的小球则加10分,接不到小球则扣5分。
首先,创建两个影片剪辑元件:一个是小球,另一个是滑块。小球的linkage为circle,滑块的linkage为slider,其实例名为slider_mc。
第二,将两个元件从舞台中删除,并设置舞台的宽高分别为600px和400px。
第三,在时间轴上选择第一帧右键“动作”,进入动作面板,添加下列AS代码即可。
depth = 0;
allBalls = new Array();//数组,用来存储所有球,包括已下落的和已产生的
function MakeNewClip() {
clearInterval (ranID);//每次运行时,先清空之前设置的时间间隔
ran = (Math.random()*4000)+1000;//取一个1秒至5秒间的随机数
ranID = setInterval(MakeNewClip, ran);//将上面的随机数设置成每个影片出现的时间间隔
NewClip = _root.attachMovie("circle", "circle"+depth, depth++);//将元件链接为circle,实例名为circle的影片剪辑粘到主时间轴上
//由于实例名需要唯一,所以将实例名后加上一个值,每次该值都是变化的
allBalls.push(NewClip);//将影片剪辑存放到数组中
NewClip._x = Math.random()*Stage.width;//影片剪辑的x坐标
NewClip._y = -50;//影片剪辑的y坐标
NewClip.speed = (Math.random()*10)+5;//影片剪辑下落的速度
NewClip.onEnterFrame = function() {
this._y += this.speed;//this表示NewClip对象,它每次都是垂直下落speed个像素
if(this._y>Stage.height){//当该对象(即小球)的y坐标大于舞台的高度时,说明小球已经落到底部无法捕获
updateScore(-5);//此时减去5分
for(i=0;i<allBalls.length;i++){ //此时遍历数组中的对象实例
if(this==allBalls[i]){//如果数组中有已经下落的实例
allBalls[i].removeMovieClip();//则删除该实例的影片剪辑
allBalls.splice(i, 1);//将该实例从数组中删除
}
}
this.removeMovieClip();//删除该影片剪辑
}
};
}
MakeNewClip();//调用创建影片剪辑的函数
//setInterval(MakeNewClip, 1000);
_root.attachMovie("slider", "slider_mc", -1);//在主时间轴上粘贴实例名称为slider_mc 链接名为slider的元件
slider_mc._y = Stage.height-20;//此元件的纵左边为舞台的高度减去20 即让接球的滑板距离舞台底部有20像素的距离
slider_mc.onMouseMove = function() {//滑板的鼠标移动事件
this._x = _xmouse;//设置元件的x坐标为鼠标的x坐标
updateAfterEvent();//更新屏幕
};
watchKeyboard = new Object();//新建一个键盘对象
watchKeyboard.onKeyDown = function() {//键盘事件
if (Key.getCode() == Key.LEFT) {//如果按下“向左”键
slider_mc._x -= 5;//滑板向左移动5个像素
}
if (Key.getCode() == Key.RIGHT) {//如果按下“向右”键
slider_mc._x += 5;//滑块向右移动5个像素
}
};
Key.addListener(watchKeyboard);//添加事件监听
_root.createEmptyMovieClip("watchCollision", -2);//创建一个空白的影片剪辑,其实例名为watchCollision,depth为-2
watchCollision.onEnterFrame = function() {//
for (i=0; i<allBalls.length; i++) {
if (allBalls[i].hitTest(slider_mc)) {//如果存在球与滑板相撞
allBalls[i].removeMovieClip();//则移除该球的影片剪辑
allBalls.splice(i, 1);//同时在数组中删除该球的实例
updateScore(10);//这时在分数上加10
}
}
};
score=0;//分数初始化
function updateScore(amount) {//更新分数的函数 传进来的参数是添加或减去的分数
score+=amount;//总得分加上此次得分
score_txt.text="分数是:"+score;//动态文本框的显示
}
updateScore(0);//调用更新分数的函数
Mouse.hide();//隐藏鼠标
本文是个人笔记,自己留作参考的,所以不喜勿喷,嘴下留情!
转载请注明来源!