コード例 #1
0
ファイル: Effect1.cs プロジェクト: h7ing/CocosSharp
        public override void OnEnter()
        {
            base.OnEnter();

            Window.IsUseDepthTesting = true;

            CCRect visibleBounds = VisibleBoundsWorldspace;

            // To reuse a grid the grid size and the grid type must be the same.
            // in this case:
            //     Lens3D is Grid3D and it's size is (15,10)
            //     Waves3D is Grid3D and it's size is (15,10)

            var lens = new CCLens3D(3.0f, new CCGridSize(15, 10), bgNode.ContentSize.Center, 200);
			var waves = new CCWaves3D(10, new CCGridSize(15, 10), 18, 30);


			var reuse = new CCReuseGrid(1);
			var delay = new CCDelayTime (8);

            bgNode.AnchorPoint = CCPoint.AnchorMiddle;
            var orbit = new CCOrbitCamera(5, 30.0f, 2, 20, 180, 0, -90);
			var orbit_back = orbit.Reverse();

			bgNode.RepeatForever(orbit, orbit_back);
			bgNode.RunActions(lens, delay, reuse, waves);
        }
コード例 #2
0
        protected override void AddedToScene()
        {
            base.AddedToScene();

            CCSize s = Layer.VisibleBoundsWorldspace.Size;

			CCSprite p = new CCSprite(TestResource.s_back3);
			AddChild(p, 0);
			p.Position = (new CCPoint(s.Width / 2, s.Height / 2));
			//p.Opacity = 50;

			CCSprite sprite;
			CCOrbitCamera orbit;
			CCCamera cam;
			CCSize ss;

			// LEFT
			s = p.ContentSize;
			sprite = new CCSprite(TestResource.s_pPathGrossini);
			sprite.Scale = (0.5f);
			p.AddChild(sprite, 0);
			sprite.Position = (new CCPoint(s.Width / 4 * 1, s.Height / 2));
			cam = sprite.Camera;
			orbit = new CCOrbitCamera(2, 1, 0, 0, 360, 0, 0);
			sprite.RunAction(new CCRepeatForever (orbit));

			// CENTER
			sprite = new CCSprite(TestResource.s_pPathGrossini);
			sprite.Scale = 1.0f;
			p.AddChild(sprite, 0);
			sprite.Position = new CCPoint(s.Width / 4 * 2, s.Height / 2);
			orbit = new CCOrbitCamera(2, 1, 0, 0, 360, 45, 0);
			sprite.RunAction(new CCRepeatForever (orbit));


			// RIGHT
			sprite = new CCSprite(TestResource.s_pPathGrossini);
			sprite.Scale = 2.0f;
			p.AddChild(sprite, 0);
			sprite.Position = new CCPoint(s.Width / 4 * 3, s.Height / 2);
			ss = sprite.ContentSize;
			orbit = new CCOrbitCamera(2, 1, 0, 0, 360, 90, -45);
			sprite.RunAction(new CCRepeatForever (orbit));


			// PARENT
			orbit = new CCOrbitCamera(10, 1, 0, 0, 360, 0, 90);
			p.RunAction(new CCRepeatForever (orbit));
			Scale = 1;
		}
コード例 #3
0
        public CCOrbitCameraState(CCOrbitCamera action, CCNode target)
            : base(action, target)
        {
            AngleX      = action.AngleX;
            AngleZ      = action.AngleZ;
            DeltaAngleX = action.DeltaAngleX;
            DeltaAngleZ = action.DeltaAngleZ;
            DeltaRadius = action.DeltaRadius;
            Radius      = action.Radius;

            // We are assuming the local camera will be centered directly at the target
            // => Add radius to the z position of local camera
            CCPoint3 fauxLocalCameraCenter = target.FauxLocalCameraCenter;

            fauxLocalCameraCenter.Z     += Radius;
            target.FauxLocalCameraCenter = fauxLocalCameraCenter;

            //CameraCenter = fauxLocalCameraCenter;

            RadDeltaZ = CCMacros.CCDegreesToRadians(DeltaAngleZ);
            RadDeltaX = CCMacros.CCDegreesToRadians(DeltaAngleX);

            // Only calculate the SpericalRadius when needed.
            if (float.IsNaN(Radius) || float.IsNaN(AngleZ) || float.IsNaN(AngleX))
            {
                float r, zenith, azimuth;
                SphericalRadius(out r, out zenith, out azimuth);

                if (float.IsNaN(Radius))
                {
                    Radius = r;
                }

                if (float.IsNaN(AngleZ))
                {
                    AngleZ = CCMacros.CCRadiansToDegrees(zenith);
                }

                if (float.IsNaN(AngleX))
                {
                    AngleX = CCMacros.CCRadiansToDegrees(azimuth);
                }
            }

            RadZ = CCMacros.CCDegreesToRadians(AngleZ);
            RadX = CCMacros.CCDegreesToRadians(AngleX);
        }
コード例 #4
0
		//CCWindowProjection preProjection;

        public CameraCenterTest()
        {
            CCSprite sprite;
			CCOrbitCamera orbit = new CCOrbitCamera(10, 1, 0, 0, 360, 0, 0);;

            // LEFT-TOP
			sprite = new CCSprite("Images/white-512x512") { Tag = 100 };
			AddChild(sprite, 0);
            sprite.Color = CCColor3B.Red;

            sprite.TextureRectInPixels = new CCRect(0, 0, 120, 50);
            sprite.RepeatForever(orbit);

            // LEFT-BOTTOM
			sprite = new CCSprite("Images/white-512x512") { Tag = 101 };
			AddChild(sprite, 0);
            sprite.Color = CCColor3B.Blue;

            sprite.TextureRectInPixels = new CCRect(0, 0, 120, 50);
			sprite.RepeatForever(orbit);


            // RIGHT-TOP
			sprite = new CCSprite("Images/white-512x512") { Tag = 102 };
			AddChild(sprite, 0);
            sprite.Color = CCColor3B.Yellow;

            sprite.TextureRectInPixels = new CCRect(0, 0, 120, 50);
			sprite.RepeatForever(orbit);

            // RIGHT-BOTTOM
			sprite = new CCSprite("Images/white-512x512") { Tag = 103 };
			AddChild(sprite, 0);
            sprite.Color = CCColor3B.Green;

            sprite.TextureRectInPixels = new CCRect(0, 0, 120, 50);
			sprite.RepeatForever(orbit);

            // CENTER
			sprite = new CCSprite("Images/white-512x512") { Tag = 104 };
			AddChild(sprite, 0);
            sprite.Color = CCColor3B.White;

            sprite.TextureRectInPixels = new CCRect(0, 0, 120, 50);
			sprite.RepeatForever(orbit);
        }
コード例 #5
0
ファイル: Effect1.cs プロジェクト: kkarol93/CocosSharp
        public override void OnEnter()
        {
            base.OnEnter();

            CCRect visibleBounds = VisibleBoundsWorldspace;

            // To reuse a grid the grid size and the grid type must be the same.
            // in this case:
            //     Lens3D is Grid3D and it's size is (15,10)
            //     Waves3D is Grid3D and it's size is (15,10)


            CCCamera contentCamera = contentLayer.Camera;

            contentCamera.Projection = CCCameraProjection.Projection3D;
            contentCamera.PerspectiveAspectRatio = 1.0f;

            CCPoint3 cameraCenter = contentCamera.CenterInWorldspace;
            CCPoint3 cameraTarget = contentCamera.TargetInWorldspace;

            float targeCenterLength = (cameraTarget - cameraCenter).Length;


            contentCamera.NearAndFarPerspectiveClipping = new CCPoint (0.1f, 100.0f);

            contentCamera.PerspectiveFieldOfView = (float)Math.PI / 3.0f; //(float)Math.Atan(visibleBounds.Size.Height / (2.0f * targeCenterLength));

            var lens = new CCLens3D(0.0f, new CCGridSize(15, 10), bgNode.ContentSize.Center, 90);
			var waves = new CCWaves3D(10, new CCGridSize(15, 10), 18, 15);


			var reuse = new CCReuseGrid(1);
			var delay = new CCDelayTime (8);

            bgNode.AnchorPoint = CCPoint.AnchorMiddle;
            var orbit = new CCOrbitCamera(5, 30.0f, 2, 20, 180, 0, -90);
			var orbit_back = orbit.Reverse();

			bgNode.RepeatForever(orbit, orbit_back);
			bgNode.RunActions(lens, delay, reuse, waves);
        }
コード例 #6
0
ファイル: CCOrbitCamera.cs プロジェクト: KerwinMa/CocosSharp
        public CCOrbitCameraState (CCOrbitCamera action, CCNode target)
            : base (action, target)
        {       
            AngleX = action.AngleX;
            AngleZ = action.AngleZ;
            DeltaAngleX = action.DeltaAngleX;
            DeltaAngleZ = action.DeltaAngleZ;
            DeltaRadius = action.DeltaRadius;
            Radius = action.Radius;

            // We are assuming the local camera will be centered directly at the target
            // => Add radius to the z position of local camera
            CCPoint3 fauxLocalCameraCenter = target.FauxLocalCameraCenter;
            fauxLocalCameraCenter.Z += Radius;
            target.FauxLocalCameraCenter = fauxLocalCameraCenter;

            //CameraCenter = fauxLocalCameraCenter;

            RadDeltaZ = CCMacros.CCDegreesToRadians (DeltaAngleZ);
            RadDeltaX = CCMacros.CCDegreesToRadians (DeltaAngleX);

            // Only calculate the SpericalRadius when needed.
            if (float.IsNaN (Radius) || float.IsNaN (AngleZ) || float.IsNaN (AngleX))
            {
                float r, zenith, azimuth;
                SphericalRadius (out r, out zenith, out azimuth);

                if (float.IsNaN (Radius))
                    Radius = r;

                if (float.IsNaN (AngleZ))
                    AngleZ = CCMacros.CCRadiansToDegrees (zenith);

                if (float.IsNaN (AngleX))
                    AngleX = CCMacros.CCRadiansToDegrees (azimuth);
            }

            RadZ = CCMacros.CCDegreesToRadians (AngleZ);
            RadX = CCMacros.CCDegreesToRadians (AngleX);
        }
コード例 #7
0
ファイル: ActionsTest.cs プロジェクト: KerwinMa/CocosSharp
        public ActionOrbit()
        {
            var orbit1 = new CCOrbitCamera(2, 1, 0, 0, 180, 0, 0);
            action1 = new CCSequence(orbit1,orbit1.Reverse());

            var orbit2 = new CCOrbitCamera(2, 1, 0, 0, 180, -45, 0);
            action2 = new CCSequence(orbit2, orbit2.Reverse());

            var orbit3 = new CCOrbitCamera(2, 1, 0, 0, 90, 90, 0);
            action3 = new CCSequence(orbit3, orbit3.Reverse());

            var move = new CCMoveBy (3, new CCPoint(100, -100));
            var move_back = move.Reverse();
            var seq = new CCSequence(move, move_back);
            rfe = new CCRepeatForever (seq);
        }
コード例 #8
0
		public CameraTest1()
		{
			sprite1 = new CCSprite(TestResource.s_back3);
			AddChild (sprite1);
			sprite1.Scale = 0.5f;

			sprite2 = new CCSprite(TestResource.s_back3);
			AddChild (sprite2);
			sprite2.Scale = 0.5f;

			var camera = new CCOrbitCamera(10, 0, 1, 0, 360, 0, 0);

			sprite1.RunAction( camera );
			sprite2.RunAction( camera );


		}