需要准备的素材:一张剪刀图片PlayerImage,一张背景图片BackImage,还有一组气球图片EnemyImage(建议五个不同颜色的),一个音频文件Pop,将这些素材添加到库中,设置成影片剪辑,且需要修改属性。

.

注意,EnemyImage影片剪辑里面有五个关键帧,分别对应五个不同颜色的气球。

注意:

balloons.fla文件和Games文件需要在同一文件夹下面。需修改balloons.fla的文档类

源码:

package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.*;
import flash.events.*;
import flash.geom.Rectangle;
import flash.media.Sound;
import flash.text.*;

public class Games extends flash.display.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 chances:int = 0;//错过个数
public var bg:MovieClip;//背景
public var enemies:Array;//气球数组
public var player:MovieClip;//剪刀
public var level:Number = 0;//等级

public var scoreLabel:TextField = new TextField();//分数标题
public var levelLabel:TextField = new TextField();//等级标题
public var chancesLabel:TextField = new TextField();//错过标题
public var scoreText:TextField = new TextField();//分数显示框
public var levelText:TextField = new TextField();//等级显示框
public var chancesText:TextField = new TextField();//遗漏显示框

public const SCOREBOARD_Y:Number = 380;//设置平行线

public function Games(){
addEventListener(Event.ENTER_FRAME,gameLoop);//添加事件监听
bg = new BackImage();//定义背景色
addChild(bg);//添加到舞台
scoreLabel.text = "Score:";//分数标题内容
levelLabel.text = "Level:";//等级标题内容
chancesLabel.text = "Chances:";//遗漏内容
scoreText.text = "0";//默认分数
levelText.text = "1";//默认等级
chancesText.text ="0";//默认遗漏
scoreLabel.y = SCOREBOARD_Y;//设置水平线
levelLabel.y = SCOREBOARD_Y;//设置水平线
chancesLabel.y = SCOREBOARD_Y;//设置水平线
scoreText.y = SCOREBOARD_Y;//设置水平线
levelText.y = SCOREBOARD_Y;//设置水平线
chancesText.y = SCOREBOARD_Y;//设置水平线
scoreLabel.x = 5;//设置间距
scoreText.x = 50;//设置间距
chancesLabel.x = 105;//设置间距
chancesText.x = 155;//设置间距
levelLabel.x = 205;//设置间距
levelText.x = 260;//设置间距
addChild(scoreLabel);//添加到舞台
addChild(scoreText);//添加到舞台
addChild(levelLabel);//添加到舞台
addChild(levelText);//添加到舞台
addChild(chancesLabel);//添加到舞台
addChild(chancesText);//添加到舞台
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;
chances = 0;
player = new PlayerImage();
enemies = new Array();
level = 1;
levelText.text = level.toString();
addChild(player);
player.startDrag(true,new Rectangle(0,0,550,400));
gameState = STATE_PLAY;
}

//开始游戏
public function playGame():void{
player.rotation +=15;
makeEnemies();
moveEnemies();
testCollosions();
testForEnd();
}

//生成气球
public function makeEnemies():void{
var chance:Number = Math.floor(Math.random()*100);
//trace(chance);
var tempEnemy:MovieClip;
if(chance<2+level){
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){
chances++;
chancesText.text = chances.toString();
enemies.splice(i,1);
removeChild(tempEnemy);
}
}
}

//碰撞检测
public function testCollosions():void{
var sound:Sound = new Pop();
var tempEnemy:MovieClip;
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():void{
if(chances>=5){
gameState = STATE_END_GAME;
}else if(score>level*20){
level++;
levelText.text = level.toString();
}
}

//结束游戏
public function endGame():void{
for(var i:int = 0;i<enemies.length;i++){
removeChild(enemies[i]);
}
enemies = [];
player.stopDrag();
}
}
}

AS3.0实现扎气球游戏相关推荐

  1. Pygame实战:BOOM 这有一款超刺激的扎气球游戏等你来玩~

    导语 ​ ​ 前几天,有人私信小编: 说陪女朋友在小广场上面逛街玩儿扎气球:结果一个都没扎破,扎心了老铁. 女朋友都要离家出走了~让我给想想办法:小编只想给你一个表情. ​ 哈哈哈,开玩笑的~于是,为 ...

  2. Flash As3.0 游戏开发小结

    转自: http://blog.csdn.net/chongtianfeiyu/article/details/8096446 ActionScript3.0(以下简称AS3.0)开发flash游戏目 ...

  3. 基于Flash CS6和AS 3.0完成的赛车游戏

    目前有各种语言编写的赛车游戏,但基于Flash编写的,反而最直观,近日空闲下来,将之前编写的Flash CS6和AS3.0编写的赛车游戏写下来,重点可以帮助小学生完成简单的小游戏. 一.完成界面如下: ...

  4. 【青少年编程】【三级】打气球游戏

    「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 微信后台回复"资料下载&quo ...

  5. 扎金花游戏 PHP 实现代码之大小比赛

    扎金花游戏 PHP 实现代码之大小比赛 程序离不开算法,在前面的博客当中,其实我们已经讨论过寻路的算法.不过,当时的示例图中,可选的路径是唯一的.我们挑选一个算法,就是说要把这个唯一的路径选出来,怎么 ...

  6. 扎金花 游戏开发细节与部分代码

    扎金花 游戏开发细节与部分代码,斗地主游戏中的牌型很多,算法也各有不同,但我总觉得网上一些通用的算法有点铺天盖地,所以,我决定自己来重新想一下算法,总的来说,无论你出什么处于,三带二,炸,4带一等,你 ...

  7. 转:As3.0中的反射

    常见的笔试题,所以把它转下来收藏. 给你一个代码代表"类"完整路径的字符串,比如"flash.text.TextField",你能用AS3.0在舞台上动态创建一 ...

  8. NKOJ——P1095——气球游戏

    时间限制 : 15000 MS 空间限制 : 65536 KB 评测说明 : 1s,64m 原题 问题描述 输入格式 输出格式 样例 样例 1 样例输入 1 样例输出 1 样例 2 样例输入 2 样例 ...

  9. JavaScript实战——打气球游戏

    源码: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8& ...

最新文章

  1. 使用microsoft EnterpriseLibrary连接不同数据库简单应用 .
  2. 添加全局函数$.extend和对象方法$.fn
  3. timus-1507 Amount of Degrees 按位DP
  4. IC-工具篇--VCS使用教程-卷二(202004013)
  5. python发展前景怎么样-python发展前景怎么样
  6. 事务管理基础:两段锁协议、活锁、死锁相关知识整理
  7. linux设备驱动之按键外部中断
  8. Postman用法说明
  9. dijkstra 最短路算法
  10. 华为机试HJ27:查找兄弟单词
  11. Tricks(二十三)—— Python 实现树这种数据结构
  12. win7计算机怎么初始化,Win7系统网络初始化的设置方法
  13. notepad拼心形_Excel心形函数v1.0 免费版
  14. 00018计算机应用基础知识点归纳,自考00018计算机应用基础汇总资料.doc
  15. 讯时O口MX8网关对接昆石软交换vos3000
  16. Python爬虫入门一(爬虫基础)
  17. 什么是“Ground truth”
  18. 周金瑞10.31现货黄金、白银TD、美原油开盘操作建议
  19. 正版Matlab安装后激活成功,出现License checkout failed.问题的一种原因!
  20. 软考A计划-试题模拟含答案解析-卷四

热门文章

  1. 华为HCIE认证改版(2021年5月30日正式改版升级)
  2. 证券行业智慧化转型思考
  3. 轩辕实验室丨基于信息熵的车载网络流量异常检测防御方法
  4. Teamviewer被检查成商业用途的解决方法
  5. 详细解读大数据分析学习路线
  6. 吃鸡服务器维护7月5号,绝地求生7月5日维护到几点 7月5日吃鸡更新维护公告
  7. excel将一个工作表根据条件拆分成多个工作表,并将多个工作表怎么拆分成独立表格
  8. Master Plan for becoming a Software Architect : Roadmap of a Software Architect
  9. 大数据应用技术实验报告五 NoSQL
  10. 【iOS】设置背景渐变色