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
发表评论
-
asp+access+as3+flash留言本教程——flash篇
2010-04-10 13:48 598[1b] 需要源文件留下email [/1b] [1b]成业作 ... -
TOMCAT+JSP+ACCESS+FLASH连接数据库
2010-04-10 13:48 642很多新人问FLASH和数据库连接的方法,这里介绍一下,后台可 ... -
Flash站技术应用(7)—FileReference路径获取问题
2010-04-10 13:47 565关于flash后台通信问题,大家先看下 火山的Flash+a ... -
Flash全站的技术应用-Flash也能播放wmv,wma
2010-04-10 13:47 682前言 Flash能播放除flv,m ... -
flash插入网页技巧-让浏览器响应鼠标滚轮
2010-04-10 13:47 706flash插入网页后,当flash获得焦点,也就是开始操作fl ... -
我对as3声音架构的理解
2010-04-09 14:11 552一直都对as3的声音架构 ... -
as3.0游戏开发之打气球系列(一)
2010-04-09 14:11 484好久没有写正经的文章 ... -
as3按钮事件
2010-04-09 14:10 523在刚开始学As3时,如果不知道按钮的事件如onPress的话 ... -
【as3】ActionScript 3.0体验试教学视频教程
2010-04-09 14:10 624很不错的视频教程 原文地址: http://blog.sina ... -
as3按钮事件
2010-04-09 12:01 543在刚开始学As3时,如果不知道按钮的事件如onPress的话 ... -
【as3】ActionScript 3.0体验试教学视频教程
2010-04-09 12:00 480很不错的视频教程 原文地址: http://blog.sina ... -
as3 使用sound类(翻译)-暂停和继续播放声音
2010-04-09 12:00 570[1b]问题十[/1b] 如何暂停声音,如何从暂停的地 ... -
舞台对象与脚本的关联--ReferenceError: Error #1056的处理
2010-04-09 12:00 831在 Flash 9中, 你可以把一个舞台对象关联到一个[1b] ... -
舞台对象与脚本的关联--ReferenceError: Error #1056的处理
2010-04-09 12:00 975在 Flash 9中, 你可以把一个舞台对象关联到一个[1b] ... -
Flash绘制美丽风景画之海滩
2010-04-08 11:33 668过前段时间学习,我们掌握了鼠绘的一些初步知识,今天我们来综合一 ... -
Flash制作卷轴水墨画展开动画效果
2010-04-08 11:33 555北京奥运会开幕式上那充满诗意的卷轴,以及它所呈现给我们的一幅幅 ... -
Flash鼠绘入门第十三课:绘制美丽春日飞燕
2010-04-08 11:33 558相传燕子于春天社日北 ... -
跑动的小火柴人(flash动画)
2010-04-08 11:33 512本教程描绘的是完全用ActionScript做的一个火柴棍小人 ... -
Flash与Ps打造模糊渐变动画
2010-04-08 11:32 653在电子杂志设计制作尤其是模版制作的过程中,需要使用Flash专 ... -
画人物的几个步骤
2010-04-08 09:49 759眼珠的画法: 1、用渐变色沟个圆。 2、把渐变的焦点移动 ...
相关推荐
用AS3写的打气球游戏,特别适合初学as3做游戏开发的人,也适合学习类的学习者!不适合做界面的FLASH学习者。
VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel VBA 版打气球游戏 Excel
flash as3 开发的打气球小游戏,
《flash游戏编程指南》中的打气球游戏源码。
打气球 这个小游戏挺有意思的,传出来给大家分享一下!!
坐标的确定:横坐标0 1 2 3 纵坐标 0 1 2(4*3的精灵图),横坐标通过 下标%4 得出 纵坐标通过 parseInt(下标/4)得出 初始化设置 :初始化 x,y→ x,y轴 x轴clientWidth取随机 y轴clientHeight div创建加类上树 ...
文件包含打气球的实现代码、功能代码思路讲解、视频演示和讲解。打气球的小游戏:在开始界面根据气球出现的数量和移动速度分为三个游戏等级可供选择,点击某个等级后转到对应难度的游戏。
jQuery+HTML5+面向对象 打气球小游戏,有BGM和气球爆炸音效(来源网络),有不同分数的气球,分数不同速度不同,限时一分钟,计分。
打气球
里面包括需求分析等,注释多于代码,大家可以更好地理解,互相学习,浏览器打开即可运行,相当于一个小游戏
压缩包里有两种打气球玩法,点开网页即可打气球。打中气球会加分,当气球触碰到网页顶部则游戏结束。
打气球-flash游戏源码。包括.fla .as 文件
一个flsh cs3小游戏,代码里有详细的解释。希望对各位有所帮助。
C语言 小游戏 计算机图形学做的打气球游戏, 下方发射子弹, 气球一定时间上升
基于Unity开发的流浪气球无尽探索小游戏C#源码.zip基于Unity开发的流浪气球无尽探索小游戏C#源码.zip基于Unity开发的流浪气球无尽探索小游戏C#源码.zip基于Unity开发的流浪气球无尽探索小游戏C#源码.zip基于Unity...
花了两天时间自己做的一个小游戏,比较简单,场景和人物用的都是网上的素材,自己加的代码和动画效果,AS3写的,游戏比较简单,都写在一个类文件里了. 程序环境:flash CS5 附上游戏地址:...
as3 编写的随机飘动的气球。用flashCS3做成的。
用html5做了一个打气球小游戏balloon 界面华丽,简单娱乐
用c++语言编写的,打气球游戏,有开始暂停按钮,退出按钮,是独立的窗口,VC6.0编译通过。文件中包含所有的源代码及可执行文件。
气球随机在画面出现