![]() |
akdcl (2009-10-23 13:24:31) |
窗户还能在墙上移动是吧,窗户有点类似遮罩室内的感觉对吧? 我觉得用你说的方法确实可行,就是墙拼接而成,中间是透明窗户。 也可以用一个bitmapData,根据窗户的移动,动态的改变bitmapData来实现贴图的变化,但怎么想都觉得挺麻烦的。 要不你就用遮罩吧? 墙,室内,窗户,三者是分层的,窗户遮罩室内。 |
![]() |
YYuan (2009-10-23 14:00:53) |
谢谢akdcl。 你说的动态的改变bitmapData来实现贴图的变化,那贴图部分怎么能够动态显示出潼关窗子看到的室内的景象呢。 另外不好意思,有些低级的问题,遮罩是什么意思,有没有参考资料。用遮罩会影响对墙和窗作为整体的鼠标拖动吗。 |
![]() |
akdcl (2009-10-23 16:16:37) |
一个贴图是墙,一个贴图是窗户的边 窗户的边跟着鼠标移动, 然后matrix要包含窗户的x,y偏移量, 墙.draw(方块,matrix,colorTf,BlendMode.ERASE); 其实这个叙述我也叙述不清,有图会方便些,额我不会放图 |
![]() |
YYuan (2009-10-24 01:29:32) |
麻烦稍微解释一下你说的这个函数: 墙.draw(方块,matrix,colorTf,BlendMode.ERASE); 你说的这个墙是用什么类实现。 参数“方块”是不是对应墙上的窗户。 matrix是窗户的偏移量坐标吗。 colorTf是贴图吗,它怎么动态显示透过窗户显示的屋子里的景象呢。 谢谢。 |
![]() |
YYuan (2009-10-24 11:37:39) |
我尝试用BitmapData.draw(BitmapData方块,matrix,colorTf,BlendMode.ERASE)方法,好像还是不行,不能消除BitmapData上的那个BitmapData方块。不知道怎什么因。akdcl君能否解释详细一些。程序如下: var winBMP:BitmapData = new BitmapData(800, 800,true); var myBitmapData:BitmapData = new BitmapData(1500, 1500,false,0x00FF00); myBitmapData.draw(winBMP,null,null,BlendMode.ERASE); var bpmaterial:BitmapMaterial = new BitmapMaterial(myBitmapData, true); plane = new Plane(bpmaterial, 1500, 1500); plane.material.doubleSided = true; scene.add(plane) 不知道其他大侠有没有别的什么好办法,望不吝赐教。先谢谢了。 |
![]() |
akdcl (2009-10-26 10:22:25) |
恩好的,就是矩阵,和颜色矩阵不能是null,一定要有值; myBitmapData.draw(winBMP,new Matirx(),new ColorTransform(),BlendMode.ERASE); |
![]() |
YYuan (2009-10-27 00:36:26) |
谢谢。我试验了,但还是不行。 |
![]() |
akdcl (2009-10-27 09:11:00) |
…… 这种方法,我用得也不是一次两次了,肯定能用…… |
![]() |
DDM君 (2009-10-27 09:47:28) |
这种方法是可以用的,但是注意bitmap里面的图位置有时候有些变化。 |
![]() |
YYuan (2009-11-04 13:26:53) |
谢谢大家,我用MovieMaterial上绘制矩形并用BlendMode.ERASE模式,解决这个问题了。 |
|
|