- 浏览: 44718 次
- 性别:
- 来自: 广州
最新评论
HI,经过了昨天疯狂的理论轰炸,脑袋还清新不?其实昨天的内容很重要,只要昨天那两点理解透了,以后再制作游戏就是一些算法问题,其实做游戏不难.最难的是想法而已.今天继续,依旧是老提纲:
1,瞄准镜的产生 (类似attachMovie在AS3中该如何表现?)
2,飞翔的气球 (怎么飞?随机飞,随机速度又怎么表现?该如何记时?)
3,打气球 (怎么算打中?打中后,气球爆炸怎么表现?声音呢?)
4,给我个计数器 (计算打中的,飞走的,甚至击中概率)
5,成与败 (怎么算胜利?怎么算失败?如何表现)
6,完善 (结尾)
3,打气球 (怎么算打中?打中后,气球爆炸怎么表现?声音呢?)
瞄准镜能动了,气球能飞了,速度也各具特色.那么下一步就该是打气球了,哈哈.打中不难,难的是打中后的特效表现,让我在编写的时候卡了一下.不过好消息是我会告诉你,所以你就不用卡了.继续昨天的代码
我把鼠标点击到气球算打中目标,那么我们只需要监听气球是否被鼠标点击到就OK了.打中后,首先考虑的是,需要在舞台上移除掉当前被点击的气球,然后就是移除监听事件,所以代码为:
function shoot(e:MouseEvent):void{
var tempBall:MovieClip = e.currentTarget as MovieClip;
tempBall.removeEventListener(Event.ENTER_FRAME,ballFly);
tempBall.removeEventListener(MouseEvent.CLICK,shoot);
tempBall.parent.removeChild(tempBall);
}
不过我们需要等等,加这代码,因为我需要丰富的被打中的形态,还要出声音.声音先不管,我们先在做一个气球被打的样子.如图:
我这里设置的是到第8贞Alpha为零,两头的actionscript都是stop();第2贞标签是:plays.
所以接刚才的代码里,重新修改为:
function shoot(e:MouseEvent):void {
var tempBall:MovieClip = e.currentTarget as MovieClip;
tempBall.gotoAndPlay("plays");
tempBall.addEventListener(Event.ENTER_FRAME,dieEnter);
tempBall.removeEventListener(Event.ENTER_FRAME,ballFly);
tempBall.removeEventListener(MouseEvent.CLICK,shoot);
}
function dieEnter(e:Event):void {
var tempBall:MovieClip = e.currentTarget as MovieClip;
var gravity:int = 20;
var ymov:int = tempBall.y + gravity;
tempBall.y = ymov;
if (tempBall.y > stage.stageHeight) {
tempBall.parent.removeChild(bb);
tempBall.removeEventListener(Event.ENTER_FRAME, dieEnter);
}
}
可以注意到,在监听打中后,又加了个Event.ENTER_FRAME,这主要是为了丰富打中效果而做的,也就是打中后,气球一边往下掉,一边变透明.好了,加上音乐,感觉更好,随便导入一段声效.再加入以下的代码:
var popSound:pop = new pop();
popSound.play();
pop就是在库里声音样本的Linkage名字.这样到第三步,基本就已经完成一个打气球游戏了.
源代码:
下载文件
点击这里下载文件
4,给我个计数器 (计算打中的,飞走的,甚至击中概率)
从这一步开始,就需要对以前的代码进行反工修改.所谓记数器,就是知道自己打中了几个,飞走了几个。对于赢或者输会在下一步说.这里,我们需要在舞台放放置两个动态文本,大小为12,黑色字体.分别命名为:fireIn(打中),fireOut(飞走)
每打中一个,就为fireIn加一个,飞走一个,fireOut也是.那么好,需要在程序里加以下代码
var fireInNumber:int=0;
var fireOutNumber:int=0;
//以下的加到lose function
fireOutNumber ++;
fireOut.text = fireOutNumber.toString();
//以下的加到shoot function
fireInNumber ++;
fireIn.text = fireInNumber.toString();
击中概率那个简单,就是相除就可以,就不说了.
源文件:
下载文件
点击这里下载文件
5,成与败 (怎么算胜利?怎么算失败?如何表现)
如何算成功?如何算失败?我们要先说说怎么算失败.我这里打算放一个血条,3格血,飞走一个,就掉一格,全部掉完,算输.当然直接算飞走3个也可以,不过丰富一点好,以后就知道怎么做了.接着说成功,那方法就多了,比如10个里,打中了一个算赢.哈哈,这样好象过于无耻了点。不过目前都是讲概念,怎么实行还是看你自己怎么编写。
先在舞台上搞一个血条.像这样的
然后在lose Function里加代码:
//我是根据飞走数量来决定血条,注意此代码需要加在fireOutNumber ++的后面.
if (fireOutNumber >= 3) {
t.stop();
blood.gotoAndStop((fireOutNumber+1));
trace("YOU DIE!");
balls.removeEventListener(Event.ENTER_FRAME,ballFly);
balls.removeEventListener(MouseEvent.CLICK,shoot);
removeChild(content_mc);
} else {
blood.gotoAndStop((fireOutNumber+1));
}
加上此代码后,你可以测试一下,飞走3个气球就会TARCE出YOU DIE.也表示这一步的失败做法我们算是完成了。下面说成功,我把气球的总数改为20个,只要打中5个就算赢,所以修改代码,接着根据fireInNumber的数量来决定是否成功.那么就在shoot function里加入代码:
if(fireInNumber>=5){
trace("YOU WIN!");
t.stop();
}
这段比较简单,这样这成与败算是完成了.源代码下载:
下载文件
点击这里下载文件
6,完善 (结尾)
完善,说起来简单,但是其实非常麻烦.我在制作一个项目的时候,最后阶段的调试是非常麻烦的.你可以回头看看以上的几个源代码都是有非常大的问题,封装性不够强.因为我是边写文章,边写代码.而且写起来太烦琐.但是,我觉得只要你懂的大意,就可以了.概念性大于实际操作.关于其他的打飞机,打潜水艇游戏等等,基本上都差不多,唯一的不同就是算法不同.怪物出现的方式不同.
你知道一个程序的完善靠的是什么?是经验,有很多人老说优化问题,我个人认为,这也是一个个人经验问题,习惯问题,有良好的编程习惯,对一些数据知道什么时候监听,什么时候移除监听.因为,你要知道,有的监听不用移除也是没问题的,只不过会多占用CPU资源,这一切的解决都需要你自己的对代码研究和制作的经验.
以下是修复后完整的源代码:
下载文件
点击这里下载文件
ps:以后会介绍更多的游戏制作方法,不过先在这里没有把游戏完整的介绍完说声抱歉,因为还有数据显示啊,重新玩一次等等.不过别急,这个只打个底,以后讲游戏,就不再那么详细了,只会把大概意思说一下,然后直接上代码.饭总要一口一口的吃.
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/3213.html
发表评论
-
flv制作工具大全
2010-04-10 09:50 680Collected links to Flash Vid ... -
FLV播放器汇总
2010-04-10 09:50 572http://www.dengjie.com/weblog/c ... -
FCS阅读笔记29 服务器日志
2010-04-10 09:49 575在管理FlashCom MX Server的时候,一件非常重要 ... -
FCS阅读笔记29 服务器日志
2010-04-10 09:49 732在管理FlashCom MX Server的时候,一件非常重要 ... -
Flash Media Server 起步(13)再说说SO....onSync(list)
2010-04-10 09:49 512很早以前写过so,当时 ... -
flash AS3爱好者不可缺少的Class Diagram( 类图表 )下载
2010-04-09 12:46 983很早前就在 RIS 上发现了一张 101.588cm x 71 ... -
flash AS3爱好者不可缺少的Class Diagram( 类图表 )下载
2010-04-09 12:45 926很早前就在 RIS 上发现了一张 101.588cm x 71 ... -
flash AS3.0 的第一步: Hello World
2010-04-09 12:45 1056应网友(他原是美工的)的要求,写一篇Flash CS3 的基 ... -
flash AS3.0 的第一步: Hello World
2010-04-09 12:45 992应网友(他原是美工的)的要求,写一篇Flash CS3 的基 ... -
as3.0游戏开发之打气球系列(一)
2010-04-09 08:25 568好久没有写正经的文章 ... -
as3按钮事件
2010-04-09 08:24 546在刚开始学As3时,如果不知道按钮的事件如onPress的话 ... -
【as3】ActionScript 3.0体验试教学视频教程
2010-04-09 08:24 380很不错的视频教程 原文地址: http://blog.sina ... -
as3 使用sound类(翻译)-暂停和继续播放声音
2010-04-09 08:24 573[1b]问题十[/1b] 如何暂停声音,如何从暂停的地 ... -
ActionScript 3.0(as3)实现的A*寻路算法源代码下载
2010-04-09 08:24 1109曾经写过A*寻路算法的教程,但没有贴出任何代码,这次代码全都贴 ... -
指针随鼠标移动的flash卡通时钟
2010-04-08 07:49 535。先看下时钟效果: var fnum:Number = ... -
动画人物运动规律与节奏
2010-04-08 07:49 562本文转自:h ... -
Flash绘制美丽风景画之海滩
2010-04-08 07:49 466过前段时间学习,我们掌握了鼠绘的一些初步知识,今天我们来综合一 ... -
Flash制作卷轴水墨画展开动画效果
2010-04-08 07:48 660北京奥运会开幕式上那充满诗意的卷轴,以及它所呈现给我们的一幅幅 ... -
Flash鼠绘入门第十三课:绘制美丽春日飞燕
2010-04-08 07:48 512相传燕子于春天社日北 ... -
为AS2.0添砖加瓦-编写类扩展
2010-04-07 10:18 714[1b][序] [/1b]基于类的编程,使得我们可以更加轻松地 ...
相关推荐
本文将基于“as3打气球小游戏”这一项目,深入剖析AS3在游戏开发中的应用,帮助初学者和类学习者更好地理解和掌握相关技术。 首先,我们要明白AS3是Adobe Flash Professional和Flash Builder等工具中的编程语言,它...
【Flash打气球游戏AS3源码】是一个基于Adobe Flash平台开发的小型游戏,它采用ActionScript 3.0(AS3)编程语言编写。AS3是Flash开发中的一个重要里程碑,相比之前的版本,它提供了更加强大且面向对象的编程模型,...
【标题】"Flash AS3 打气球游戏源码"是一个基于ActionScript 3.0编程语言开发的小型游戏项目,旨在提供一个简单的娱乐体验,让玩家通过互动操作来击破屏幕上不断出现的气球。AS3是Flash Professional中用于创建动态...
《打气球》是一款经典的FC(Family Computer,即任天堂红白机)游戏,深受80后、90后的喜爱。该游戏以其简单的操作、趣味的游戏机制和富有挑战性的关卡设计,成为了许多人的童年回忆。在本文中,我们将深入探讨《打...
【Java 打气球 小游戏 源码 案例】是一个基于Java编程语言开发的趣味小游戏,旨在提供一种轻松愉快的方式学习和实践Java编程。这个游戏的核心机制是玩家通过控制某种对象(如箭头、子弹等)来击破屏幕上不断升起的...
VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel
通过学习和分析这个“打气球”游戏,我们可以了解Flash游戏开发的基本流程和核心技术,这对于想要进入Flash开发领域的初学者来说是一个很好的起点。同时,这也是一个实践ActionScript编程和理解游戏设计原理的好例子...
JavaScript实现的打气球游戏是一种常见的网页互动小游戏,它结合了HTML、CSS和JavaScript技术,为用户提供了一种娱乐和学习编程的机会。在这个项目中,主要的知识点包括: 1. **HTML结构**:游戏界面的构建通常由...
总的来说,“打气球小游戏”是一个结合了HTML5、jQuery和面向对象编程的优秀实践案例,它展示了现代Web开发技术在游戏开发中的强大应用。通过对这个游戏的深入剖析,开发者不仅可以学习到基础的前端技术,还能理解...
坐标的确定:横坐标0 1 2 3 纵坐标 0 1 2(4*3的精灵图),横坐标通过 下标%4 得出 纵坐标通过 parseInt(下标/4)得出 初始化设置 :初始化 x,y→ x,y轴 x轴clientWidth取随机 y轴clientHeight div创建加类上树 ...
本文将详细解析一个大二学生利用C++语言编写的打气球小游戏,带你深入理解C++的基本语法、游戏逻辑设计以及交互式程序的开发。 一、C++语言基础 C++是一种强大的面向对象编程语言,它继承了C语言的高效性和灵活性,...
【打气球-Flash游戏源码】是一款基于Adobe Flash平台开发的简单娱乐游戏,源码包含`.fla`和`.as`文件,是学习和理解Flash游戏开发的基础资源。`.fla`文件是Flash的原始工程文件,包含了游戏的所有图形元素、动画、...
通过这个"打气球"小游戏,开发者不仅可以练习JavaScript的基本语法和编程思维,还能深入理解游戏开发的原理,提升前端开发技能。同时,对于初学者来说,这是一个很好的实践项目,可以边学边做,将理论知识转化为实际...
总的来说,这个“打气球小游戏balloon”利用了HTML5的Canvas、JavaScript、CSS3以及可能的Web Storage和Audio API,构建了一个完整的交互式游戏。它展示了HTML5在现代网页游戏开发中的强大功能,不仅提供了丰富的...
【标题】:“类似打地鼠的打气球游戏”是一种基于快速反应和手眼协调的电子游戏,灵感来源于传统的打地鼠游戏。打地鼠游戏是儿童和成人都喜爱的经典娱乐活动,它要求玩家迅速击打从洞口冒出的地鼠。而这个“打气球”...
基于Unity开发的流浪气球无尽探索小游戏C#源码.zip基于Unity开发的流浪气球无尽探索小游戏C#源码.zip基于Unity开发的流浪气球无尽探索小游戏C#源码.zip基于Unity开发的流浪气球无尽探索小游戏C#源码.zip基于Unity...
9. **发布和测试**:“气球3.swf”是最终的Flash影片文件,可以通过Flash Player在浏览器中运行,进行测试和展示。 以上就是AS3编写随机飘动气球涉及的主要技术点,通过这样的项目,开发者可以提升对AS3编程、图形...
《使用MFC开发打气球游戏的编程实践》 MFC(Microsoft Foundation Classes)是微软提供的一套面向对象的C++库,它基于Windows API,为开发者提供了构建Windows应用程序的便利框架。本项目是一个利用MFC编写的打气球...
在本项目中,开发者利用C++的特性构建了一个打气球的游戏,这展示了C++在游戏开发中的应用。游戏采用MFC(Microsoft Foundation Classes)框架进行开发,MFC是微软为Windows应用程序提供的一种API,它简化了窗口、...
里面包括需求分析等,注释多于代码,大家可以更好地理解,互相学习,浏览器打开即可运行,相当于一个小游戏