• 测试下代码编写!


    package {
    	import alternativa.engine3d.controllers.CameraController;
    	import alternativa.engine3d.core.Camera3D;
    	import alternativa.engine3d.core.Object3D;
    	import alternativa.engine3d.core.Scene3D;
    	import alternativa.engine3d.display.View;
    	import alternativa.engine3d.materials.Material;
    	import alternativa.engine3d.materials.MovieClipMaterial;
    	import alternativa.engine3d.materials.TextureMaterial;
    	import alternativa.engine3d.materials.WireMaterial;
    	import alternativa.engine3d.primitives.Box;
    	import alternativa.engine3d.primitives.Cone;
    	import alternativa.engine3d.primitives.Plane;
    	import alternativa.engine3d.primitives.Sphere;
    	import alternativa.utils.FPS;
    	import flash.display.MovieClip;
     
    	import flash.display.Sprite;
    	import flash.display.StageAlign;
    	import flash.display.StageScaleMode;
    	import flash.events.Event;
     
    	[SWF(backgroundColor="#000000", frameRate="100")]
    	public class HelloAlternativa3D extends MovieClip{
     
    		private var scene:Scene3D;
    		private var view:View;
    		private var camera:Camera3D;
    		private var cameraController:CameraController;
    		private var box:Box;
    		private var plane:Plane;
    		private var cone:Cone;
    		
    		public function HelloAlternativa3D()	{
    			addEventListener(Event.ADDED_TO_STAGE, init);
    		}
     
    		public function init(e:Event): void {
    			removeEventListener(Event.ADDED_TO_STAGE, init);
     
    			stage.scaleMode = StageScaleMode.NO_SCALE;
    			stage.align = StageAlign.TOP_LEFT;
     
    			// Creating scene——建立场景
    			scene = new Scene3D();
    			scene.root = new Object3D();
    			box = new Box(100, 100, 100, 3, 3, 3);
    			box.cloneMaterialToAllSurfaces(new WireMaterial(1, 0xFF80C0));
    			scene.root.addChild(box);
    			plane = new Plane(800,800, 2, 2);
    			var hello:MovieClip = new pic();
    			var shui1:shui = new shui();
    			shui1.width = 800;
    			shui1.height = 600;
    			plane.cloneMaterialToAllSurfaces(new MovieClipMaterial(hello,800,800));
    			scene.root.addChild(plane);
    			cone = new Cone(800, 100, 0, 1, 12);
    			cone.cloneMaterialToAllSurfaces(new WireMaterial(1, 0xFF8000));
    			this.addChild(shui1);
    			scene.root.addChild(cone);
     
    			// Adding camera and view——添加摄像机和视窗
    			camera = new Camera3D();
    			camera.x = 100;
    			camera.y = -150;
    			camera.z = 100;
    			scene.root.addChild(camera);
     
    			view = new View();
    			addChild(view);
    			view.camera = camera;
     
    			// Connecting camera controller——与“摄像机控制器”建立连接
    			cameraController = new CameraController(stage);
    			cameraController.camera = camera;
    			cameraController.setDefaultBindings();
    			cameraController.checkCollisions = true;
    			cameraController.collisionRadius = 20;
    			cameraController.lookAt(box.coords);
    			cameraController.controlsEnabled = true;
     
    			// FPS display launch——FPS 运转显示
    			FPS.init(stage);
     
    			stage.addEventListener(Event.RESIZE, onResize);
    			stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
    			onResize(null);
    		}
     
    		private function onResize(e:Event):void {
    			view.width = stage.stageWidth;
    			view.height = stage.stageHeight;
    		}
     
    		private function onEnterFrame(e:Event):void {
    			// User input processing——控制器的输入过程
    			cameraController.processInput();
    			// Scene calculating——场景计算
    			scene.calculate();
    		}
    	}
    }
  • 相关阅读:
    mysql卸载
    Nginx配置Https(详细、完整)
    国产数据库
    win11系统安装全过程
    微星b460主板如何开启TPM2.0
    如何查看计算机是否开启TPM2.0
    c语言实现复制文件
    如何使用格式工厂把视频变小
    格式工厂合并视频和音频文件
    IDM下载B站视频多个文件,视频、音频分开如何处理
  • 原文地址:https://www.cnblogs.com/longhuang/p/1742391.html
Copyright © 2020-2023  润新知