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
发表评论
-
TOMCAT+JSP+ACCESS+FLASH连接数据库
2010-04-10 14:20 963很多新人问FLASH和数据库连接的方法,这里介绍一下,后台可 ... -
Flash站技术应用(7)—FileReference路径获取问题
2010-04-10 14:20 681关于flash后台通信问题,大家先看下 火山的Flash+a ... -
Flash全站的技术应用-Flash也能播放wmv,wma
2010-04-10 14:20 914前言 Flash能播放除flv,m ... -
flash+asp+xml留言本教程
2010-04-10 14:19 771[1b]演示地址[/1b] [1b]源文件下载[/1b] [1 ... -
flash+asp+xml留言本教程
2010-04-10 14:19 869[1b]演示地址[/1b] [1b]源文件下载[/1b] [1 ... -
Flv网络播放器制作全攻略
2010-04-10 09:39 538***************************** ... -
flash中NetConnection与NetStream知识整理
2010-04-10 09:39 639NetConnection只有一个connect方法,NetS ... -
flv制作工具大全
2010-04-10 09:39 599Collected links to Flash Vid ... -
FLV播放器汇总
2010-04-10 09:39 421http://www.dengjie.com/weblog/c ... -
FLV播放器汇总
2010-04-10 09:38 405http://www.dengjie.com/weblog/c ... -
《as2过渡到as3中文版》pdf下载
2010-04-09 12:35 418中文说明 简单易懂, 刚接触cs3的朋友可以试试 付 [fl ... -
《as2过渡到as3中文版》pdf下载
2010-04-09 12:34 628中文说明 简单易懂, 刚接触cs3的朋友可以试试 付 [fl ... -
我对as3声音架构的理解
2010-04-09 12:34 560一直都对as3的声音架构 ... -
as3.0游戏开发之打气球系列(一)
2010-04-09 12:34 450好久没有写正经的文章 ... -
AS3 Scale9 Bitmap类
2010-04-09 08:14 729翻译自: http://www.uza.lt/codex/as ... -
AS3 Scale9 Bitmap类
2010-04-09 08:14 1052翻译自: http://www.uza.lt/codex/as ... -
一个超轻量级的AS3 3D Engine-ND3D
2010-04-09 08:13 583ND3D是一个超轻量级的AS3 3D Engine, 它的最大 ... -
一个超轻量级的AS3 3D Engine-ND3D
2010-04-09 08:13 732ND3D是一个超轻量级的AS3 3D Engine, 它的最大 ... -
AS3将字体转矢量图形
2010-04-09 08:13 598如果你也想做一个 Fontpark ,光靠TextField可 ... -
flash原画中时间掌握
2010-04-08 08:15 465原画中时间掌握 1、引 ...
相关推荐
锂电池涂布模头,全球前7强生产商排名及市场份额
ISO IEC 21964-2-2018.pdf
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本
用于海关申报商品编码/HS编码信息
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
离散制造业未来数字化工厂建设及关键应用场景规划方案.pptx
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
附件是TensorFlow安装步骤,文件绿色安全,请大家放心下载,仅供交流学习使用,无任何商业目的!
BS EN IEC 60068-2-86-2024 环境试验.第2-86部分:试验.试验Fx:振动.多激励器和多轴法.pdf
大学生,数学建模,美国大学生数学建模竞赛,MCM/ICM,2023年美赛特等奖O奖论文
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
考试报告要求.ipynb
DFS与BFS保姆级教学!!超级详细
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。