⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shadedcolormaterial.as

📁 Flex3实现的掼蛋游戏
💻 AS
字号:
package org.papervision3d.materials
{
       import flash.display.Graphics;
       import flash.utils.Dictionary;

       import org.papervision3d.core.Number3D;
       import org.papervision3d.core.geom.Face3D;
       import org.papervision3d.core.geom.Vertex2D;
       import org.papervision3d.core.proto.MaterialObject3D;
       import org.papervision3d.objects.DisplayObject3D;     
       /**
        *
        */
       public class ShadedColorMaterial extends MaterialObject3D
       {
               public var light:Number3D;

               /**
                *
                * @param       fillColor
                * @param       fillAlpha
                */
               public function ShadedColorMaterial(fillColor:uint, fillAlpha:Number= 1.0):void
               {
                 	   this.fillColor = fillColor;
                       this.fillAlpha = fillAlpha;
                       this.light = new Number3D(0, 0, 100);
					   needsFaceNormals = true;
               }

               /**
                * @param       instance
                * @param       face3D
                * @param       graphics
                * @param       v0
                * @param       v1
                * @param       v2
                * @return
                */
               override public function drawFace3D(instance:DisplayObject3D, face3D:Face3D, graphics:Graphics, v0:Vertex2D, v1:Vertex2D, v2:Vertex2D):int
               {
               		
                    var s:Number;
                    var lt:Number3D = new Number3D();
					light.copyTo(lt);
					lt.normalize();
					s = Number3D.dot(face3D.face3DInstance.faceNormal, lt)*255;
					
					if(s>0){
						var c:Number = s<<16|s<<8|s;
					}
                    graphics.beginFill( c, fillAlpha );
                    graphics.moveTo( v0.x, v0.y );
                    graphics.lineTo( v1.x, v1.y );
                    graphics.lineTo( v2.x, v2.y );
                    graphics.lineTo( v0.x, v0.y );
                    graphics.endFill();
                    return 1;
               }
       }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -