1

我是学生,我的老师一直告诉我要习惯在单独的 .as 文件中制作我的 flash 游戏,而不是去 flash 并使用 flash 时间线构建我的游戏,并在那里添加所需的 actionscript 3 代码,靠近行动的地点和时间发生。

他坚持这一点是因为一些问题,但我真的没有完全理解他的意思,所以有人可以快速解释如果我构建更大的结构游戏而不使用单独的 .as 文件而不是使用 Flash 时间线并分离我的代码?

我的头脑中有一种顽固的抵抗力,因为到目前为止我在分离我的代码时还没有遇到太多问题,即使他说当代码在同一个地方时我自己更容易弄清楚,但我倾向于抽象/非理性的想法,所以我至少到目前为止没有看到它有问题,对我来说,将所有动作脚本3添加到同一个地方似乎更难......或者我可能只是一个固执的傻瓜,我应该听他的......那么,有人可以解释一下吗?

先感谢您!

4

3 回答 3

3

结构。随着您对 AS3 的熟悉程度越来越高,您会注意到,根据最佳实践构建代码会收获很多。它不仅为您提供了更多控制权和更容易阅读代码,还使构建有用、可重用的面向对象代码变得更加容易。

即使你可能擅长非理性思考,但你的记忆力可能并不好。当一位同事将来最终会接触您的代码时,您和您的同事都会迷失方向。

于 2012-12-07T11:35:57.297 回答
3

我几乎和 walkietokyo 有相同的答案:代码组织和结构。一个例子可以说你正在制作一个像小行星这样的游戏。将您的代码分开来表示:玩家运动、射击、子弹和小行星撞击检测、小行星运动以及分数处理可能很有用。然后,当您(或其他人)将来重新访问它时,您的代码会变得更小,更容易消化,每个部分都专注于特定的事情。甚至可能可重复用于可能具有类似行为的其他东西。

通过将代码分离出来,它还可以使测试和调试变得更加容易,因为如果说玩家射击存在错误,那么与 if 相比,您无需担心所有其他部分的代码这一切都在 1 个巨大的 fla/file 中。它还可以简单地使导航变得容易得多,而不必从一件很长的事情中找到它。

但我还要补充一点,如果您在同一个项目上与多个人一起工作,将其分开也可以让人们同时处理/处理不同的部分,如果您使用版本控制系统来处理您的文件,比较'纯文本' AS 文件比比较 flas 容易得多。您甚至可以将 fla 视为只是一个“资源/资产”文件并具有不同的版本。

于 2012-12-07T12:06:18.520 回答
3

结构:

就像 walkietokyo 所说,将您的代码分成对象可以让您在以后再次使用您的代码变得非常容易。想在您的游戏中为第 4 级添加另一种类型的武器吗?简单的。new GrenadeLauncher();. 最终,您将拥有一个将在所有项目中使用的小型组件库,从而为您节省大量时间。

文件大小/内存:

如果您的整个应用程序都在 FLA 中,则用户必须先下载整个FLA(假设内容在网页上可用)才能使用它。对于小程序来说,这没什么大不了的。对于具有许多不同屏幕的大型程序或具有关卡的游戏,这可能是一个问题,因为所有内容都保留在内存中。您可以通过仅在内存中保留您需要的内容来节省下载时间和内存使用量。

在团队中工作:

假设您正在制作一款游戏,并且您正在编写第 6 级的代码。与此同时,您的艺术家正在向库中添加一些艺术作品并在舞台上进行一些调整。您将更改提交到版本控制系统,并且存在冲突。您的艺术家已经提交了她的更改,现在您必须在您的版本中复制她所做的一切,浪费她和您的时间。如果您在 6 级编码level6.as,则不会发生这种情况。就个人而言,我发现这是在文本文件中编码并将 FLA 留给 UI 和艺术的最佳理由。

记忆,就像大象一样:

两个月后,你将打开你的文件并想找到你写的那个漂亮的榴弹发射器,但你不知道从哪里开始。如果您使用包以结构化方式在文件中编码,则无需记住。只需浏览您的文件夹,最终您会发现mygame.weapons.GrenadeLauncher.as.

于 2012-12-07T12:10:22.287 回答