A3D 2 -- 坐标系统
作者:灰色的狼 日期:2008-06-04 11:54
A3D 的坐标系统和以前我所接触过的坐标方向有所区别,正负还是通过"右手法则"可以判断,但是3轴方向如图:

---------------------------------- fgx ------------------------------------
- package cn.com.xy50 {
- import alternativa.engine3d.controllers.CameraController;
- import alternativa.engine3d.core.Camera3D;
- import alternativa.engine3d.core.Object3D;
- import alternativa.engine3d.core.Scene3D;
- import alternativa.engine3d.display.View;
- import alternativa.engine3d.materials.FillMaterial;
- import alternativa.engine3d.primitives.*;
- import alternativa.utils.FPS;
- import flash.display.Sprite;
- import flash.display.StageAlign;
- import flash.display.StageScaleMode;
- import flash.events.Event;
- public class Test1 extends Sprite {
- private var scene:Scene3D;
- private var view:View;
- private var camera:Camera3D;
- private var cameraController:CameraController;
- private var boxX:Box;
- private var boxY:Box;
- private var boxZ:Cone;
- private var speed:Number=.1;
- public function Test1() {
- stage.scaleMode = StageScaleMode.NO_SCALE;
- stage.align = StageAlign.TOP_LEFT;
- createScene();
- }
- private function createScene():void
- {
- // 创造一个场景
- scene = new Scene3D();
- scene.root = new Object3D();
- boxX = new Box(100, 100, 100, 3, 3, 3);
- boxX.setMaterialToAllSurfaces(new FillMaterial(0xFF0000));
- scene.root.addChild(boxX);
- boxX.x=-200;
- boxY = new Box(100, 100, 100, 3, 3, 3);
- boxY.setMaterialToAllSurfaces(new FillMaterial(0x00FF00));
- scene.root.addChild(boxY);
- boxY.x=0;
- boxZ = new Cone(100, 100, 3, 3, 3);
- boxZ.setMaterialToAllSurfaces(new FillMaterial(0x0000FF));
- scene.root.addChild(boxZ);
- boxZ.x=200;
- // 加入相机
- camera = new Camera3D();
- camera.x = 0;
- camera.y = -500;
- camera.z = 100;
- scene.root.addChild(camera);
- view = new View();
- addChild(view);
- view.camera = camera;
- // 相机控制
- cameraController = new CameraController(stage);
- cameraController.camera = camera;
- cameraController.setDefaultBindings();
- cameraController.checkCollisions = true;
- cameraController.collisionRadius = 20;
- cameraController.lookAt(boxY.coords);
- cameraController.controlsEnabled = true;
- // 显示FPS
- FPS.init(stage);
- stage.addEventListener(Event.RESIZE, onResize);
- stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
- onResize(null);
- }
- private function onResize(e:Event):void {
- view.width = stage.stageWidth;
- view.height = stage.stageHeight;
- }
- private function onEnterFrame(e:Event):void {
- boxX.rotationX+=speed;
- boxY.rotationY+=speed;
- boxZ.rotationZ+=speed;
- // 处理用户输入
- cameraController.processInput();
- // 计算渲染场景
- scene.calculate();
- }
- }
- }
这是一个更加清晰显示坐标系统的例子.
玩GE,惊人发现。。。
作者:灰色的狼 日期:2008-06-01 12:35
A3D 1 -- HelloWorld
作者:灰色的狼 日期:2008-06-01 06:41
A3D的开发团队是俄罗斯朋友,所以官方的注释教程居然是俄语。![]()
我重新注释一下吧。
- package {
- import alternativa.engine3d.controllers.CameraController;
- import alternativa.engine3d.core.Camera3D;
- import alternativa.engine3d.core.Object3D;
- import alternativa.engine3d.core.Scene3D;
- import alternativa.engine3d.display.View;
- import alternativa.engine3d.materials.WireMaterial;
- import alternativa.engine3d.primitives.Box;
- import alternativa.utils.FPS;
- import flash.display.Sprite;
- import flash.display.StageAlign;
- import flash.display.StageScaleMode;
- import flash.events.Event;
- public class Test1 extends Sprite {
- private var scene:Scene3D;
- private var view:View;
- private var camera:Camera3D;
- private var cameraController:CameraController;
- private var box:Box;
- public function Test1() {
- stage.scaleMode = StageScaleMode.NO_SCALE;
- stage.align = StageAlign.TOP_LEFT;
- // 创造一个场景
- scene = new Scene3D();
- scene.root = new Object3D();
- box = new Box(100, 100, 100, 3, 3, 3);
- box.setMaterialToAllSurfaces(new WireMaterial(1, 0xFFFFFF));
- scene.root.addChild(box);
- // 加入相机
- camera = new Camera3D();
- camera.x = 100;
- camera.y = -150;
- camera.z = 100;
- scene.root.addChild(camera);
- view = new View();
- addChild(view);
- view.camera = camera;
- // 相机控制
- cameraController = new CameraController(stage);
- cameraController.camera = camera;
- cameraController.setDefaultBindings();
- cameraController.checkCollisions = true;
- cameraController.collisionRadius = 20;
- cameraController.lookAt(box.coords);
- cameraController.controlsEnabled = true;
- // 显示FPS
- FPS.init(stage);
- stage.addEventListener(Event.RESIZE, onResize);
- stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
- onResize(null);
- }
- private function onResize(e:Event):void {
- view.width = stage.stageWidth;
- view.height = stage.stageHeight;
- }
- private function onEnterFrame(e:Event):void {
- // 处理用户输入
- cameraController.processInput();
- // 计算渲染场景
- scene.calculate();
- }
- }
- }
------------------------------ 祈祷的分割线 ----------------------------
// 创建一个3D场景。场景可以装载一切其他的物体
scene = new Scene3D();
// 设置场景的根对象。根对象在场景中是一个全局坐标系统。
scene.root = new Object3D();
// 创建一个立方体
box = new Box(100, 100, 100, 3, 3, 3);
// 设置立方体的原始材质
box.setMaterialToAllSurfaces(new WireMaterial(1, 0xFFFFFF));
// 添加立方体到根对象
scene.root.addChild(box);
// 创建一个相机和设置其坐标
camera = new Camera3D();
camera.x = 100;
camera.y = -150;
camera.z = 100;
// 添加相机到根对象
scene.root.addChild(camera);
// 创建视图并连接到相机
view = new View();
addChild(view);
view.camera = camera;
// 创建一个相机控制器并连接到相机
cameraController = new CameraController(stage);
cameraController.camera = camera;
// 设置默认相机管理
cameraController.setDefaultBindings();
// 设置相机碰撞为真
cameraController.checkCollisions = true;
// 碰撞半径为20
cameraController.collisionRadius = 20;
// 设置相机视觉方向为立方体
cameraController.lookAt(box.coords);
// 相机控制为真
cameraController.controlsEnabled = true;
// 设置视图大小为舞台大小
view.width = stage.stageWidth;
view.height = stage.stageHeight;

儿童节·祈祷的主题
作者:灰色的狼 日期:2008-06-01 06:38
Alternativa3D API 放出
作者:灰色的狼 日期:2008-06-01 06:08
5月31号,真是5月底啊。官方网站:http://alternativaplatform.com/en/
能在网站上下到5.0的api。并有一些技术文档。
从官网上还得知,AlternativaGUI 和AlternativaCore也在开发当中。
AlternativaGUI 提供基本的界面元素,不知道和aswing相比怎么样。
AlternativaCore提供多人服务器,java开发,提供“客户端申请,交流信息,同步数据,支持的游戏逻辑,分配资源”等 。

休闲之都·首夜·印象
作者:灰色的狼 日期:2008-06-01 01:54
Alternativa 3D 跟踪 FP10
作者:灰色的狼 日期:2008-05-28 15:45
随着FP10测试版的发布,Alternativa 3D的两个经典demo,也放出了FP10版本的demo.
![]() | ![]() |
http://blog.alternativaplatform.com/en/2008/05/16/alternativa-3d-flash-player-10-astro/
注意,测试需要把FlashPlay升级到Flash play 10版本。
测试了一下FP10版本的速度,全程已经修改为高品质运行,速度保持在30 fps,相当流畅。。期待API的放出啊。。。
暂略沪,直奔杭
作者:灰色的狼 日期:2008-05-26 16:43
Flash Play 10 发布
作者:灰色的狼 日期:2008-05-15 15:04
支持3D渲染等等新特性已经初现端倪.
现已可以下载测试版,安装前先用删除工具删除旧有版本.
http://labs.adobe.com/technologies/flashplayer10/
































