我是Flash(和游戏编程,真的)的新手,但想要学习一点。我的整体学习项目是在Flash中创建一个Monopoly克隆。不幸的是,我很难克服我的第一个障碍 - 如何以图形方式创建电路板,以及如何在代码中处理它。到目前为止,我的想法是打破不同大小的瓷砖(正常的属性,角4和中间部分的大),然后以某种方式将这些全部放入相对于彼此的正确位置,并保持该定位正确,因为碎片(以及相机视图)围绕板移动。 (并且,希望有一天也有缩放能力......)
这是一个好方法,还是有更好的方法?有没有人知道我在哪里可以找到一个专门用于在Flash中创建棋盘游戏的教程(任何类型真的,不一定是垄断,而只是一个游戏,有一个令牌移动的棋盘 - 最好也必须平移)
另外,有没有办法在flash MovieClip中有一个动态着色的矩形(就像你可以有动态文本框)?我问,因为如果有的话会很有用,因为我可以用一个名字,值和颜色的MovieClip生成每个属性区块......
答案 0 :(得分:1)
你在这里描述的一切,你可以很容易地做到一旦你得到组件精灵的悬念。我个人会制作一个精灵,然后在游戏中保存所有的“瓷砖”,这样你就可以“放大”电路板,同时保持所有部件的相对性:
如果您创建此父级以具有addTile()和getTile(index:int):Sprite方法然后您可以轻松地推送切片并从数组中检索它们,以便Go位于索引0,旧肯特路是在1等处,您可以使用单个整数值来确定播放器片段的位置,然后您可以使用getTile(int).x等。
瓷砖本身的位置可以相对于其他人来计算。如果您有一个宽20像素,高40像素的图块,那么您可以将图块定位为第一行的x = index * 20
,在第一行之后,您需要将它们全部旋转,然后使用y索引({{ 1}})这将完全取决于你的精灵的原点。
要绘制使用Sprite图形的彩色框,有很多关于API的图纸,但这里有一个10x10px的基本框:
rotation = 90; x = 11*20; y = (index-11)*20
答案 1 :(得分:1)
您的问题的另一种方法是学习面向对象编程。这可能无法解决您直接以图形方式表示董事会的问题,但它肯定会帮助您构建游戏。
使用OOP,您可以使用一组属性(例如streetName,颜色,价格等)定义“属性”类。我有一段时间没有玩过Monopoly但你可以得到一般的想法,即创建基础对象,通过设置对象的属性使其具体化。您对彩色矩形的问题实际上可以应用于其他属性,这是避免不必要重复的好方法。
从广义上讲,OOP倾向于模仿现实生活中的情况,所以你可以真正看看你的大富翁游戏,将其分解成各个部分,找到共同的属性等......我不会在这里开始教训:)我会相当糟糕,但那里有足够的资源。寻找OOP,Design Patterns&的ActionScript3。
经过一番研究后,您可能会发现关于如何处理图形的问题可能不是一个问题。
答案 2 :(得分:0)
你的问题太笼统了。我相信你不希望我们引导你完成整个项目吗? 现在要获得一些经验,我建议您只需通过一些Flash游戏教程。有很多这些,我用Google搜索了2-3秒,发现了这个:
http://pelfusion.com/tutorials/35-flash-game-development-tutorials-fla-files/
我确信你对这个答案感到失望,但这是解决你自己问题的第一步。互联网已经有足够的一般游戏教程了。如果您有特定问题,我们可能会为您提供更好的帮助。
我假设动态着色的矩形,你的意思是在运行时简单地改变颜色。你只需给矩形一个名字,然后在代码中改变它的颜色属性。像这样:rectangle.Color = Something。
答案 3 :(得分:0)
你可能想要开始一个更简单的项目,只是为了学习一些基础知识,也许是一个小游戏,玩家必须使用箭头键或鼠标将一个矩形从屏幕的一侧移动到另一侧。分数增加或其他什么。这将有助于教你如何协调坐标系。
要使用代码绘制内容,您可以创建一个新的Sprite
或MovieClip
对象,并使用其graphics
property在运行时向其绘制原始形状(矩形等)。 / p>