精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>游戏元素>>● 游戏开发>>杂项内容>>MMF基础(转)

主题:MMF基础(转)
发信人: ace50(方伞)
整理人: nhyjq(2003-01-05 15:45:13), 站内信件
以下是我们老师的教程,他好象是“谢绝转载”的,对不起他了
不过我的心得,和这是差不多的

#########软件简介:

 MMF是一个面向对象的游戏程序和多媒体程序设计工具,可以创建 “仙剑奇侠传”、 “星际争霸”风格的二维游戏、Web网页游戏、CAI软件、交互式动画、会议演示文稿、电脑屏幕保护程序等。其后续产品Jamagic可以创建“雷神之锤”、“古墓丽影”风格的实时三维游戏。

 该软件还提供了开放的开发接口,可以用VC++编写扩展对象,加入MMF。有众多的第三方开发商在为MMF开发扩展对象。

 软件使用环境:中英文Windows 98/me/2000/xp。

#########程序设计步骤:

1.         建立一个项目专用子目录。

2.         选择菜单File/New/Project,建立一个Project1窗口。

3.         在Project1上单击右键,选择Insert an application,建立Application1。双击Application1下的Properties项,在新出现的Properties窗口中单击Window项,可以设定应用程序的显示窗口的大小。

4.         在Application1上单击右键,选择Insert a frame,可以添加一个frame。frame意为“场景”。游戏程序可以决定什么时候显示哪个frame。双击Untitled frame下的Properties项,在新出现的Properties窗口中单击Frame项,可以设定一个场景的大小。在Untitled frame上双击,出现Frame Editor。

5.         在场景上单击右键,选择Insert an object,选择各种对象,然后在场景上目的位置处点击,出现相应的对话框,设置后退出,一个对象就出现在Frame上。也可以选择菜单View/Multimedia Fusion Libraries,从中选择可用的对象,直接拖到场景上使用。

6.         首先添加Quick Backdrop(快速背景对象,可以重复平铺)或Backdrop(背景对象,不能重复平铺)。右击这两种对象可设置其各种属性,其中Properties/Obstacle项可设置对象为不允许活动对象通过的障碍。

7.         再添加Active(活动对象)。活动对象是最常用的,也是参数设置最复杂的。右击活动对象,可选择Edit项,对活动对象进行编辑;可选择Properties/New Movement,选择一种运动方式。首先选择玩家控制角色的运动方式,可选8方向运动方式,这时出现设置对话框,可以设置角色的移动速度、加速度、减速度、可移动方向、初始方向等。然后设置计算机控制角色的运动方式,可以设置为弹球运动方式或路径运动方式。路径运动方式的设置方法:单击New Line按钮,在场景上右击,就出现一条直线,多次右击,即可建造一条弯曲的移动路径,单击左健结束路径。在移动路径的节点上点击右键,可以设置节点的速度、暂停等属性。

8.         在工具栏上点击“Event editor”按钮,出现事件编辑器窗口。游戏中所有的对象都横排在最上边的一行中,而条件描述在左边从上向下排列。于要在其前插入新事件的事件行序号按钮上右击,选择Insert/A new event,出现new condition对话框。右击一个对象,选择一个条件,例如“Collision between A and B”。如果该条件的结果是“A反弹”,则在该事件行和最上面一行的A对象交叉的网格中右击鼠标,选择动作“Movement/Bounce”。网格中出现一个对号,表示网格内有动作。当鼠标移至网格上时,格内动作就显示出来。所有的事件行都可以这样添加。

9.         在工具栏上点击“Run Application”按钮,可以随时运行游戏观察效果。

10.     最后打包,形成可安装、可独立运行的游戏软件或多媒体软件。

##########编辑器系统:

1.Project Explorer:项目编辑器,Project Properties定义所有Application的缺省设置。一个Application可以更改某些设置,但其余设置使用Project Properties中的设置。

2.Application Explorer:应用编辑器,含全局变量,全局事件。

3.Storyboard Editor:故事板编辑器,显示各场景略图。

4.Frame Editor:场景编辑器

5.Animation Editor:动画编辑器

6.Morphing Processor:变形动画编辑器

7.Picture Editor:图形编辑器

8.Icon Editor:图标编辑器

9.Event Editor:事件编辑器,游戏程序设计就是在这里进行的。

10.Event List Editor:事件列表编辑器,主要用来提供游戏程序打印视图。

11.Time Line Editor:时间线编辑器

12.Step-Through Editor:步进编辑器,没有实用价值。

13.Expression Evaluator:表达式求值器,在这里调用对象的函数。

###########对象编辑:

对象清单:13类57个对象

1. Animation objects:

Active
FLI
3D Sprite

2. Audio objects:

CD-Audio
Mixer
Sound

3. Communication objects:

Active X
File
MCI
Network
Shared Data
Sub-Application

4. Control objects:

Create New Objects
Print
Special
Storyboard Controls
Window Control
Window Shape

5. Games objects:

Analog Joystick
Lives
Score
Hi-Score
Player

6. Graphics objects:

Active Picture
Backdrop
Draw
Picture
Quick Backdrop

7. Information Storage and Retrieval objects:

Array
Counter
INI
ODBC
Search

8. Internet objects

FTP
Netscape
Vitalize! Plug-In

9. Menu objects

Combo Box
List
Popup Menu
Tree Control

10. Text objects:

Edit
Formatted Text
Rich Edit
String

11. Time and Date objects:

Date & Time
Timer

12. User Control objects:

Button
Click Blocker
Cursor
Mouse & Keyboard
Question & Answer
System Box

13. Video objects: 

Direct Show
MPEG 
QuickTime
QuckTime VR
AVI

Active Object的右键快捷菜单

Edit:动画编辑,在下面介绍

Insert a object

Properties

Explore from here

Fade in

Fade out

Alterable values

Name

Icon

Ink effect

Memory:可设定对象为全局对象,全局对象可在一个Application的所有Frame中使用。

New movement:在下面介绍。

Behavior #1:行为

Qualifier:类,对类定义的事件对该类所属的所有对象都起作用。

Scrolling

Collisions

Display

View:层

Align in Frame

Cut

Copy

Delete

Rename

Clone:克隆,创建与原对象行为不同的新的独立对象。

Duplicate:复制,创建与原对象行为相同的对象。

Info

 动画编辑:

 热点:对象标称位置点。

 动作点:发射点。

 最低动画速度:对应最低移动速度。

 最高动画速度:对应最高移动速度。

 从一个方向序列变8个方向序列的方法:

 动画序列包括:walking,running,appearing,disappearing,bouncing,shooting,jumping,falling,climbing,crouch down,stand up,user animation。

 有些动画序列会自动播放。对象第一次在屏幕上出现或被创建时,自动播放Appearing序列。对象被Destroy动作消除时,自动播放Disappearing序列。对象用Shoot An Object 动作发射另一个对象时,自动播放shooting序列。一个具有平台运动的对象,当走出平台时,自动播放falling序列。

 可以在动画编辑器中添加和编辑动画序列,也可以创建自己的动画序列。

 对象缺省播放的动画序列是stopped。你可在Event editor中用Animation/Change/Animation Sequence动作更改对象播放的动画序列。

 New movement属性设置:

玩家控制的运动:

Mouse Controlled:使对象跟随鼠标运动。

Eight Directions:使对象跟随键盘或游戏杆在8个方向运动。

Race Car:使对象跟随键盘或游戏杆象赛车一样运动。

Platform:使对象跟随键盘或游戏杆象在平台上行走一样运动。

电脑控制的运动:使对象看起来好象在自己运动。

Bouncing Ball:使对象沿直线运动。

Path Movement:使对象按预先设定的路径运动。

静态运动:使对象静止。高级用户可通过设置对象的X,Y坐标使对象运动。

########事件编辑:

介绍编程的基本概念

1.Event(事件):是Multimedia Fusion程序的基础。加入Frame的每一个元素都是一个对象,每一个对象可以有许多事件。 在事件编辑器里,每一个事件行包含一个或多个条件、动作。例如, A对象与B对象相撞(条件),A对象反弹(动作),事件就是条件和动作的集合。

插入事件:

在事件编辑器里,于要在其前插入新事件的事件行序号按钮上右击。 

选择Insert,再选择A new event。 

右击一个对象,选择一个条件。 

选择对应该条件并在一个对象之下的网格。 

选择一个动作。 

删除事件:

2.Behavior(行为):是一组仅属于一个对象的事件,这些事件不会出现在Frame所属的事件编辑器里。如果你将一个对象拷贝粘贴进另一个Frame里,它的行为也一起带入。

3.Global Event(全局事件):在整个Application运行期间都起作用。可以在Application的Global events属性中编辑全局事件。

4.Event Group(事件组):是一组事件。事件组可以激活执行,也可以关闭不执行。添加一个事件组的方法:

在事件编辑器里,于要在其前插入事件组的事件行序号按钮上右击。 

选择Insert,再选择A group of events。 

5.Conditions(条件):是动作发生的触发器。运行时程序检测条件是否满足,如果满足,相应的动作就发生。动作填写在条件行和对象列相交的网格里。程序开始后从第一个事件行的条件开始依序往下检测执行。检测到最后一个事件行时,重新开始检测第一个事件行,开始一个新的事件循环。 

6.Negating Condition(否定条件):用Negate操作符可以更改一个已存在的条件:

在事件编辑器里,右击你想否定的条件。 

选择 Negate 。 

7.  Multiple Condition(多重条件):在一个事件行里可以添加多个条件,组成逻辑与(并且)条件,方法如下:

在事件编辑器里,右击已有一个条件的事件行的序号钮。 

选择Add a new condition。 

添加一个新条件 

8.Limit Condition(限制条件):限制条件用来限制一个事件行内动作的执行次数。许多事件行持续满足,但你也许并不想让动作持续执行,这时就可以添加限制条件,限制动作的持续执行。例如,你想在每次两个对象重叠时向计数器加1,使用限制条件可以避免在两个对象重叠的整个时间计数器不停地加1。限制条件有:

Run this event once:程序在一个Frame内执行期间,条件满足时只执行一次动作,即使后来条件再次满足,也不会第二次执行动作。

Only one action when event loops:条件持续满足时,只执行一次动作。若条件中断持续满足一次,再次满足时可以第二次执行动作。

Repeat:条件持续满足时重复执行特定次数的动作。

Restrict actions:条件持续满足时,每隔一段时间执行一次动作。

9.Always/Never(总是/永不条件)

Always:条件总是满足,动作总是执行。

Never: 条件永不满足,动作永不执行。用来注销但不删除一个事件行。

10.Action(动作):一个条件满足时动作就被触发。动作是条件的结果。动作的排列次序决定动作的执行顺序。要改变动作的顺序,右击事件行的序号钮,选择Edit the Actions。这时打开只有选定事件行的动作编辑器,你可以用拖动的办法改变动作的执行顺序。

添加一个动作:

编辑一个动作: 

删除一个动作:

Spread value(散布值): 给duplicate复制的对象的可变值从给定值开始赋值。

11.Function(函数):功能是从对象获取属性数据。编辑需要数据或文本的条件和动作时,可以调出Expression Evaluator。通过Expression Evaluator里的 Retrieve Data From An Object按钮可以访问各对象的函数。

12.Value(数值):

Global value(全局值):可在一个Application的所有Frame中保持数值,用来在不同Frame间快速传递数据。有16个全局变量。

Alterable Value(可变值):可引用,可更改。

Fixed value(固定值):对象的标识值,可引用,不可更改。

Counter(计数器):

Array(数组):

Ini(初始化文件):项值可引用,可更改。


------------------------------------
方伞·内疚中……


[关闭][返回]