Sandy引擎学习笔记:摄影机
2012-02-16 20:34
197 查看
第三课程:如何使用摄影机?通过摄影机移动来使摄影的对象产生变化,这样会使动画变得容易。因为你不需要改变观察对象的的属性,只是改变摄影机的变化
package
{
import flash.display.Sprite;
import flash.events.*;
import sandy.core.Scene3D;
import sandy.core.data.*;
import sandy.core.scenegraph.*;
import sandy.materials.*;
import sandy.materials.attributes.*;
import sandy.primitive.*;
import sandy.parser.*;
import flash.ui.Keyboard;
public class My3D extends Sprite
{
private var scene:Scene3D;
private var camera:Camera3D;
private var pot:Shape3D;
public function My3D()
{
var parser:IParser = Parser.create("asset/teieraASE.ASE",Parser.ASE );//导入ase格式,让它在flash里面重写绘画
parser.addEventListener( ParserEvent.FAIL, onError );//模型导入失败监听
parser.addEventListener( ParserEvent.INIT, createScene );//初始化监听事件
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
parser.parse();//加载文件
}
private function onError( pEvt:ParserEvent ):void
{
trace("加载文件错误");
}
private function createScene(p_eEvent:ParserEvent ):void
{
camera = new Camera3D( 500, 300 );//建立摄影机
camera.y = 30;
camera.z = -200;
var g:Group = Group( p_eEvent.group);
pot = g.children[0] as Shape3D;//将模型转为shape3d 类型
pot.x = 0;
var materialAttr:MaterialAttributes = new MaterialAttributes(new LightAttributes( true, 0.2 ) );
var material:Material = new ColorMaterial( 0xE0F87E, 0.9, materialAttr);//添加颜色材质和和光线
material.lightingEnable = true;//开启光线
var app:Appearance = new Appearance( material);//创建一个物体表面
pot.appearance = app;
scene = new Scene3D( "scene", this, camera, g );
addEventListener( Event.ENTER_FRAME, enterFrameHandler );
}
private function enterFrameHandler( event : Event ):void
{
//pot.pan +=3;
scene.render();
}
private function keyPressed(event:KeyboardEvent):void
{
switch (event.keyCode)
{
case Keyboard.UP :
camera.tilt +=2;//上移动
break;
case Keyboard.DOWN :
camera.tilt -=2;//下移动
break;
case Keyboard.RIGHT :
camera.pan -=2;//左移动
break;
case Keyboard.LEFT :
camera.pan +=2;//右移动
break;
case Keyboard.CONTROL :
camera.roll +=2;//旋转
break;
case Keyboard.PAGE_DOWN :
camera.z -=5;//向后移动
break;
case Keyboard.PAGE_UP ://后移动
camera.z +=5;
break;
}
}
}
}
通过键盘控制,使摄影机可以上下左右,前后旋转推进。
package
{
import flash.display.Sprite;
import flash.events.*;
import sandy.core.Scene3D;
import sandy.core.data.*;
import sandy.core.scenegraph.*;
import sandy.materials.*;
import sandy.materials.attributes.*;
import sandy.primitive.*;
import sandy.parser.*;
import flash.ui.Keyboard;
public class My3D extends Sprite
{
private var scene:Scene3D;
private var camera:Camera3D;
private var pot:Shape3D;
public function My3D()
{
var parser:IParser = Parser.create("asset/teieraASE.ASE",Parser.ASE );//导入ase格式,让它在flash里面重写绘画
parser.addEventListener( ParserEvent.FAIL, onError );//模型导入失败监听
parser.addEventListener( ParserEvent.INIT, createScene );//初始化监听事件
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
parser.parse();//加载文件
}
private function onError( pEvt:ParserEvent ):void
{
trace("加载文件错误");
}
private function createScene(p_eEvent:ParserEvent ):void
{
camera = new Camera3D( 500, 300 );//建立摄影机
camera.y = 30;
camera.z = -200;
var g:Group = Group( p_eEvent.group);
pot = g.children[0] as Shape3D;//将模型转为shape3d 类型
pot.x = 0;
var materialAttr:MaterialAttributes = new MaterialAttributes(new LightAttributes( true, 0.2 ) );
var material:Material = new ColorMaterial( 0xE0F87E, 0.9, materialAttr);//添加颜色材质和和光线
material.lightingEnable = true;//开启光线
var app:Appearance = new Appearance( material);//创建一个物体表面
pot.appearance = app;
scene = new Scene3D( "scene", this, camera, g );
addEventListener( Event.ENTER_FRAME, enterFrameHandler );
}
private function enterFrameHandler( event : Event ):void
{
//pot.pan +=3;
scene.render();
}
private function keyPressed(event:KeyboardEvent):void
{
switch (event.keyCode)
{
case Keyboard.UP :
camera.tilt +=2;//上移动
break;
case Keyboard.DOWN :
camera.tilt -=2;//下移动
break;
case Keyboard.RIGHT :
camera.pan -=2;//左移动
break;
case Keyboard.LEFT :
camera.pan +=2;//右移动
break;
case Keyboard.CONTROL :
camera.roll +=2;//旋转
break;
case Keyboard.PAGE_DOWN :
camera.z -=5;//向后移动
break;
case Keyboard.PAGE_UP ://后移动
camera.z +=5;
break;
}
}
}
}
通过键盘控制,使摄影机可以上下左右,前后旋转推进。
相关文章推荐
- Sandy引擎学习笔记:摄影机
- Sandy引擎学习笔记:摄影机
- Sandy引擎学习笔记:Mode7
- Sandy引擎学习笔记:swf影片剪辑纹理贴图
- Sandy引擎学习笔记:导入3dsmax模型
- Sandy引擎学习笔记: 三维效果初试
- Sandy引擎学习笔记:导入3dsmax模型
- Sandy引擎学习笔记:导入3dsmax模型
- Sandy引擎学习笔记:鼠标交互
- Sandy引擎学习笔记: 三维效果初试
- Sandy引擎学习笔记:颜色材质
- Sandy引擎学习笔记:鼠标交互
- sandy引擎学习笔记: 创建一个立方体
- Sandy引擎学习笔记:纹理贴图
- sandy引擎学习笔记: 创建一个立方体
- sandy引擎学习笔记: 创建一个立方体
- Sandy引擎学习笔记: 三维效果初试
- Sandy引擎学习笔记:swf影片剪辑纹理贴图
- Sandy引擎学习笔记:swf影片剪辑纹理贴图
- Sandy引擎学习笔记:纹理贴图