小球快跑

赛跑的小球

 

 

游戏玩法:

整个游戏就是在玩家通过按住和抬起鼠标来控制小球围绕着数字轨迹来运动和停止,

同时还要避免与其他运动的球体发生碰撞,从而顺利过关,一旦发生碰撞则小球会自动

沿着原始路线返回.

 

程序调用caurina 缓冲类制作运动效果

 

游戏界面:

界面一:

1:变量的定义

2:使用发光效果滤镜和模糊视觉效果滤镜来做特效

3:背景声音的定义

4:定义分值和等级保存的共享对象

5:游戏开始按钮

 

界面二:

1:单纯的游戏简洁

2:游戏开始 按钮

 

界面三 游戏等级选择显示界面

  3*3 分页等级排列

 

 

按钮的状态和事件

 

1:默认第一等级是打开的,其他等级则被锁

2:玩过一个下一个等级自动打开

3:前期玩过的显示红色背景底

4:只有打开状态才可以点击进入游戏

 

在这个页面还收集所有等级信息数组

 

Path 等级路径数组,我们用等级1来说明一下结构

 1 path = new Array(
 2 
 3        new Point(140,80),
 4        new Point(220,80),
 5        new Point(220,400),
 6        new Point(140,400),
 7        new Point(140,160),
 8        new Point(100,160),
 9        new Point(100,120),
10        new Point(140,80));
11        totalSpeed = 20;
12        ballNum = 2;
13        characterForwardSpeed = 5;
14        characterBackSpeed = 10;

 

 

还是根据Point 点来操控路径,每一个拐点为一个记录点

每一个等级还设定了小球总的移动速度,移动小球的数量,前台控制小球速度和

后台小球移动速度等变量

 

根据这些变量值不同从而改变每个等级间的变化,让游戏更有可玩性

 

等级按钮的三个状态和一个点击事件:

1:被锁状态,小锁

2:解锁状态,灰色数字

3:玩过状态,红色数字

 

鼠标点击事件startLevel,当点击后进入游戏界

selectedLevel = event.currentTarget.levelNum;  获取ID

界面四:

 

 

1:在游戏界面中首先绘制当前等级中的数字背景地图

 

 1 function drawDigit() {
 2     //根据第三界面中定义的信息点描绘数字图轨迹
 3     for (var a:int=0;a<path.length-1; a++) {
 4        //笔画样式设定
 5        myDigit.graphics.lineStyle(1,0xE0E0E0, 1);
 6        //移动
 7        myDigit.graphics.moveTo(path[a].x-1,path[a].y+1);
 8        myDigit.graphics.lineTo(path[a+1].x-1,path[a+1].y+1);
 9        //一笔笔画直线
10        myDigit.graphics.lineStyle(1,0x231F20, 1);
11        myDigit.graphics.moveTo(path[a].x,path[a].y);
12        myDigit.graphics.lineTo(path[a+1].x,path[a+1].y);
13     }
14 }

 

 

 

2:在游戏中添加敌人addEnemy()

 

1:此函数中包含舞台注册逐帧函数 checkCollision  实时检测小球碰撞

  使用双循环判断 计算两两小球之间距离,如果目标球跟敌球的距离小于某个数时则宣布碰撞.

 

2:根据设定小球的数量想舞台添加,并设定其坐标属性

 

3:舞台注册鼠标按下事件characterRun  目标球运动
  舞台注册鼠标抬起事件 characterStop  目标球停止
  舞台注册鼠标小球向前跑  characterRunForward   小球移动

游戏的重点函数为: characterRunForward  用来控制小球的向前移动
                  characterRunBack
控制小球的向后移动

 

4: removeEnemy  移除所有敌

 

 1 function removeEnemy() {
 2 
 3     //根据容器中的子项数来移除所有子项
 4     for (var i = 1; i <enemyContainer.numChildren; i++) {
 5        var mcBall:* =enemyContainer.getChildAt(i);
 6            mcBall.nSpeedX = 0;
 7            mcBall.nSpeedY = 0;
 8        Tweener.addTween(mcBall,{scaleX:0,scaleY:0,time:1,delay:.5+(i*.1), transition:"easeOutBounce"});
 9     }
10 }

 

 

 

 

 

 

 

 

posted @ 2013-11-13 13:55  无名盗闪  阅读(312)  评论(0)    收藏  举报