flare 3D 黄色星球案例
目标:在完成本教程之后,你将了解在Flash中开发一个完整 3D 游戏所需的基本概念。 在本范例中,你将使用 Stage3D 和 Flare3D 处理用于创建一个名称为 Yellow Planet 的游戏的文件
目录:
- 设置 Flash Builder 以便于使用 Stage3D 和 Flare3D 库
- 步骤1:将 3D 模型加载到 Flash
- 步骤2:使用 ActionScript 将行为应用于对象
- 步骤 3:放置相机
- 步骤 4:添加互动功能和定义光线方向
- 步骤5: 检测与障碍物之间的冲突
- 步骤 6:添加粒子效果以仿真着火和烟雾
- 步骤7:控制角色运动状态
- 步骤 8:将惊险理念融入游戏逻辑
-
步骤9:将声音文件与 2D 元素进行集合
-
-
-
步骤10:设立游戏目标及实现最终调整
2.添加编译器参数
3.更新 HTML 设置以满足 Stage3D 兼容性要求
在 project 文件夹中,找到该html-模板文件,然后在配置玩家的每个位置上添加下面代码:
params.wmode = "direct";
4.项目资源
assets 文件夹之中:
- 3D Max文件:所有用于本游戏的模型均使用 3D Max 进行建模。你可以根据需要编辑这些文件以及修改这些模型。 模型文件均有描述性的名称,以便它们能够方便地与相应的游戏组件一一对应。
- 纹理:如果你查看 assets 文件夹,你可以验证用于游戏模型的各种纹理。
- Assets.fla:该 Flash Professional 文件包含所有用于游戏用户界面的 2D 元素。 名称为 Assets.swc 的文件是一个由该文件生成的组件。
- Flare3D files: 文件 astronaut.f3d、planet.f3d 和 shadow.f3d 是使用 Flare3 插件从 3D Max 直接导入的。这些文件放置于 bin 文件夹中。
步骤一:将 3D 模型加载到 FLASH
1.创建一个保存3d对象的容器(Scene3D,Viewer3D),
var scene:Scene3D = new Scene3D(container);
2.将3d模型加入项目中
var astronaut:Pivot3D=scene.addChildFromFile("astronaut.f3d");
Pivot3D 是 Flare3D 中最基本的对象。 它与空影片剪辑相似,因为你可以对它进行移动、旋转和转换以及将其它 3D 对象添加到其中。
View Codepackage
{
import flare.basic.*;
import flare.core.*;
import flash.display.*;
import flash.events.*;
[SWF(frameRate = 60, width = 800, height = 450, backgroundColor = 0x000000)]
/**
* Starting the project.
*/
public class YellowPlanet_01 extends Sprite
{
private var scene:Scene3D;
private var planet:Pivot3D;
private var astronaut:Pivot3D;
public function YellowPlanet_01()
{
// stage setup.
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
// In this first steps, just change the scene by a Viewer3D to be able to look around the scene.
scene = new Viewer3D(this);
scene.addEventListener( Scene3D.PROGRESS_EVENT, progressEvent );
scene.addEventListener( Scene3D.COMPLETE_EVENT, completeEvent );
// Loads the external files and stores the references into planet and astronaut objects.
planet = scene.addChildFromFile( "planet.f3d" );
astronaut = scene.addChildFromFile( "astronaut.f3d" );
}
private function progressEvent(e:Event):void
{
trace( scene.loadProgress );
}
private function completeEvent(e:Event):void
{
trace( "load complete!" );
}
}
}
-
步骤10:设立游戏目标及实现最终调整
-
-