首 页 | 多媒体开发 | 合成 | 图象设计 | 动画制作 | 音频编辑 | 网站建设 | 新书上市 | 虚拟主机
论 坛 | 加入人才库 | 下载中心 | 作品展示 | 项目承接 | 光盘压制 | 企业展台 | 原创投稿 | 认证培训
bryce
 

 [翻译 教程]制作一个街头格斗风格的游戏(一)

作者:Adam Montandon   
出自 www.stormsky.com
翻译:w_jm  
译文出自 www.mobiusclub.com

本教程将教你制作这个游戏
游戏的控制按键:
Player 1       Player 2 
W        Punch I 
S        Kick  K 
A        Left  J 
D        Right L 

有很多制作游戏的教程,它们大多是迷题游戏或太空入侵者(一种著名的电脑游戏),并且都做的非常好玩。我决定写一个Beat-em-up风格的游戏,看上去很象那些90年代街头格斗的游戏。我希望你有兴趣学习制作自己的游戏。
这个教程写的特别容易跟着学习
.。写这样的比赛游戏程序有数百种不同的方法。显示在这里的代码设计的很容易理解,我相信那些高级的程序员想要调整这些代码,为游戏的角色增加抓、拧、扭等动作和对它加以改进。
所有信息和图像倘若仅用于教育,我不主张图像的版权,仅保留这些代码和教程的版权。请只将它们用于个人学习,而不要用于商业用途,好吗?(译者注:莫比斯俱乐部是非赢利性质的多媒体学习网站,符合作者的要求。:))

如果你打算学习这个教程并制作自己的游戏,请通过电子邮件的形式告诉我。请不要直接用电子邮件问关于你在制作这个游戏过程中的任何问题。反复阅读教程的每个步骤,如果你还有不能解决的难题通过论坛讨论,我总是不能回复个别的电子邮件。
如果你想讨论其它人在这个教程上的工作,或有任何的问题,请把它张贴在论坛中。

开始前的准备
第一件事情就是你需要从Macromedia获得Director8或Director8.5(译者注:当然,使用Director MX也可以),它可以在PC和Mac上工作。我是在Mac上使用Director8.5。
接着,你需要相当熟悉行为、精灵、角色成员和影片脚本这些基本概念。开始学习这个教程前我建议花3到6个月的时间体验Director(译者注:这是对那些还没有开始学习Director的人而言的)。如果你懂得如何使用列表和处理程序,它有助于你的学习,不要担心它没有实质。

如果你学习Director已经入门了,强烈推荐你关注在Stormsky亚马迅书店待售的一些书。我为学习Director使用了很多那里的图书,并且我认为这是开始学习这个学科最好的方法之一。最后,你会感到使用Adobe Photoshop和Macromedia Fireworks处理你自己的图像是很有帮助的。

我们将制作什么?
在任何游戏中计划编制总是重要的,
.所以在这里让我们理清将要做些什么:两个人通过键盘输入玩的游戏;两个角色;每个角色有踢腿和出拳两个动作;角色没有特殊的动作(尽管稍后我们将讨论增加这个功能);每个角色都有一个遭到攻击后会缩短的健康状态栏(译者注:就是我们在玩游戏时所说的角色的血),健康状态首先减少到0的那个人是失败者;当角色走到另外一个角色后面时他们都会转身。
你知道,这是一个很简单的游戏,你将能学会制作象在任何娱乐厅中所看到的非常复杂、完整的格斗游戏。这需要一个有设计师、艺术家、节目制作人、音效技师和其它一些有才能的人的队伍,并且要花费几个月或几年的时间来制作。在本文的后半部分我将讨论制作这个游戏。

获得起点
首先,通过看到的和感觉到的每个事物获得一个概念,观察这个完整的游戏,搞懂你将要面对的是什么。
你会注意到由于使用了很多图像使这个游戏栩栩如生。好,我将给你提供这些图像,使用右键选择“目标另存为”(在Mac上按住Option键并单击然后选择“Save target as”)保存这些图像。
这儿是背景图像。
这儿是健康状态栏图像。
这儿是玩家1胜利的Photoshop文件。
这儿是玩家2胜利的Photoshop文件。
这儿是Play Again? Photoshop文件。
这儿是所有的Karin图形包含在一个演员表文件中。
这儿是所有的DJ图形包含在一个演员表文件中。

关于脚本
许多人为Director的Lingo脚本感到烦恼,因为有几种不同的脚本类型用于不同的事件。这个教程仅使用影片和行为这两种类型的脚本。要改变一个脚本,首先要在角色成员窗口选择这个脚本:

在这里你可以看到选择的是角色成员3这个脚本。
接着,在Property Inspector面板的Script标签下,你可以把脚本改变成Movie、Behavior或Parent脚本(注意:在这个教程中我们不使用Parent脚本)。
按此在新窗口浏览图片
当你改变了脚本的类型你会看到这个脚本的图标也随着改变了。按常规惯例,在整个影片中你最好由一个Movie脚本来转交事件,例如象一个键盘事件。通常有几个Behavior脚本,必需把他们拖放到需要行为的精灵上。
.如果某些事件不能工作,可能是你没有正确的拖放它们。

装配游戏
在Property Inspector面板把舞台改为620×240,这会给你的游戏带来友善、宽广的感觉:
按此在新窗口浏览图片
接着,把所有的图像输入到Internal Cast窗口:
按此在新窗口浏览图片
然后输入DJ和Karin图形的演员表,我已经假设它们是一个演员表,为让影片正确播放我已设置了所有动画的注册点。
这个游戏共有3帧,在第一帧获取大多数的动作。把背景图像拖放到精灵通道1上。
现在,我们将增加少量的代码,我相信你可以很熟练的完成。在第一帧的脚本区双击,并增加这些代码:
on exitframe me
  go to the frame
end

按此在新窗口浏览图片
你将看到那个行为出现在演员表和总谱中第一帧的脚本区。拷贝并粘贴这个行为到其它两帧:
按此在新窗口浏览图片
然后让我们把背景图像从角色成员窗口拖放的精灵通道1上:
按此在新窗口浏览图片
下面我们将加入角色。现在制作这个游戏看上去很令人激动,我们将增加一个“呼吸”循环,也就是说,动画角色除了呼吸之外不作任何事情。这是在没有按键被按下时发生的事情,其实角色更本没有做任何事情,虽然如此,影片仍然看上去很酷。
拖放Karin的第一个呼吸图像(Karin_breath_01)到精灵通道4上,并拖放DJ的第一个呼吸图像(Dj_breath_01)到精灵通道7上:
按此在新窗口浏览图片
然后,我们需要把这两个图像的油墨改为Matte,这样可以去掉角色周围的白色,并且稍后可以让我们容易做碰撞检查。当你象这样做游戏时,Matte是非常有用的,因为可以以一个像素的级别而不是以一个矩形的级别检测碰撞:
按此在新窗口浏览图片
你可以看到如果你正确的设置了Matte油墨,背景图像会完全显示在角色的后面。
使用FlipHorizontal按钮把DJ翻转到面向另外一个方向,把这个角色安排在远离另外一个角色的地方,但是确保他们的脚线处于同一水平线上,否则,一个角色似乎在空中行走!这是游戏开始的位置。看上去有点象这样:

规划战斗
现在我们用合乎逻辑的方法处理战斗。很多脚本让游戏进行这样的工作:每当用户按下一个按键,角色收到这个按键消息并在影片中进行处理;操纵(例如象行走、击拳和踢腿)角色;如此看来,我们真正要做的(在简单项目中)是用键盘来控制角色,当我们按下一个出拳的按键,我们的角色将播放一个击拳的动画。到目前为止,我们必需用心记住,我们必需有在一个新的动画开始前要等到前一个动画播放结束的机制,否则游戏会有跳动。所以,在按下一个出拳的按键后紧接着按下踢腿的按键,应该先显示击拳的动画,一旦这个动画结束,会播放踢腿的动画。当击拳的动画播放过程中不能用踢腿的动画取消。

获取按键
我们将制作一个处理按键的影片脚本。
.用这些代码制作一个影片脚本:
on startmovie
  clearglobals
  the keyDownScript = "dokeys"
end
on dokeys
  
  if keypressed("w") then sendSprite(4, #punch) --calls Karin's individual handler
  if keypressed("s") then sendSprite(4, #kick)
  if keypressed("a") then sendSprite(4, #left)
  if keypressed("d") then sendSprite(4, #right)
  
  if keypressed("i") then sendSprite(7, #punch) --call DJ's sprites individual handler
  if keypressed("k") then sendSprite(7, #kick)
  if keypressed("j") then sendSprite(7, #left)
  if keypressed("l") then sendSprite(7, #right)
end 

这些代码做什么事情? 嗯,我们从Startmovie处理程序开始,我们必需清除所有全局变量(这样作总是不错的开始),我们把自定义的dokeys处理程序设置给KeyDownScript,现在,每当按下键盘上的一个按键,它都会访问dokeys处理程序。
在dokeys处理程序中,我们把W、S、A和D设置给Karin,把I、K、J和L设置给DJ。你会注意到每个按键都会发送消息给精灵4(Karin)或精灵7(DJ),每个信息让它们做出拳、踢腿、向左移动或向右移动的动作,目前为止相当合乎逻辑,是吗?

(一)(二)(三)(四)


.