| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > Flash游戏制作 > 文章正文 用户登录
如何加入透明Flas
为新浪博客添加fl
flashget下载联盟
265联盟:“Flash
HKflash提供免费个
FLASH调用XML数据
Flash Remoting -
一个很实用的基于
Flash Com
借助js在flash中運

基于 Flash ActionScript 1.0 编写的挡板游戏           

基于 Flash ActionScript 1.0 编写的挡板游戏

作者:佚名 来源:闪吧 作者: shuhankuang 更新:2007-1-13 20:43:17 错误报告 我要投稿

作者:Pom

翻译:ShuhanKuang

本文章发表已经获得作者的允许,

原文章地址:http://www.kirupa.com/developer/actionscript/pongout.htm

P/S:里面的教程都很棒的,有兴趣的可以到那里学习学习。^_^。还就是翻译过程中难免出现错误,希望指出和更正。(总文件在7楼)

正如你所知,在FLASH中有很多方法检测碰撞的,有一个方法叫hitTest(),在自带字典里有两中解释:

myMovieClip.hitTest(target) // 电影剪辑和电影剪辑的检测

myMovieClip.hitTest(x, y, shapeFlag) //点和电影剪辑的检测
如果你曾经用过这两个个方法,你肯定会发现它的局限:第一函数,只能检测两个包含剪辑的最小框的碰撞,(图中包含剪辑的蓝色矩形),在我下面做的简单的示例中,你可以得知当剪辑不是规则的矩形的时候,这样的检验是没有什么作用的,(例如两个圆,或两条角度不同的直线)。

(图1

按此在新窗口浏览图片

你可以得到这个结论,FLASH检测了“非”碰撞。(“非”这里是自己想的,毕竟水平有限不知道怎么解释好)

第二个函数能进一步准确地检测碰撞,但它只局限在一个电影剪辑和点的范围内。

下面还有一个关于hitTest()方法的问题。我将它叫做“Where-did-my-hitTest-go?”(消失的碰状?~_~翻译过来不好听的,呵呵),让我们尝试检测一个球和一面墙(这里用垂直的线表示)是否发生了碰状。

(图2

按此在新窗口浏览图片

你可以从上面的图看出,在每一帧中都没发生物理的碰状,就算球已经穿过了墙壁,这是因为碰状是基于帧检测的。很幸运地,这个问题可以得到解决,或者至少可以说这个问题不会在我们做游戏过程中带来太多的麻烦。心急了吧?那么让我们开始有趣的部分吧:)

游戏:

我们要做的事是创建一个简单的PONG游戏,那么先看看下面的一个简单的例子,你可以测试一下效果:)
点击浏览该文件
点击开新窗口欣赏该FLASH动画![全屏欣赏]
点击浏览该文件

当你看到第一个原文件(名字叫pong_00.fla),你可以发现里面只有两层:

1code,里面调用了一个外部的AS文件

2object ,里面包含了一个名为bar的挡板和名为ball的球

可能有一部分的人不那么熟悉#include的语法,通过运用这个语法好处就是,你能用外部编辑器修改你的代码,例:如Scite|FlashSE|PY,而不局限在FLASH的动作面板,如果你曾经过这个语法,那么给你带来的结果一定不会让你失望的,当然,如果你不喜欢用这个方法,那么你就要删去#include这一句和复制代码到FLASH的动作面板里面。

为了保证代码的简洁和容易更新,我们应该为我们的游戏写一些简单的类。(这里用的是as1.0,如果你有时间和想要训练自己,建议你将代码写成2.0的)。但是先不要害怕,你没必要熟悉了oop(面向对象编程)才能看明白这个游戏的代码。
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。