发信人: 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(初始化文件):项值可引用,可更改。
 
 
 ------------------------------------
 方伞·内疚中……
 
  | 
 
 
 |