·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]坚持30秒,as3小游戏源代码示例

时间:2013-03-01 10:55cnblogs.com
[AS3]坚持30秒,as3小游戏源代码示例,flash小游戏源代码

[AS3]坚持30秒,as3小游戏源代码示例

  1. package 
  2. { 
  3.     import flash.display.MovieClip; 
  4.     import flash.display.Sprite; 
  5.     import flash.events.Event; 
  6.     import flash.events.KeyboardEvent; 
  7.     import flash.ui.Keyboard; 
  8.      
  9.     public class Main extends Sprite 
  10.     { 
  11.         private var ballXSpeed:Number = 0;            //小球X轴速度 
  12.         private var ballYSpeed:Number = 0;            //小球Y轴速度 
  13.         private var starNum:int = 10;                //星星数量 
  14.         private var starArray:Array;    //保存星星的数组 
  15.         private var ball:mcBall; 
  16.          
  17.         public function Main() 
  18.         { 
  19.             init(); 
  20.         } 
  21.         private function init():void 
  22.         { 
  23.             starArray = new Array(); 
  24.             ball = new mcBall(); 
  25.             ball.x = stage.stageWidth / 2; 
  26.             ball.y = stage.stageHeight / 2; 
  27.             this.addChild(ball); 
  28.              
  29.             //CuPlayer.com提示:放置小星星 
  30.             for(var i:int = 0; i < starNum; i++) 
  31.             { 
  32.                 makeStars(); 
  33.             } 
  34.              
  35.             //CuPlayer.com提示:按键改变小球移动速度 
  36.             stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler); 
  37.             stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUpHandler); 
  38.              
  39.             //球的移动事件 
  40.             stage.addEventListener(Event.ENTER_FRAME, moveBall); 
  41.              
  42.             //CuPlayer.com提示:小星星的移动事件 
  43.             stage.addEventListener(Event.ENTER_FRAME, moveStar); 
  44.         } 
  45.          
  46.         private function onKeyDownHandler(evt:KeyboardEvent):void 
  47.         { 
  48.             if(evt.keyCode == Keyboard.LEFT) 
  49.             { 
  50.                 ballXSpeed = -4; 
  51.             } 
  52.             else if(evt.keyCode == Keyboard.RIGHT) 
  53.             { 
  54.                 ballXSpeed = 4; 
  55.             } 
  56.             else if(evt.keyCode == Keyboard.UP) 
  57.             { 
  58.                 ballYSpeed = -4; 
  59.             } 
  60.             else if(evt.keyCode == Keyboard.DOWN) 
  61.             { 
  62.                 ballYSpeed = 4; 
  63.             } 
  64.         } 
  65.          
  66.         //CuPlayer.com提示:移动小星星 
  67.         private function moveStar(evt:Event):void 
  68.         { 
  69.             for(var i:uint = 0; i < starArray.length; i++) 
  70.             { 
  71.                 starArray[i].x += starArray[i].speedX; 
  72.                 starArray[i].y += starArray[i].speedY;     
  73.                  
  74.                 if(starArray[i].x >= stage.stageWidth + 50 || starArray[i].x <= -50 || starArray[i].y >= stage.stageHeight +50 || starArray[i].y <= -50) 
  75.                 { 
  76.                     removeChild(starArray[i]); 
  77.                     starArray.splice(i,1); 
  78.                     i -= 1; 
  79.                     makeStars(); 
  80.                 } 
  81.             } 
  82.              
  83.              
  84.         } 
  85.          
  86.         private function onKeyUpHandler(evt:KeyboardEvent):void 
  87.         { 
  88.             ballXSpeed = 0; 
  89.             ballYSpeed = 0; 
  90.         } 
  91.          
  92.         //CuPlayer.com提示:移动小球 
  93.         private function moveBall(evt:Event):void 
  94.         { 
  95.             ball.x += ballXSpeed; 
  96.             ball.y += ballYSpeed; 
  97.              
  98.             //如果碰到墙壁就反弹,直接改变速度的方向 
  99.             if(ball.x >= stage.stageWidth - ball.width / 2) 
  100.             { 
  101.                 ball.x = stage.stageWidth - ball.width / 2 - 0.1; 
  102.             } 
  103.             else if(ball.x <= 0) 
  104.             { 
  105.                 ball.x = 0; 
  106.             } 
  107.             else if(ball.y >= stage.stageHeight - ball.height / 2) 
  108.             { 
  109.                 ball.y = stage.stageHeight - ball.height / 2 - 0.1; 
  110.             } 
  111.             else if(ball.y <= 0) 
  112.             { 
  113.                 ball.y = 0; 
  114.             } 
  115.              
  116.             //判断小球是否和星星碰撞 
  117.             for(var i:uint = 0; i < starArray.length; i++) 
  118.             { 
  119.                 if(ball.hitTestObject(starArray[i])) 
  120.                 { 
  121.                     trace("很不幸!你撞到星星了!"); 
  122.                     stage.removeEventListener(Event.ENTER_FRAME,moveBall); 
  123.                     stage.removeEventListener(Event.ENTER_FRAME, moveStar); 
  124.                     break; 
  125.                 } 
  126.             } 
  127.         } 
  128.          
  129.         //放置小星星 
  130.         private function makeStars():void 
  131.         { 
  132.             var star:Star = new Star(); 
  133.              
  134.              
  135.             //随机产生星星初始方向(值范围0-3) 
  136.             var starDirection:int = Math.floor(Math.random() * 4); 
  137.             var temp:int = Math.floor(Math.random() * 2);    //0,1 
  138.             var xyDirection:int = (temp == 0) ? 1 : -1;        //随机获得往x或y方向飞 
  139.              
  140.             switch(starDirection) 
  141.             { 
  142.                 //往下飞 
  143.                 case 0: 
  144.                     star.x = Math.random() * stage.stageWidth; 
  145.                     star.y = 0; 
  146.                     star.speedX = Math.random() * 4 * xyDirection; 
  147.                     star.speedY = Math.random() * 4; 
  148.                     break; 
  149.                 //CuPlayer.com提示:往上飞 
  150.                 case 1: 
  151.                     star.x = Math.random() * stage.stageWidth; 
  152.                     star.y = stage.stageHeight; 
  153.                     star.speedX = Math.random() * 4 * xyDirection; 
  154.                     star.speedY = -Math.random() * 4; 
  155.                     break; 
  156.                 //CuPlayer.com提示:往左飞 
  157.                 case 2: 
  158.                     star.x = stage.stageWidth; 
  159.                     star.y = Math.random() * stage.stageHeight; 
  160.                     star.speedX = -Math.random() * 4; 
  161.                     star.speedY = Math.random() * 4 * xyDirection; 
  162.                     break; 
  163.                 //往右飞 
  164.                 case 3: 
  165.                     star.x = 0; 
  166.                     star.y = Math.random() * stage.stageHeight; 
  167.                     star.speedX = Math.random() * 4; 
  168.                     star.speedY = Math.random() * 4 * xyDirection; 
  169.                     break; 
  170.             } 
  171.              
  172.             this.addChild(star); 
  173.             starArray.push(star); 
  174.              
  175.         } 
  176.     } 
  177. } 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器