制作flash cs的简单小游戏

    xiaoxiao2021-04-19  121

    以flash cs6为例制作小游戏。 文件素材可以从图片上截图下来之后,稍微用ps处理下就行了。 需要的有: 1.一个背景板。2.气球。3.齿轮。 新建一个Game.as文件。把下面代码放进去。 package{   import flash.display.MovieClip;   import flash.events.Event;   import flash.events.MouseEvent;   import flash.display.*;   import flash.events.*;   import flash.net.*;   import flash.geom.Rectangle;   import flash.media.Sound;   import flash.text.*;   public class Game extends MovieClip{   public static const STATE_INIT: int =10;   public static const STATE_PLAY: int =20;   public static const STATE_END_GAME: int =30;   public var gameState:int =0;   public var score:int=0;   public var level:Number =0;   public var chance:int =0;   public var bg:MovieClip;   public var enemies:Array;   public var player:MovieClip;   public var scoreLabel:TextField = new TextField();   public var levelLabel:TextField = new TextField();   public var chanceLabel:TextField = new TextField();   public var scoreText:TextField = new TextField();   public var levelText:TextField = new TextField();   public var chanceText:TextField = new TextField();   public const SCOREBOARD_Y:Number=380;   public function Game(){   addEventListener(Event.ENTER_FRAME,gameLoop);   bg=new BackImage();   addChild(bg);   scoreLabel.text="Score:";   levelLabel.text="level:";   chanceLabel.text="Misses:";   scoreText.text="0";   levelText.text="1";   chanceText.text="0";     scoreLabel.y=SCOREBOARD_Y;   levelLabel.y=SCOREBOARD_Y;   chanceLabel.y=SCOREBOARD_Y;   scoreText.y=SCOREBOARD_Y;   levelText.y=SCOREBOARD_Y;   chanceText.y=SCOREBOARD_Y;     scoreLabel.x=5;   scoreText.x=50;   chanceLabel.x=105;   chanceText.x=155;   levelLabel.x=205;   levelText.x=260;     addChild(scoreLabel);   addChild(scoreText);   addChild(levelLabel);   addChild(levelText);   addChild(chanceLabel);   addChild(chanceText);     gameState=STATE_INIT; } public function gameLoop(e:Event):void{ switch(gameState){ case STATE_INIT: initGame(); break; case STATE_PLAY: playGame(); break; case STATE_END_GAME: endGame(); break; } } public function initGame():void{ score=0; chance=0; level=1; levelText.text=level.toString(); player=new PlayerImage(); addChild(player); player.startDrag(true,new Rectangle(0,0,550,400)); enemies=new Array(); gameState=STATE_PLAY; } public function playGame():void{ player.rotation+=15; makeEnemies(); moveEnemies(); testCollisions(); testForEnd(); } public function makeEnemies():void{ var chance:Number =Math.floor(Math.random()*100); if(chance<2+level){ var tempEnemy:MovieClip; tempEnemy=new EnemyImage(); tempEnemy.speed=3+level; tempEnemy.gotoAndStop(Math.floor(Math.random()*5)+1); tempEnemy.y=435; tempEnemy.x=Math.floor(Math.random()*515); addChild(tempEnemy); enemies.push(tempEnemy); } } public function moveEnemies():void{ var tempEnemy:MovieClip; for(var i: int = enemies.length-1;i>=0;i--){ tempEnemy=enemies[i]; tempEnemy.y-=tempEnemy.speed; if(tempEnemy.y<-35){ chance++; chanceText.text=chance.toString(); enemies.splice(i,1); removeChild(tempEnemy); } } } public function testCollisions():void{ var tempEnemy:MovieClip; var sound:Sound=new Pop(); for(var i:int =enemies.length-1;i>=0;i--){ tempEnemy=enemies[i]; if(tempEnemy.hitTestObject(player)){ score++; scoreText.text=score.toString(); sound.play(); enemies.splice(i,1); removeChild(tempEnemy); } } } public function testForEnd(){ if(chance>=5){ gameState=STATE_END_GAME; } else{ if(score>=level*20){ level++; levelText.text=level.toString(); } } } public function endGame(){ for(var i:int =enemies.length-1;i>=0;i--){ removeChild(enemies[i]); } enemies=[]; player.stopDrag(); }   }   } 保存到本地的某个文件夹下。 之后新建一个ActionScript3.0的 .fla文件。保存到相同的路径下。 在flashcs6里面打开这个.fla文件,可以看到库面板,该文件的属性里面有个链接,输入Game这个类的名字,将他们链接到一起。 可以看到flash cs 的.fla文件下方有个时间轴,里面有1,5,10.,,,这些。对应下面代表的是帧。右键第一个,插入空白关键帧。然后文件-导入-导入到舞台。导入图片到该帧。依次类推。前五个帧,全部导入红色的气球图片。后面导入齿轮,背景。 之后在每个帧里面点击图片,然后右键,转换为元件,之后弹出窗口,转化为影片剪辑。并且导出类。齿轮导出类名问PlayerImage,气球导出类名为EnemyImage.背景导出图片为BackImage. 然后点击选中第一个帧,点击窗口,动作。输入代码stop(); 这样整个游戏就建造完成了。 其实主要的功能都在代码里面。 代码本身比较好理解。只有那个BackImage这些类的出处新手可能不清楚。其实就是前面的那些元件建立的导出类的名字。   然后可以通过Ctrl+Enter来测试影片。生成的可执行的文件为.swf文件。   附加知识点: 如果想导入动画的话,可以将一系列的帧放到一个影片里面。然后文件-导出为影片剪辑。其实就是讲这个的.fla文件导出为一个类,来引用。之后再在于Game想关联的那个.fla文件里面,导入该影片剪辑到相应的库中即可。之后将该.swf文件,设置导出类为相应的要调用的类即可。
    转载请注明原文地址: https://ju.6miu.com/read-675888.html

    最新回复(0)