Select() 공개 메소드

public Select ( ) : void
리턴 void
예제 #1
0
        async void CreateScene()
        {
            var @this = this;

            //Input.SubscribeToTouchEnd(OnTouched);
            Input.TouchEnd += OnTouched;

            scene  = new Scene();
            octree = scene.CreateComponent <Octree>();

            plotNode = scene.CreateChild();
            var baseNode = plotNode.CreateChild().CreateChild();
            var plane    = baseNode.CreateComponent <StaticModel>();

            plane.Model = CoreAssets.Models.Plane;

            var cameraNode = scene.CreateChild();

            camera = cameraNode.CreateComponent <Camera>();
            cameraNode.Position = new Vector3(10, 15, 10) / 1.75f;
            cameraNode.Rotation = new Quaternion(-0.121f, 0.878f, -0.305f, -0.35f);

            Node lightNode = cameraNode.CreateChild();
            var  light     = lightNode.CreateComponent <Light>();

            light.LightType  = LightType.Point;
            light.Range      = 100;
            light.Brightness = 1.3f;

            int size = 3;

            baseNode.Scale = new Vector3(size * 1.5f, 1, size * 1.5f);
            bars           = new List <Bar>(size * size);
            for (var i = 0f; i < size * 1.5f; i += 1.5f)
            {
                for (var j = 0f; j < size * 1.5f; j += 1.5f)
                {
                    var boxNode = plotNode.CreateChild();
                    boxNode.Position = new Vector3(size / 2f - i, 0, size / 2f - j);
                    var box = new Bar(new Color(RandomHelper.NextRandom(), RandomHelper.NextRandom(), RandomHelper.NextRandom(), 0.9f));
                    boxNode.AddComponent(box);
                    box.SetValueWithAnimation((Math.Abs(i) + Math.Abs(j) + 1) / 2f);
                    bars.Add(box);
                }
            }

            SelectedBar = bars.First();
            SelectedBar.Select();



            try
            {
                await plotNode.RunActionsAsync(new EaseBackOut(new RotateBy(2f, 0, 360, 0)));
            }
            catch (OperationCanceledException) { }
            movementsEnabled = true;
        }
예제 #2
0
        async void CreateScene()
        {
            Input.SubscribeToTouchEnd(OnTouched);

            scene  = new Scene();
            octree = scene.CreateComponent <Octree> ();

            plotNode = scene.CreateChild();
            var baseNode = plotNode.CreateChild().CreateChild();
            var plane    = baseNode.CreateComponent <StaticModel>();

            plane.Model = CoreAssets.Models.Plane;

            var cameraNode = scene.CreateChild();

            camera = cameraNode.CreateComponent <Camera>();
            cameraNode.Position = new Vector3(10, 15, 10) / 1.75f;
            cameraNode.Rotation = new Quaternion(-0.121f, 0.878f, -0.305f, -0.35f);

            Node lightNode = cameraNode.CreateChild();
            var  light     = lightNode.CreateComponent <Light>();

            light.LightType  = LightType.Point;
            light.Range      = 100;
            light.Brightness = 1.3f;

            int size = 3;

            baseNode.Scale = new Vector3(size * 1.5f, 1, size * 1.5f);
            bars           = new List <Bar>(size * size);
            //リファクタリングのつもり
            //refactor the factory process..
            //pattern1 (crash): do not give ResourceCache here, because it is given in constructor.
            barFactory.AddBarsToScene(plotNode, bars, size);
            //pattern2 (NOT crash): set ResourceCache here.
            //barFactory.AddBarsToScene(plotNode, bars, size, ResourceCache);

            SelectedBar = bars.First();
            SelectedBar.Select();



            try
            {
                await plotNode.RunActionsAsync(new EaseBackOut(new RotateBy(2f, 0, 360, 0)));
            }
            catch (OperationCanceledException) {}
            movementsEnabled = true;
        }
예제 #3
0
        void OnTouched(TouchEndEventArgs e)
        {
            Ray cameraRay = camera.GetScreenRay((float)e.X / Graphics.Width, (float)e.Y / Graphics.Height);
            var results   = octree.RaycastSingle(cameraRay, RayQueryLevel.Triangle, 100, DrawableFlags.Geometry);

            if (results != null && results.Any())
            {
                var bar = results[0].Node?.Parent?.GetComponent <Bar>();
                if (SelectedBar != bar)
                {
                    SelectedBar?.Deselect();
                    SelectedBar = bar;
                    SelectedBar?.Select();
                }
            }
        }
예제 #4
0
		async void CreateScene ()
		{
			Input.SubscribeToTouchEnd(OnTouched);

			var cache = ResourceCache;
			scene = new Scene ();
			octree = scene.CreateComponent<Octree> ();

			plotNode = scene.CreateChild();
			var baseNode = plotNode.CreateChild().CreateChild();
			var plane = baseNode.CreateComponent<StaticModel>();
			plane.Model = ResourceCache.GetModel("Models/Plane.mdl");

			var cameraNode = scene.CreateChild ("camera");
			camera = cameraNode.CreateComponent<Camera>();
			cameraNode.Position = new Vector3(10, 15, 10) / 1.75f;
			cameraNode.Rotation = new Quaternion(-0.121f, 0.878f, -0.305f, -0.35f);

			Node lightNode = cameraNode.CreateChild(name: "light");
			var light = lightNode.CreateComponent<Light>();
			light.LightType = LightType.Point;
			light.Range = 100;
			light.Brightness = 1.3f;

			int size = 3;
			baseNode.Scale = new Vector3(size * 1.5f, 1, size * 1.5f);
			bars = new List<Bar>(size * size);
			for (var i = 0f; i < size * 1.5f; i += 1.5f)
			{
				for (var j = 0f; j < size * 1.5f; j += 1.5f)
				{
					var boxNode = plotNode.CreateChild();
					boxNode.Position = new Vector3(size / 2f - i, 0, size / 2f - j);
					var box = new Bar(new Color(RandomHelper.NextRandom(), RandomHelper.NextRandom(), RandomHelper.NextRandom(), 0.9f));
					boxNode.AddComponent(box);
					box.SetValueWithAnimation((Math.Abs(i) + Math.Abs(j) + 1) / 2f);
					bars.Add(box);
				}
			}
			SelectedBar = bars.First();
			SelectedBar.Select();
			await plotNode.RunActionsAsync(new EaseBackOut(new RotateBy(2f, 0, 360, 0)));
			movementsEnabled = true;
		}