Sandy引擎学习笔记:摄影机
第三课程:如何使用摄影机?通过摄影机移动来使摄影的对象产生变化,这样会使动画变得容易。因为你不需要改变观察对象的的属性,只是改变摄影机的变化
- 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;
- }
- }
- }
- }
通过键盘控制,使摄影机可以上下左右,前后旋转推进。
转载于:https://www.cnblogs.com/guoyiqi/archive/2008/10/11/2069484.html
Sandy引擎学习笔记:摄影机相关推荐
- sandy引擎学习笔记: 创建一个立方体
问题:如何利用sandy的类库去创建一个立方体呢? 首先,我们要先了解sandy类库的结构 可以看到上面就官方网放出的类库表,有一些很容易理解,像sandy.events 这个和flash.event ...
- 【vn.py学习笔记(三)】vn.py事件引擎 学习笔记
[vn.py学习笔记(三)]vn.py事件引擎 学习笔记 1 时间驱动 2 事件驱动 3 事件引擎工作流程 4 事件引擎结构 4.1 事件队列 4.2 事件处理线程 4.3 事件处理函数字典/通用事件 ...
- Nd2d引擎学习笔记
写在前面: 最近很长一段时间都在致力于移动互联网游戏的开发,安卓,IOS,也包括服务器,最近把服务器搞完以后,接到上级指示,需要服务器兼容手游和页游.所以我就着手准备制作一个页游客户端的DEMO. 一 ...
- Volecity模板引擎学习笔记一
最近项目中用到了volecity模板,这里做一下笔记,学习中...相比较 FreeMarker 而言,Velocity 更加简单.轻量级,但它的功能却没有 FreeMarker强大. 1,首先结合开发 ...
- min3d 引擎学习笔记之一
min3d是一个小巧的android 3d UI引擎, 最近想对其进行深入源码分析, 在深入学习之前, 还是先学会怎么用它吧. min3d是基于opengl es 1.x的, 它封装了opengl 的 ...
- 虚幻引擎学习笔记——Month1 Week2
Day1 学习程序的方法: 先模仿课堂案例,再将其灵活运用到作业中 把每次遇到的问题和错误及相应的解决方法记录下来 程序基础: 变量:程序运行时存储数据的手段(计算机内存中开辟一块存储空间,当程序用到 ...
- 虚幻引擎学习笔记——Month1 Week3
Day1 上周简单总结 创建基础数据类型变量,如布尔.浮点.整型等,系统会自动加默认值.而自己创建的变量系统不会赋默认值,为防止变量为空所带来的问题,需要自己对其赋值 对象类型的变量:既可以存该对象本 ...
- Chipmunk-js物理引擎学习笔记
一.基本概念 空间:在Chipmunk中,空间是所有对象容器.因此,刚体.形状.链接节点等对象都需要添加到空间中.空间控制这些对象的相互作用. 刚体:物理上的刚体指的是在运动和受力作用后,形状和大小不 ...
- tesseract-ocr引擎学习笔记
文章目录 历史 安装 安装tesseract-ocr引擎 安装识别语言包 安装pyocr tesseract的使用 参考链接 历史 光学字符识别(OCR,Optical Character Recog ...
最新文章
- linux r服务安装失败,R包:RCurl和curl包在Linux上安装失败
- XiaoluD的留言板
- 改变MATLAB仿真出来的图的线条颜色表
- 如何用pip指令将python包安装到虚拟环境中
- nrf51822-提高nordic ble数据发送速率
- 实现一个顺序表的建立、查找、插入和删除操作【数据结构实验报告】
- php获取文件目录文件名,php获取路径中的文件名的方法有哪些
- VMware中安装Centos 7
- ADO.NET编程(4)根据条件查询DataTable的值
- php 操作xls,php中使用PHPExcel操作excel(xls)文件
- python的sift算法_opencv python SIFT(尺度不变特征变换)
- android Xmpp+openfire 消息推送 :SASL authentication failed using mechanism DIGEST-MD5
- 中医移动医疗_人工智能为中医赋能 上海祉云医疗将再次亮相2021健博会北京展...
- Hive安装详细步骤
- jquery版本之间的冲突
- 计算机英语calculate,计算英语
- 【JavaSE系列】 第九话 —— 多态那些事儿
- 【算法】3 由招聘问题看随机算法
- Linkerd2入门
- (一) 一元线性回归方程 梯度下降
热门文章
- mysql 7天自动拒单功能,mysql查询最近7天的数据,没有数据自动补0
- matlab将模型解封装,模型保护
- MATLAB Simulink
- MathWorks 中国
- JSP根据状态动态改变数据表格按钮
- Android入门(三) | Android 的日志工具 Logcat
- MySQL 锁的相关知识 | lock与latch、锁的类型、简谈MVCC、锁算法、死锁、锁升级
- leetcode57. 插入区间
- 动态规划-背包是否装满
- Nginx 配置UDP负载均衡
- C++:14---虚继承,虚函数,多态
- Python模块(7)-SciPy 简易使用教程