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

📄 3d数独说明.txt

📁 在3d空间中玩数独。使用papervision3d实现。要用flash cs3或flash cs4编译。
💻 TXT
字号:
我偶然看到前阵子流行至今的数独,就在想不知道有沒有人有挑战过 3D 数独,所以就也试着先将 3D 数独的模型建起来,不过这个游戏的操作过程可能会有点麻烦,是要让玩家可以走进 3D 的 Cube 中去做设定,还是要让玩家可以将比较靠近里面的整排 Cube 切换到外面来再做设定,这部份的操作方式可能要好好设计一下。此外,建立了 9 x 9 x 9 = 729 个 Cube,对于 PV3D 来说,差不多是该有点吃力的时候了.
需要flashcs3或flash cs4还有papervision3d2.0.
完整模型代码如下: 


package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*;  import org.papervision3d.cameras.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import org.papervision3d.scenes.*; import flash.text.TextField; import flash.text.TextFormat;  [SWF(backgroundColor="#000000", frameRate="60", width="400", height="400")] public class T5step2 extends Sprite {  private var container:Sprite;  private var scene:MovieScene3D;  private var camera:Camera3D;  private var length:int=50;  private var offset:int=20;    private var numBDs:Array = new Array();    public function T5step2()  {   //背景   var bg:Sprite = new Sprite();   addChild(bg);   bg.graphics.beginFill(0x999999);   bg.graphics.drawRect(0, 0, 400, 400);   bg.graphics.endFill();      //制作数字贴图材质   var tf:TextFormat = new TextFormat();   tf.size = 24;   tf.bold = true;   for(var i:int=0; i<=9; i++){    var numSprite:Sprite = new Sprite();    numSprite.graphics.lineStyle(1);    numSprite.graphics.drawRect(0, 0, length, length);    var numTxt:TextField = new TextField();    numTxt.text = i.toString();    numTxt.setTextFormat(tf);    numSprite.addChild(numTxt);       var bd:BitmapData = new BitmapData(length, length, false, 0xffffffff);    bd.draw(numSprite);    numBDs.push(bd);   }      // initialize the objects   init3D();      // add a listener for the 3D loop   addEventListener(Event.ENTER_FRAME, loop3D);  }    private function init3D():void{      container = new Sprite();   addChild(container);      container.x = 200;   container.y = 200;      scene = new MovieScene3D(container);      camera = new Camera3D();   camera.z = -2000;   camera.zoom = 10;   camera.focus = 100;   for(var idxX:int=0; idxX<9; idxX++){    for(var idxY:int=0; idxY<9; idxY++){     for(var idxZ:int=0; idxZ<9; idxZ++){           var num:int = (idxX + idxY + idxZ) % 9 + 1;      var cube:DisplayObject3D = new Cube(new BitmapMaterial(numBDs[num]), length, length, length, 1, 1, 1);            cube.x = (idxX-4) * (length+offset);      cube.y = (idxY-4) * (length+offset);      cube.z = (idxZ-4) * (length+offset);      scene.addChild(cube, "cube"+idxX+idxY+idxZ);            //cube.container.alpha = 0.9;     }    }   }  }    private function loop3D(event:Event):void{    camera.hover(0, container.mouseX / 20, container.mouseY / 10);   scene.renderCamera(camera);  } }} 

⌨️ 快捷键说明

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