Flash 板


LINE

我把我的程式码贴上来 我是用flex builder 3 cowdae.as package { import flash.display.Sprite; import flash.events.Event; import org.papervision3d.cameras.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import org.papervision3d.objects.parsers.Collada; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.*; import org.papervision3d.view.Viewport3D; public class cowdae extends Sprite { public var viewport:Viewport3D; public var renderer:BasicRenderEngine; public var default_scene:Scene3D; public var default_camera:Camera3D; a public var cow:DisplayObject3D = new DisplayObject3D(); public var cow1:DisplayObject3D = new DisplayObject3D(); public var sphere2:DisplayObject3D = new DisplayObject3D(); [Embed(source = "sphere.DAE", mimeType = "application/octet-stream")] private var COW_dae:Class; public function cowdae() { init(); cow1 = new Collada("sphere.dae"); 这是我在3dsMax中建好的模型转成dae cow1.moveDown(100); cow1.scale = 0.1; default_scene.addChild(cow1); var sphere2:DisplayObject3D = default_scene.addChild(new Sphere); if(sphere2.hitTestObject(cow1)) { trace("碰撞1") } } private function init(vpWidth:Number = 800, vpHeight:Number = 600):void { initPapervision(vpWidth, vpHeight); initEvents(); } protected function initPapervision(vpWidth:Number = 800, vpHeight:Number = 600):void { viewport = new Viewport3D(800,600); addChild(viewport); renderer = new BasicRenderEngine(); default_scene = new Scene3D(); default_camera = new Camera3D(); } protected function initEvents():void { addEventListener(Event.ENTER_FRAME, onEnterFrame); } protected function onEnterFrame( ThisEvent:Event ):void { renderer.renderScene(default_scene, default_camera, viewport); } public function up():void{ cow1.y += 100; } public function left():void{ cow1.x -= 100; } public function down():void{ cow1.y -= 100; } public function right():void{ cow1.x += 100; } public function testl():void{ cow1.z -= 100; } public function testr():void{ cow1.z += 100; } public function collision():void{ if(sphere2.hitTestObject(cow1)) { trace("碰撞二") } } } } cow.mxml <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()"> <mx:Script> <![CDATA[ private var aaa:cowdae = new cowdae(); private function init():void{ this.PV3DArea.addChild(this.aaa); } ]]> </mx:Script> <mx:Canvas width="100%" height="80%" backgroundColor="white"> <mx:UIComponent id="PV3DArea" width="100%" height="100%"/> </mx:Canvas> <mx:ApplicationControlBar> <mx:Button label="Front" click="this.aaa.left()"/> <mx:Button label="Back" click="this.aaa.right()"/> <mx:Button label="Up" click="this.aaa.up()"/> <mx:Button label="Down" click="this.aaa.down()"/> <mx:Button label="Left" click="this.aaa.testl()"/> <mx:Button label="Right" click="this.aaa.testr()"/> <mx:Button label="Collision" click="this.aaa.collision()"/> </mx:ApplicationControlBar> </mx:Application> 目前的问题是 我直接debug後 会侦测到碰撞的产生 会出现 碰撞一 可是当我再度按下collision的button後 却侦测不到碰撞的产生 请大家指点一下 非常感谢 ※ 引述《forgot75421 (伏加特I》之铭言: : 各位好 : 我想要请问 : 当我在3DsMAX中建好模型转成DAE(物件1&2)後,再到flex中显现出来(已经成功汇入) : 这时,若我想要让这两个物件碰撞时会触发某件事,例如物件变色之类的 : 请问这可以做到吗?? 可以给我一点方向吗?? : (我有用DisplayObject3D.hitTestObject(DisplayObject3D)去试 可是一直失败 : 不知是否还有其他方法) : 非常感谢 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.161.164.42
1F:推 cjcat2266:碰撞一的sphere2是local variable 05/10 21:04
2F:→ cjcat2266:跟public property sphere2是不同物件喔 05/10 21:04
3F:→ cjcat2266:碰撞二的sphere2是public property的sphere2y 05/10 21:05
4F:→ cjcat2266:还是一个空白物件! 05/10 21:05
5F:→ cjcat2266:所以你有两个同样名称为sphere2的变数,你把他们搞混了 05/10 21:05
6F:→ cjcat2266:解决方法是把 "var sphere2:DisplayObject3D =" 05/10 21:06
7F:→ cjcat2266:改成 "sphere2 =" 就好,然後public var sphere2後面 05/10 21:06
8F:→ cjcat2266:不需要 "= new DisplayObject3D();" 05/10 21:06
9F:→ forgot75421:可是只要我移动了cow1之後再执行collision就 05/10 23:53
10F:→ forgot75421:没办法出现碰撞二耶 05/10 23:54
11F:→ forgot75421:另外,我只要是用两个DAE物件 就无法产生碰撞 05/11 11:25
12F:推 cjcat2266:碰撞二不会出现是因为你public var sphere2根本是空的 05/11 14:22
13F:→ cjcat2266:你的碰撞一所使用的sphere2不是public var sphere2 05/11 14:22
14F:→ cjcat2266:而是一个local variable "var sphere2" 05/11 14:22
15F:→ cjcat2266:public var sphere2从头到尾都没有生成模型物件唷 05/11 14:23
16F:→ forgot75421:嗯嗯嗯 我已经改了 忘了回来推文 感谢你阿 05/11 15:38
17F:→ forgot75421:感谢的五体投地阿 现在在研究hitTestObject 05/11 15:38
18F:→ forgot75421:到底是如何形成的 05/11 15:38
19F:推 cjcat2266:你可以自己开DisplayObject3D的class定义来看 05/11 15:45
20F:→ cjcat2266:里面就写说是用bounding sphere来做 05/11 15:45
21F:→ cjcat2266:简单来说就是测试两个物体的包络球面是否有相交 05/11 15:45
22F:→ forgot75421:好的 我会再研究的 05/11 15:46
23F:→ forgot75421:开DisplayObject3D的class定义来看?? 是去哪看阿 05/11 15:47
24F:→ aquarianboy:从pv3d下载下来的那包东西里面应该有 05/11 15:49
25F:→ forgot75421:我是直接下载SWC耶 05/11 16:05
26F:推 cjcat2266:下载RAR就有AS档了,你也可以用SVN下载最新的AS原始档 05/11 16:09
27F:→ forgot75421:我正在看了 可是看不太懂 我以为他是用bounding box 05/11 16:35
28F:→ forgot75421:去判断的 05/11 16:35
29F:→ forgot75421:好像是用bounding sphere 05/11 16:39
30F:推 cjcat2266:bounding box更简单呀,自己抓AABB来算有没有交集就好 05/11 23:05
31F:→ cjcat2266:跟Rectangle差不多,只是多了Z轴 05/11 23:05
32F:→ cjcat2266:可以用for each回圈跑过所有的Vertex 05/11 23:13
33F:→ cjcat2266:来判断一个物件Vertex的x, y, z的最大与最小值 05/11 23:13
34F:→ cjcat2266:就可以得到AABB了 05/11 23:13
35F:→ forgot75421:是bounding sphere 我看到里面有写了 05/12 17:10







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP