CopperCube中文教程手册.doc_第1页
CopperCube中文教程手册.doc_第2页
CopperCube中文教程手册.doc_第3页
CopperCube中文教程手册.doc_第4页
CopperCube中文教程手册.doc_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CopperCube中文教程1。快速Reference1.1概述 Coppercube是一种工具来创建互动的3D场景,一个简单的方法 - 从简单的三维模型,观众全功能的3D游戏。基本上,这样的过程中创造这些幕后工作: 编辑您的Coppercube编辑器的三维场景。创建三维几何编辑器和/或导入其他3D建模工具了。应用碰撞设置,纹理,材料等,在场景中的项目。 选择一个目标(如Windows或Flash),然后点击发布来测试您的3D场景。 启动后CopperCube编辑器。 如果你还没有,你可以从网站Coppercube。 - - 1.2主要toolsThe编辑器使用非常简单:当启动编辑器,有一个主视图和工具栏。随着4查看端口按钮,它有可能改变当前活动视图到其他模式:从这个角度看现场,从上,左或右。 透视变化按钮。 您也可以使用快捷键为F1,F2,F3和F4键切换通过这些意见。有4个,你需要让自己熟悉重要的按钮: 在4个主要工具的按钮。 在4个按键的左边(移动相机,移动物体,旋转和缩放对象对象)是主要的工具,你将需要使用。选择其中一个,你可以修改对象的三维场景时最容易选择它,然后拖动对象上显示的那么一个箭头。您也可以使用快捷键,这个强,瓦,E和R。 - - 1.3添加项目到SceneThe最重要的事情是建立在您的3D场景对象。您可以通过点击标签场景编辑,在此工具栏按钮。 添加新项目到现场的按钮。 随着立方体按钮,您可以创建一个立方体,例如。双击关于在窗口中的纹理质地在下面会为它分配一个新的纹理。有创建球体,圆锥体和圆柱体以及其他按钮。但是对于更复杂的对象,你可能要导入一个现有的三维网状或一个您在外部三维如Maya,三维工作室,Softimage公司,搅拌机或Anim8or建模套件创建的。 Coppercube是可以导入的文件格式(如庞大的金额:0.3局副局长,obj的,b3d,CSM表示,金大中,二甲基甲酰胺,华侨城,irrmesh,lwo,第十,ms3d,my3D。 。目。lmts。BSP的。MD2的。STL)的,所以你只需要保存在这些支持的文件格式中的一种或使用你的网就在您的3D封装这些格式之一的出口国。要导入外部3D文件,使用命令文件 - “导入” - 静格或单击工具栏按钮,导入该文件。瞧,它现在在Coppercube,你可以把它,规模,编辑它的材料,并使用它在您的3D场景。 导入静态的网格。 下一页:定义相机控制器。定义相机ControllersIn以便确定如何应用你的CopperCube应控制相机的用户,你需要添加一个摄像头对象场景。只要按一下,在场景编辑工具栏选项卡相机按钮,将打开一个对话框,您可以选择使用相机类型: 新的相机对话框有几个相机类型可供选择: 简单相机:一个非常简单的相机,它不动。这台相机类型也非常有用,当你想计划自己的相机控制器。 自由飞行的镜头:一个由知名第一人称射击游戏摄像头。你可以自由地飞来飞去使用光标键走一走,看一看使用鼠标。 FPS游戏摄像头:从第一人称射击游戏着称的相机。你可以使用光标移动键,用鼠标四处看看。 模型查看器照相机:轨道在你的相机目标对象。 和其他一些 另外请注意,默认情况下,新的相机将在碰撞时的情景感动墙,将活跃在进入现场。如果你不希望这样,下面的选项取消。 - - 2.1调整摄像头控制器settingsAfter你添加了一个新相机的场景,你可以在行为标签的相机控制器的设置。通常,有一个第一人称射击游戏风格控制的行为(对于自由飞行和FPS游戏相机)或模型查看器控制相机风格的行为,如果你选择了移动时对几何碰撞,那么应该是一个移动时碰撞)的行为,以及: 新的相机对话框 通过选择行为之一的,可以调整自己的价值观,喜欢运动速度或到了该模型的控制器相机中心的距离。您可以添加与+按钮添加新的行为和删除现有的 - 按钮,但要小心处理这件事。 - - 你看DirectionAfter 2.2添加了新相机,你可能会注意到,这将有一条线连接到空间中的一点: 相机目标 这个小点表示的方向,相机会看看。您可以设定新的目标位置时,你选择摄像机taret点,只需将它: 更改相机的目标 相机的目标不仅是地方,相机会开始看,而且还为观众示范中心控制旋转相机。 - - 2.3 CollisionAfter你加入反对几何碰撞移动时,一个新的相机和选择时,您可能会注意到,这将有一个黄色的椭圆形周围绘制时选择了: 黄河绕椭球碰撞选择的摄像机 这是由行为被添加到相机。这种行为被命名为移动时发生碰撞,并可以在属性窗口的行为标签下找到: 在碰撞移动时的行为 当选择碰撞移动时的行为,你可以编辑其设置。在大小设置影响着周围的相机椭球的大小,所以这是对人的身体移动相机的大小。如果你想调整的头部位置,或在身体碰撞的眼睛,更改值相对位置。对于一个更大或更低的严重性,调整重力的价值。例如选择“0,-100,0”一个非常强大的引力下降,或“0,0,0”没有重力。 如果您需要在您究竟反对什么项目的相机碰撞场景,设置或取消设置的碰撞,在场景中的有关项目的属性选项卡设置复选框。 。的Flash(SWF)。TargetWhen创建具有CopperCube Flash应用程序,有几件事情要考虑:Flash平台(至少在它的版本9和10)是不是为了做高速3D渲染,虽然CopperCube闪光灯发动机设计最大限度的渲染速度,也有一些限制:对你的目标系统的不同,您只能使用一个场景中多边形的数量非常有限。对于一般的系统,这通常是一个价值在300 - 500多边形,但你可以增加这个值的场景,更多的材料和类型而定。 - - 3.1的Z -序IssuesThe Flash环境不支持的Z -缓冲区,需要的现代3D引擎所以在一些特殊场景中的地方,Z型排序问题可能发生,比如这里: 阿Z -顺序问题。 有几种方法来消除或减少这些问题: 解决方案1:巨大的分割成小的多边形 对于这些Z -顺序通常是问题的原因是背后有一个庞大的polgon较小,引擎无法决定正确的顺序来渲染的多边形。在改善这种情况,只需分裂成小的巨大的多边形。 解决方案2:删除重叠的多边形 您的3D几何模型以消除重叠的多边形。在这个例子一样: 该列是由巨大的矩形重叠的多边形。 而是试图以这种方式来模拟它: 较好:没有重叠了。 - - 3.2性能tipsThe Flash环境不是原先设计的三维图形渲染,所以它的表现目前没有好,因为它可能是。相较于一个专用的3D引擎(比如当使用Windows。CopperCube exe文件中的目标),三维图形的闪存性能其实是相当差。这里有一些提示,以提高您的3D场景的表现: 使用低分辨率的纹理:如果你能生活在一个大小为128x128 1024x1024像素,而不是与一个纹理,然后使用较小的。 多边形的三维场景的Flash平均金额不是很高。减少您的场景中的多边形数量,如果你能。不要模型背景墙上,或在无法看到反正现场部分。 如果您的3D建模套件支持烤成纹理光照图,而不是使用此功能的CopperCube内置lightmapper。它可以给你一个轻微的性能提升CopperCube闪光灯时只需要渲染渲染纹理层,而不是一两个。 在发布设置对Flash标签对话框中,您可以指定当Flash Player应该更新了现场。将它设置为只当相机移动,如果这是你的场景足够了。 - - 3.3使用ActionScript 3You脚本可以让你的CopperCube 3D动画场景更具交互性的使用ActionScript 3。有一个全面的AS3脚本参考此文档。 还有一个完整的例子可供选择:使用ActionScript 3运动。4。视窗TargetWhen创建Windows与CopperCube的EXE应用程序,还有一些特殊功能可用(exe文件)。: - - 。4.1创建单一命令行ArgumentsThe exe文件提供了一些命令行参数时启动它: -窗口部队将要在窗口模式而不是全屏模式启动的应用程序。 调试运行在调试模式下的应用。使调试控制台可见的,例如,当一个错误发生或脚本环境pritns一行文本。 脚本:使用与主脚本,而不是编译到应用程序文件指定的文件。 例子:下面的命令行就可以开始您在窗口模式应用程序: yourapplication.exe -窗口 下面将使用而不是编译脚本的脚本文件myscript.nut和调试控制台显示的文本行,如果有些是印在你的脚本。这对于发展没有CopperCube编辑器脚本文件的例子非常有用。 yourapplication.exe调试脚本:myscript.nut - - 4.1 SquirrelYou脚本可以让你的CopperCube立体图形。exe的场面更具交互性使用内置的脚本语言名为松鼠,这是simiar到C,Java和PHP。如果您想使用此功能,请执行下列步骤: 节省您的3D场景到一个硬盘上的文件的地方。例如到名为test.ccb文件。 创建为您的CopperCube文件,但扩展名为。螺母命名的文件,例如test.nut 编辑你喜欢的文本编辑这个文件(推荐:记事本+ +,它支持语法高亮松鼠)。当发布为Windows的。exe的文件现在,CopperCube将纳入的。exe文件中的脚本,并以此为主要脚本。 例:写在您的螺母文件的文本。: 打印(“世界您好!”); 当测试从CopperCube编辑器的三维场景,这将打印文本的Hello World到调试控制台。 CopperCube还提供了一个菜单命令,以便您可以测试,如果你的脚本的语法是OK,使用菜单命令工具 - 这“编译主脚本。 发展提示:如果您希望发展你没有CopperCube编辑器运行脚本,你可以做到这一点使用的调试和脚本:命令行参数。参阅命令行参数的详细信息。 参考和ExamplesThere是一个全面的松鼠脚本参考本文档。 还有一个完整的例子可供选择:鼠笼运动。 6。 CopperCube松鼠脚本参考 CopperCube提供了一个非常简单的接口来操纵在你的Windows三维场景中的所有方面。exe文件。看到松鼠一项关于如何做到这一点的简短描述脚本。该文件列出了所有可用的功能。 这些功能大多操纵所谓的现场节点。一个场景节点,只不过是一个有位置,旋转,缩放,其材料和儿童的三维对象的更多。名称场景节点是那里,因为CopperCube是在内部使用一个场景图来表示三维场景。 场景节点HandlingccbCloneSceneNode ccbGetActiveCamera ccbGetChildSceneNode ccbGetRootSceneNode ccbGetSceneNodeChildCount ccbGetSceneNodeFromName ccbGetSceneNodeMaterialCount ccbGetSceneNodeMaterialProperty ccbRemoveSceneNode ccbSetActiveCamera ccbSetSceneNodeMaterialProperty ccbSetSceneNodeMaterialProperty ccbSetSceneNodeProperty EventsccbRegisterKeyDownEvent ccbRegisterKeyUpEvent ccbRegisterMouseDownEvent ccbRegisterMouseUpEvent ccbRegisterOnFrameEvent DrawingccbDrawColoredRectangle ccbDrawTextureRectangle ccbDrawTextureRectangleWithAlpha CollisionccbGet3DPosFrom2DPos ccbGet2DPosFrom3DPos ccbGetCollisionPointOfWorldWithLine ccbDoesLineCollideWithBoundingBoxOfSceneNode OtherccbEndProgram ccbLoadTexture ccbGetMousePosX ccbGetMousePosY ccbSetCloseOnEscapePressed ccbSetCursorVisible ccbSwitchToScene ccbPlaySound 其他: 的Vector3D - 一个Vector类 标准库(对数学基本功能和I / O等) - - ccbCloneSceneNode(节点) 创建一个新的场景节点上现有的场景节点为基础。 参数节点必须有一个退出场景节点。你可以通过ccbGetSceneNodeFromName现有的场景节点比如() 返回:新的场景节点。 例子: 当地sourceNode = ccbGetSceneNodeFromName(“myNode”),地方newscenenode = ccbCloneSceneNode(sourceNode); 这个例子将创建一个名为myNode现有的场景节点的副本。 - - ccbGetActiveCamera() 返回当前活动的现场摄像头。 - - ccbSetActiveCamera(节点) 设置当前活动的相机到现场。参数节点必须是一个摄像头场景节点。 - - ccbGetChildSceneNode(parentSceneNode,childIndex) 返回父节点的子一幕场景节点。 ChildIndex必须 = 0和“ccbGetSceneNodeChildCount。 例如: 本地root = ccbGetRootSceneNode();当地计数= ccbGetSceneNodeChildCount(根),为(本地I = 0;我计数; + + i)的当地儿童= ccbGetChildSceneNode(根,我),打印(“节点:”+ ccbSetSceneNodeMaterialProperty(孩子,“姓名”)+“ ”); 这个例子打印出所有根的子节点场景的名称。 - - ccbGetRootSceneNode() 返回根场景节点。你不能删除它,它没有一个很有意义改变其属性,但您可以使用为出发点来遍历整个场景图形的。看看ccbGetSceneNodeChildCount一个例子。 返回:根场景节点。 - - ccbGetSceneNodeChildCount(场景节点) 返回一个场景节点的子节点数量。 例如: 本地root = ccbGetRootSceneNode();当地计数= ccbGetSceneNodeChildCount(根),打印(“在现场的场景图的顶层节点:”+计数); 这个例子将返回2,如果有两个场景中的场景节点。 - - ccbGetSceneNodeFromName(姓名) 搜索一个具有此名称的场景节点整个场景图。请注意,该名称是区分大小写的。如果找到,则返回,否则返回null。 例如: 局部S = ccbGetSceneNodeFromName(“testCube”);如果(S)打印(“发现节点 。”);否则打印(“没有找到节点 。”) 一个名为testCube场景节点搜索和打印一些文本。 - - ccbGetSceneNodeMaterialCount(场景节点) 返回现场节点物料的数量。 例如: 局部S = ccbGetSceneNodeFromName(“testCube”);局部n = ccbGetSceneNodeMaterialCount(s),打印(“现场节点”+名词+“材料”); 打印出场景中的物料数量的节点名为testCube - - ccbGetSceneNodeMaterialProperty(场景节点,materialIndex,propertyName的) 返回一个场景节点材料特性。 参数: 场景节点:一个场景节点。 materialIndex:该材料的指标。值必须大于或等于0且小于ccbGetSceneNodeMaterialCount()小。 propertyName的:在一个物质propertyName的。这也是在左侧栏编辑器显示的名称。可能的值有:“类型”,“环境”,“漫”,“发光”,“镜面”,“光泽”,“参数1”,“参数2”,“Texture1”,“Texture2”,“Texture3”,“Texture4 “,”线框“,”GouraudShading“,”闪电“,”ZBuffer“,”ZWriteEnable“,”BackfaceCulling“,”BilinearFilter“,”TrilinearFilter“,”AnisotropicFilter“,”FogEnable“,”NormalizeNormals“。 例如: 局部S = ccbGetSceneNodeFromName(“testCube”),地方吨= ccbGetSceneNodeMaterialProperty的(s,0,“Texture1”),打印(“立方体的纹理是:”+吨); 打印在一个现有的场景设置了纹理名称的节点名为testCube。打印好像有什么新的立方体纹理:纹理/ editor_defaults / default_texture.png - - ccbGetSceneNodeProperty(场景节点,propertyName的) 获取一个场景节点的属性值。也该propertyName为在左侧列中的编辑器属性窗口中显示的名称。可能的名字取决于现场的节点类型,但通常的名字一样姓名,定位,转,规模,可见可在最少。请注意,该名称是区分大小写的。 例如: 局部S = ccbGetSceneNodeFromName(“testCube”),本地位置= ccbSetSceneNodeMaterialProperty的(s,“位置”),打印(+地位“的立方体的,是”); 如果场景中包含一个名为testCube场景节点,这个例子打印类似“立方体在(-2.15537,-0.751433,-15.6934)是” - - ccbLoadTexture(文件名) 加载到缓存中的纹理质地。如果返回true和false,如果不sucessful。 例如: 如果(ccbLoadTexture(“textures/walls/smallmetalpipe_1-1.jpg”)打印(“yipee,它的工作。”); editorUpdateAllWindows()/ /在纹理管理器窗口中显示的变化 加载纹理。 - - ccbRemoveSceneNode(场景节点) 移除现场场景节点,将其删除。不适用于根场景节点。 例如: ccbRemoveSceneNode(ccbGetSceneNodeFromName(“testCube”); 删除一个名为testCube如果它存在的场景节点。 - - ccbSetSceneNodeMaterialProperty(场景节点,materialIndex,propertyName的价值) 设置一个场景节点材料特性。 参数: materialIndex:该材料的指标。值必须大于或等于0且小于ccbGetSceneNodeMaterialCount()小。 propertyName的:在一个物质propertyName的。这也是在左侧栏编辑器显示的名称。可能的值有:“类型”,“环境”,“漫”,“发光”,“镜面”,“光泽”,“参数1”,“参数2”,“Texture1”,“Texture2”,“Texture3”,“Texture4 “,”线框“,”GouraudShading“,”闪电“,”ZBuffer“,”ZWriteEnable“,”BackfaceCulling“,”BilinearFilter“,”TrilinearFilter“,”AnisotropicFilter“,”FogEnable“,”NormalizeNormals“。 价值:新价值的材料特性 例如: 局部S = ccbGetSceneNodeFromName(“testCube”),地方吨= ccbSetSceneNodeMaterialProperty的(s,0,“线框”,“真”); 打造一个名为testCube节点显示在线框模式。 - - ccbSetSceneNodeProperty(场景节点,propertyName的价值) ccbSetSceneNodeProperty(场景节点,propertyName的中,x,Y,Z轴) 设置一个场景节点的属性值。也该propertyName为在左侧列中的编辑器属性窗口中显示的名称。可能的名字取决于现场的节点类型,但通常的名字一样姓名,定位,转,规模和可见可在最少。请注意,该名称是区分大小写的。 例子: 局部S = ccbGetSceneNodeFromName(“testCube”); ccbSetSceneNodeProperty的(s,“看得见”,0); 打造一个节点名为testCube看不见的。 局部S = ccbGetSceneNodeFromName(“testCube”); ccbSetSceneNodeProperty的(s,“旋转”,20,90,0); 改变了一个名为testCube来(20,90,0)节点轮换 - - - - ccbRegisterKeyDownEvent(funcstr) 注册一个事件接收下来的一个关键功能。该函数注册必须采取一个参数,将是关键的代码。 例子: ccbRegisterKeyDownEvent(“keyPressedDown”);功能keyPressedDown(密码)打印(“一个键被按下了下来:”+密码); 哪个键被按下时,它被按下打印。 - - - - ccbRegisterKeyUpEvent(funcstr) 注册一个事件接收下来的一个关键功能。该函数注册必须采取一个参数,将是关键的代码。 例子: ccbRegisterKeyUpEvent(“keyPressedUp”);功能keyPressedUp(密码)打印(“关键是留给了:”+密码); 其中的关键是当它留给留给打印。 - - ccbRegisterMouseDownEvent(funcstr) 注册一个事件接收下来的一个关键功能。注册必须采取一个参数的函数,这将是鼠标按钮按下(左按钮1,右按钮,中年按钮3 2)。 例子: ccbRegisterMouseDownEvent(“mousePressedDown”);功能mousePressedDown(按钮)打印(“一个鼠标按钮被presssed了下来:”+按钮); 哪个鼠标按钮被按下时,按下打印 - - ccbRegisterMouseUpEvent(funcstr) 注册一个事件接收下来的一个关键功能。注册必须采取一个参数,将鼠标的功能键离开了(左按钮,2个右按钮时,中间的按钮3 1) 例子: ccbRegisterMouseUpEvent(“keyPressedDown”);功能mouseLeftUp(按钮)打印(“鼠标按钮被留下了起来:”+按钮); 打印的鼠标左按钮时它留给。 - - ccbRegisterOnFrameEvent(funcstr) 注册一个用于接收帧事件一函数,这是所谓的每帧绘制事件。该函数没有参数必须登记。在这个函数中,它可以得出自己的,如用户界面定制的东西。 例子: ccbRegisterOnFrameEvent(“onFrameDrawing”);功能onFrameDrawing()/ /绘制鼠标的位置本地mouseX = ccbGetMousePosX()的红色,透明的矩形,地方mouseY的= ccbGetMousePosY(); ccbDrawColoredRectangle(0x77ff0000,mouseX - 10,mouseY的, 10,mouseX +10,mouseY的+10); 绘制在鼠标光标的位置(或在中心如果鼠标光标控制一个FPS的风格相机)的红色矩形 - - ccbDrawColoredRectangle(颜色,象X1,Y1的,x2和y2)的 绘制一个彩色矩形。此功能只能用在一个框架事件函数必须已经与ccbRegisterOnFrameEvent()注册。 颜色是一个alpha,红色,绿色和蓝色分量(0xaarrggbb,像著名的颜色值从HTML,但带有alpha通道的增值阵线transarency)32位值。 0x77ff0000例如是一个透明的红色,0xff0000ff是一个不太透明的蓝色。 例子: ccbRegisterOnFrameEvent(“onFrameDrawing”);功能onFrameDrawing()/ /绘制鼠标的位置本地mouseX = ccbGetMousePosX()的红色,透明的矩形,地方mouseY的= ccbGetMousePosY(); ccbDrawColoredRectangle(0x77ff0000,mouseX - 10,mouseY的, 10,mouseX +10,mouseY的+10); 绘制在鼠标光标的位置(或在中心如果鼠标光标控制一个FPS的风格相机)的红色矩形 - - ccbDrawTextureRectangle(文件,象X1,Y1的,x2和y2)的 绘制纹理矩形。此功能只能用在一个框架事件函数必须已经与ccbRegisterOnFrameEvent()注册。 这个函数将忽略纹理的alpha通道。如果你想使用ccbDrawTextureRectangleWithAlpha的alpha通道被考虑以及。 例子: ccbRegisterOnFrameEvent(“onFrameDrawing”);功能onFrameDrawing()/ /绘制鼠标的位置本地mouseX = ccbGetMousePosX()的红色,纹理矩形,地方mouseY的= ccbGetMousePosY(); ccbDrawTextureRectangle(“someFile.png”,mouseX - 100,mouseY的- 100,mouseX +100,mouseY的+100); 绘制在鼠标光标的位置(或在中心如果鼠标光标控制一个FPS的风格相机)纹理矩形 - - ccbDrawTextureRectangleWithAlpha(文件,象X1,Y1的,x2和y2)的 绘制一个矩形纹理的alpha通道。此功能只能用在一个框架事件函数必须已经与ccbRegisterOnFrameEvent()注册。 这个函数会考虑纹理的alpha通道,使用ccbDrawTextureRectangleWithAlpha纹理没有一个alpha通道。 例子: ccbRegisterOnFrameEvent(“onFrameDrawing”);功能onFrameDrawing()/ /绘制鼠标的位置本地mouseX = ccbGetMousePosX()的红色,纹理矩形,地方mouseY的= ccbGetMousePosY(); ccbDrawTextureRectangleWithAlpha(“someFile.png”,mouseX - 100,mouseY的- 100,mouseX +100,mouseY的+100); 绘制在鼠标光标的位置(或在中心如果鼠标光标控制一个FPS的风格相机)纹理矩形 - - ccbGet3DPosFrom2DPos(的x,y) 返回屏幕上的二维位置三维位置。注:在屏幕上的二维位置并不代表一个单一的3D点,但实际上是三维直线。因此,为了得到这条线,使用3D功能,这一点在当前相机的位置,形成这条线返回。 例子: 当地mouseX = ccbGetMousePosX();当地mouseY的= ccbGetMousePosY();当地阳极= ccbGetSceneNodeFromName(“somenode”),地方pos3d = ccbGet3DPosFrom2DPos(mouseX,mouseY的); ccbSetSceneNodeProperty(阳极,“位置”,pos3d); 设置一个名为somenode背后的鼠标光标位置的三维场景节点的位置。 - - ccbGet2DPosFrom3DPos(的x,y,z)的 返回一个三维位置或什么,如果不会的位置在屏幕上(对于后面的相机为例)二维位置。 例子: 当地的POS = ccbGet2DPosFrom3DPos(20,30,30),打印(“在屏幕上的位置:”+ POS机); 打印出一个三维在二维位置坐标。 - - ccbGetCollisionPointOfWorldWithLine(startx时,startY,startZ,endX,恩迪,endZ) 返回用线和世界的碰撞点。返回null,如果没有发生碰撞。 - - ccbDoesLineCollideWithBoundingBoxOfSceneNode(节点,startx时,startY,startZ,endX,恩迪,endZ) 退货,如果给定的场景与两个点之间的线节点碰撞的边界框。 例子: ccbRegisterOnFrameEvent(“onFrameDrawing”);功能onFrameDrawing()本地mouseX = ccbGetMousePosX();当地mouseY的= ccbGetMousePosY(); / /测试碰撞的地方立方体= ccbGetSceneNodeFromName(“cubeMesh”),地方endPoint3d = ccbGet3DPosFrom2DPos(mouseX,mouseY的);当地startPos3D = ccbGetSceneNodeProperty(ccbGetActiveCamera(),“位置”),如果(ccbDoesLineCollideWithBoundingBoxOfSceneNode(立方体,startPos3D.x,startPos3D.y,startPos3D.z,endPoint3d.x,endPoint3d.y,endPoint3d.z)ccbDrawColoredRectangle(0x77ff0000, mouseX - 10,mouseY的- 10,mouseX +10,mouseY的+10);否则ccbDrawColoredRectangle(0x770000ff,mouseX - 10,mouseY的- 10,mouseX +10,mouseY的+10); 绘制在鼠标光标(或屏幕的中心如果一个FPS的风格相机控制器控制)如果鼠标移动到一个场景节点名为cubeMesh,并绘制一个蓝色的矩形,如果不是位置的红色矩形。 - - ccbEndProgram() 结束应用程序 - - ccbGetMousePosX() 返回当前的X,以像素为鼠标光标位置。 例子: ccbRegisterOnFrameEvent(“onFrameDrawing”);功能onFrameDrawing()/ /绘制鼠标的位置本地mouseX = ccbGetMousePosX()的红色,透明的矩形,地方mouseY的= ccbGetMousePosY(); ccbDrawColoredRectangle(0x77ff0000,mouseX - 10,mouseY的, 10,mouseX +10,mouseY的+10); 绘制在鼠标光标的位置(或在中心如果鼠标光标控制一个FPS的风格相机)的红色矩形 - - ccbGetMousePosY(节点) 返回当前Y的鼠标光标位置的像素。 例子: c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论