コード例 #1
0
ファイル: EngineTestBase.cs プロジェクト: robterrell/paradox
        protected override async Task LoadContent()
        {
            await base.LoadContent();

            graphicsCompositor = new SceneGraphicsCompositorLayers
            {
                Cameras = { Camera.Get<CameraComponent>() },
                Master =
                {
                    Renderers =
                    {
                        new ClearRenderFrameRenderer { Color = Color.Green, Name = "Clear frame" },
                        new SceneDelegateRenderer(PreCameraRendererDraw),
                        new SceneCameraRenderer { Mode = SceneCameraRenderer },
                        new SceneDelegateRenderer(PostCameraRendererDraw),
                    }
                }
            };

            Scene = new Scene { Settings = { GraphicsCompositor = graphicsCompositor } };
            Scene.AddChild(Camera);

            var ambientLight = new Entity { new LightComponent { Type = new LightAmbient { Color = new LightColorRgb(Color.White) }, Intensity = 1 } };
            Scene.AddChild(ambientLight);

            SceneSystem.SceneInstance = new SceneInstance(Services, Scene);
        }
コード例 #2
0
        /// <summary>
        /// Creates the new scene file. The default scene contains set of simple actors.
        /// </summary>
        /// <param name="path">The path.</param>
        public void CreateSceneFile(string path)
        {
            // Create a sample scene
            var scene = new Scene();

            scene.StaticFlags = StaticFlags.FullyStatic;
            //
            var sun = scene.AddChild <DirectionalLight>();

            sun.Name             = "Sun";
            sun.LocalPosition    = new Vector3(40, 160, 0);
            sun.LocalEulerAngles = new Vector3(45, 0, 0);
            sun.StaticFlags      = StaticFlags.FullyStatic;
            //
            var sky = scene.AddChild <Sky>();

            sky.Name          = "Sky";
            sky.LocalPosition = new Vector3(40, 150, 0);
            sky.SunLight      = sun;
            sky.StaticFlags   = StaticFlags.FullyStatic;
            //
            var skyLight = scene.AddChild <SkyLight>();

            skyLight.Mode          = SkyLight.Modes.CustomTexture;
            skyLight.Brightness    = 2.5f;
            skyLight.CustomTexture = FlaxEngine.Content.LoadAsyncInternal <CubeTexture>(EditorAssets.DefaultSkyCubeTexture);
            skyLight.StaticFlags   = StaticFlags.FullyStatic;
            //
            var floor = scene.AddChild <StaticModel>();

            floor.Name  = "Floor";
            floor.Scale = new Vector3(4, 0.5f, 4);
            floor.Model = FlaxEngine.Content.LoadAsync <Model>(StringUtils.CombinePaths(Globals.EngineContentFolder, "Editor/Primitives/Cube.flax"));
            if (floor.Model)
            {
                floor.Model.WaitForLoaded();
                floor.SetMaterial(0, FlaxEngine.Content.LoadAsync <MaterialBase>(StringUtils.CombinePaths(Globals.EngineContentFolder, "Engine/WhiteMaterial.flax")));
            }
            floor.StaticFlags = StaticFlags.FullyStatic;
            //
            var cam = scene.AddChild <Camera>();

            cam.Name     = "Camera";
            cam.Position = new Vector3(0, 150, -300);

            // Serialize
            var bytes = Level.SaveSceneToBytes(scene);

            // Cleanup
            Object.Destroy(ref scene);

            if (bytes == null || bytes.Length == 0)
            {
                throw new Exception("Failed to serialize scene.");
            }

            // Write to file
            using (var fileStream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read))
                fileStream.Write(bytes, 0, bytes.Length);
        }
コード例 #3
0
        protected override async Task LoadContent()
        {
            await base.LoadContent();

            mainCamera = new Entity
            {
                new CameraComponent
                {
                    AspectRatio         = 8 / 4.8f,
                    FarClipPlane        = 5,
                    NearClipPlane       = 1,
                    VerticalFieldOfView = MathUtil.RadiansToDegrees(0.6f),
                    UseCustomViewMatrix = true,
                    ViewMatrix          = Matrix.LookAtRH(new Vector3(2, 1, 2), new Vector3(), Vector3.UnitY),
                },
                new TransformComponent
                {
                    Position = new Vector3(2, 1, 2)
                }
            };

            CreatePipeline();

            var primitive = GeometricPrimitive.Teapot.New(GraphicsDevice);
            var material  = Asset.Load <Material>("BasicMaterial");

            teapot = new Entity
            {
                new ModelComponent
                {
                    Model = new Model
                    {
                        material,
                        new Mesh
                        {
                            Draw          = primitive.ToMeshDraw(),
                            MaterialIndex = 0,
                        }
                    }
                },
                new TransformComponent()
            };

            var ambientLight = new Entity("Ambient Light")
            {
                new LightComponent {
                    Type = new LightAmbient(), Intensity = 1f
                }
            };

            scene.AddChild(teapot);
            scene.AddChild(mainCamera);
            scene.AddChild(ambientLight);

            // Add a custom script
            if (rotateModel)
            {
                Script.AddTask(GameScript1);
            }
        }
コード例 #4
0
ファイル: PlayerObject.cs プロジェクト: sagarpatel/G-Shooter
 public void AddToScene(Scene scene)
 {
     scene.AddChild(sprite); // add this player sprite
     scene.AddChild(gravitywell_1.sprite);
     foreach(BulletObjectAbstract bullet in gravityWeapon.bulletsArray)
     {
         scene.AddChild(bullet.sprite);
     }
 }
コード例 #5
0
ファイル: FeatureCatalog.cs プロジェクト: weimingtom/Sakura
    public static Scene MakeTestGameScene()
    {
//		System.Console.WriteLine( "MakeTestGameScene" );

        var scene = new Scene()
        {
            Name = "GameScene"
        };

        scene.Camera2D.SetViewFromWidthAndCenter(10.0f, new Vector2(3.5f, 2.6f));

        PlanetCute voxel_world = new PlanetCute(new Vector3i(7, 7, 6));

        SpriteUV background = new SpriteUV();

        background             = new SpriteUV(); // background rectangle
        background.BlendMode   = BlendMode.None;
        background.TextureInfo = new TextureInfo(new Texture2D("/Application/Sample/GameEngine2D/FeatureCatalog/data/PlanetCute/bluegrad.png", false));
        scene.AddChild(background);

        scene.RegisterDisposeOnExit((System.IDisposable)background.TextureInfo);

        background.Schedule((dt) => {
            background.Quad = new TRS(scene.Camera2D.CalcBounds());
        });

/*
 * // ShadowSideWest test
 *              voxel_world.SetBlock( new Vector3i(0,1,0), PlanetCute.StoneBlock );
 *              voxel_world.SetBlock( new Vector3i(0,0,1), PlanetCute.StoneBlock );
 */
/*
 * // ShadowWest test
 *              voxel_world.SetBlock( new Vector3i(0,0,1), PlanetCute.StoneBlock );
 *      voxel_world.SetBlock( new Vector3i(1,0,0), PlanetCute.StoneBlock );
 */
/*
 *              voxel_world.SetBlock( new Vector3i(0,0,1), PlanetCute.StoneBlock );
 *              voxel_world.SetBlock( new Vector3i(1,0,1), PlanetCute.StoneBlock );
 *              voxel_world.SetBlock( new Vector3i(2,0,1), PlanetCute.StoneBlock );
 *              voxel_world.SetBlock( new Vector3i(0,1,1), PlanetCute.StoneBlock );
 *
 *              voxel_world.SetBlock( new Vector3i(1,1,0), PlanetCute.StoneBlock );
 *              voxel_world.SetBlock( new Vector3i(2,1,1), PlanetCute.StoneBlock );
 *              voxel_world.SetBlock( new Vector3i(0,2,1), PlanetCute.StoneBlock );
 *              voxel_world.SetBlock( new Vector3i(1,2,1), PlanetCute.StoneBlock );
 *      voxel_world.SetBlock( new Vector3i(2,2,1), PlanetCute.StoneBlock );
 */
        voxel_world.CreateRPGTestScene();

        scene.AddChild(voxel_world);

        return(scene);
    }
コード例 #6
0
ファイル: AVGManager.cs プロジェクト: PssProgram/Lost-In-Trek
 public void Setup()
 {
     Scene     = Director.Instance.CurrentScene;
     textBox   = new TextBox();
     TextLayer = new Layer();
     AVGlayer  = new Layer();
     Scene.AddChild(AVGlayer);
     Scene.AddChild(TextLayer);
     textBox.NewTextBox();
     textBox.textBG.ChangeFather(TextLayer);
     textBox.textBG.ObjectTouched += new TouchInputDelegate(Input);
 }
コード例 #7
0
        private void CreateScene()
        {
            _scene = new Scene();
            var octree = _scene.CreateComponent <Octree>();

            // Camera
            var cameraNode = new Node
            {
                Name     = "CameraNode",
                Position = new Vector3(120, 120, 120),
                Rotation = new Quaternion(-0.121f, 0.878f, -0.305f, -0.35f),
            };

            var camera = new Camera();

            cameraNode.AddComponent(camera);
            _scene.AddChild(cameraNode);

            // Light
            var lightNode = new Node
            {
                Name = "LightNode"
            };

            var light = new Light
            {
                LightType  = LightType.Point,
                Range      = 600,
                Brightness = 1.3f
            };

            lightNode.AddComponent(light);
            _scene.AddChild(lightNode);

            // Chart
            var backgroundColor = Xamarin.Forms.Color.Transparent;

            if (Chart.IsValid == true)
            {
                CreateChartAsync();
                backgroundColor = Chart.BackgroundColor;
            }

            // Viewport and background color
            var viewport = new Viewport(Context, _scene, camera);

            Renderer.SetViewport(0, viewport);
            viewport.SetClearColor(ConvertToUrhoColor(backgroundColor));

            // Input events
            Input.TouchEnd += OnTouched;
        }
コード例 #8
0
ファイル: ShipSprite.cs プロジェクト: zfs990/ios-samples
        public void AttemptMissileLaunch(double currentTime)
        {
            if (health <= 0)
            {
                return;
            }

            double timeSinceLastFired = currentTime - timeLastFiredMissile;

            if (timeSinceLastFired > firingInterval)
            {
                timeLastFiredMissile = currentTime;
                // avoid duplicating costly math ops
                float shipDirection = ShipOrientation;
                float cos           = (float)Math.Cos(shipDirection);
                float sin           = (float)Math.Sin(shipDirection);

                var position = new CGPoint(Position.X + missileLaunchDistance * cos,
                                           Position.Y + missileLaunchDistance * sin);
                SKNode missile = NodeFactory.CreateMissileNode(this);
                missile.Position = position;
                Scene.AddChild(missile);

                missile.PhysicsBody.Velocity = PhysicsBody.Velocity;
                var vector = new CGVector(missileLaunchImpulse * cos, missileLaunchImpulse * sin);
                missile.PhysicsBody.ApplyImpulse(vector);
            }
        }
コード例 #9
0
ファイル: ShipSprite.cs プロジェクト: zfs990/ios-samples
        void Explode()
        {
            // Create a bunch of explosion emitters and send them flying in all directions. Then remove the ship from the scene.
            for (int i = 0; i < numberOfChunks; i++)
            {
                SKEmitterNode explosion = NodeFactory.CreateExplosionNode(Scene, shipExplosionDuration);

                float angle = myRand(0, (float)Math.PI * 2);
                float speed = myRand(shipChunkMinimumSpeed, shipChunkMaximumSpeed);
                var   x     = myRand((float)Position.X - shipChunkDispersion, (float)Position.X + shipChunkDispersion);
                var   y     = myRand((float)Position.Y - shipChunkDispersion, (float)Position.Y + shipChunkDispersion);
                explosion.Position = new CGPoint(x, y);

                var body = SKPhysicsBody.CreateCircularBody(0.25f);
                body.CollisionBitMask   = 0;
                body.ContactTestBitMask = 0;
                body.CategoryBitMask    = 0;
                body.Velocity           = new CGVector((float)Math.Cos(angle) * speed, (float)Math.Sin(angle) * speed);
                explosion.PhysicsBody   = body;

                Scene.AddChild(explosion);
            }

            RunAction(SKAction.Sequence(
                          SKAction.WaitForDuration(removeShipTime),
                          SKAction.RemoveFromParent()
                          ));
        }
コード例 #10
0
        //delegate void InitDelegate();
        //void Init()
        //{
        //    if (this.InvokeRequired)
        //        this.Invoke(new InitDelegate(_Init));
        //    else
        //        _Init();
        //}
        void Init(object sender, EventArgs args)
        {
            this.scenePattern    = Library.GetScenePattern("snptrn0");//new ScenePattern("ScenePattern");
            this.scene           = (Scene)this.soshiant33Panel.engine.AddChild(this.scenePattern, null);
            this.scene.رنگ_زمینه = this.BackColor;
            this.scene.Pause();
            //base Plane
            SpritePattern plane = new SpritePattern("Plane Pattern");
            SpriteState   state = plane.AddNewState("st0");

            state.صورت = "basePlane.x";
            state.AddNewKeyFrame(0);
            Sprite basePlane = (Sprite)scene.AddChild(plane, null);

            basePlane.مولفه_ها.موقعیت.z = 1000;
            //Target Sprite
            this.spritePattern = new SpritePattern("SpritePatern" + patternCounter++.ToString());
            this.sprite        = (Sprite)this.scene.AddChild(this.spritePattern, null);

            this.soshiant33Panel.engine.camera.Fly(250);
            this.soshiant33Panel.engine.camera.Pitch(0.4f);
            this.soshiant33Panel.engine.camera.Walk(220);
            this.soshiant33Panel.engine.Resize(this.soshiant33Panel.Width, this.soshiant33Panel.Height);
            //this.splitContainer2.SplitterDistance = 200;
            if (this.OnTurnedOn != null)
            {
                this.OnTurnedOn(this, null);
            }
        }
コード例 #11
0
ファイル: Entity.cs プロジェクト: sheriff124/TechAssignment
 public virtual void AddToScene(Scene _scene)
 {
     if (sprite != null)
     {
         _scene.AddChild(sprite);
     }
 }
コード例 #12
0
        protected override async Task LoadContent()
        {
            await base.LoadContent();

            graphicsCompositor = new SceneGraphicsCompositorLayers
            {
                Cameras = { Camera.Get <CameraComponent>() },
                Master  =
                {
                    Renderers     =
                    {
                        new ClearRenderFrameRenderer {
                            Color = Color.Green, Name = "Clear frame"
                        },
                        new SceneDelegateRenderer(PreCameraRendererDraw),
                        new SceneCameraRenderer      {
                            Mode  = SceneCameraRenderer
                        },
                        new SceneDelegateRenderer(PostCameraRendererDraw),
                    }
                }
            };

            Scene = new Scene {
                Settings = { GraphicsCompositor = graphicsCompositor }
            };
            Scene.AddChild(Camera);

            SceneSystem.SceneInstance = new SceneInstance(Services, Scene);
        }
コード例 #13
0
        public void ReOrderZ(Scene scene)
        {
            sprite          = null;
            sprite          = new SpriteUV(textureInfo);
            sprite.Quad.S   = textureInfo.TextureSizef;
            sprite.Position = new Vector2(0.0f, 0.0f);
            scene.AddChild(sprite);
            sprite.Visible = false;

            restartButtonSprite          = null;
            restartButtonSprite          = new SpriteUV(restartButtonTexture);
            restartButtonSprite.Quad.S   = restartButtonTexture.TextureSizef;
            restartButtonSprite.Position = new Vector2(0.0f, 0.0f);
            scene.AddChild(restartButtonSprite);
            restartButtonSprite.Visible = false;
        }
コード例 #14
0
ファイル: FeatureCatalog.cs プロジェクト: weimingtom/Sakura
    public static Scene MakeManySpritesScene()
    {
        var tex1 = new TextureInfo(new Texture2D("/Application/Sample/GameEngine2D/FeatureCatalog/data/slime_green_frames.png", false)
                                   , new Vector2i(4, 4));

        var scene = new Scene()
        {
            Name = "many SpriteUV scene"
        };

        Bounds2 bounds = scene.Camera.CalcBounds();

        Vector2i num_cells = new Vector2i(8, 8);
        Vector2  cell_size = bounds.Size / num_cells.Vector2();

        Math.RandGenerator rgen   = new Math.RandGenerator();
        System.Random      random = new System.Random();

        for (int y = 0; y < num_cells.Y; ++y)
        {
            for (int x = 0; x < num_cells.X; ++x)
            {
                Vector2 uv = new Vector2((float)x, (float)y) / num_cells.Vector2();

                var sprite = new SpriteTile()
                {
                    TextureInfo = tex1
                    , Color     = Math.SetAlpha(new Vector4(0.5f) + rgen.NextVector4(Math._0000, Math._1111) * 0.5f, 0.75f)
                                  //, Color = Math.SetAlpha( new Vector4(0.5f), 1f/*0.75f*/ )
                    , BlendMode   = BlendMode.None
                    , TileIndex2D = new Vector2i(random.Next(0, 4),
                                                 random.Next(0, 4))
                };

                Vector2 p = bounds.Min + bounds.Size * uv;

                // init position/size
                sprite.Position = p;
                sprite.Quad.S   = cell_size;               // note: we don't want to touch the Node.Scale here
                sprite.Pivot    = sprite.Quad.S * 0.5f;

                sprite.Schedule((dt) =>
                {
                    sprite.Rotation = sprite.Rotation.Rotate(Math.Deg2Rad(1.0f));
                    sprite.Rotation = sprite.Rotation.Normalize();

                    if (Common.FrameCount % 8 == 0)
                    {
                        sprite.TileIndex1D = (sprite.TileIndex1D + 1) % 16;
                    }
                });

                scene.AddChild(sprite);
            }
        }

        scene.RegisterDisposeOnExit((System.IDisposable)tex1);

        return(scene);
    }
コード例 #15
0
ファイル: SceneTests.cs プロジェクト: punker76/Macabre2D
        public static void Scene_AddComponent_HasChildren_PreInitializeTest()
        {
            using (var scene = new Scene())
                using (var child1 = new TestComponent())
                    using (var child2 = new TestComponent())
                        using (var parent = new TestComponent()) {
                            parent.AddChild(child1);
                            parent.AddChild(child2);

                            var parentHasBeenAdded = false;
                            var child1HasBeenAdded = false;
                            var child2HasBeenAdded = false;

                            scene.ComponentAdded += (object sender, BaseComponent e) => parentHasBeenAdded = parentHasBeenAdded || e == parent;
                            scene.ComponentAdded += (object sender, BaseComponent e) => child1HasBeenAdded = child1HasBeenAdded || e == child1;
                            scene.ComponentAdded += (object sender, BaseComponent e) => child2HasBeenAdded = child2HasBeenAdded || e == child2;

                            scene.AddChild(parent);

                            Assert.False(parentHasBeenAdded);
                            Assert.False(child1HasBeenAdded);
                            Assert.False(child2HasBeenAdded);

                            scene.Initialize(Substitute.For <IGame>());

                            Assert.True(parentHasBeenAdded);
                            Assert.True(child1HasBeenAdded);
                            Assert.True(child2HasBeenAdded);
                            Assert.False(scene.Children.Contains(child1));
                            Assert.False(scene.Children.Contains(child2));
                            Assert.Contains(parent, scene.Children.ToList());
                        }
        }
コード例 #16
0
ファイル: AppMain.cs プロジェクト: SiENcE/lovepsm
        public static void love_graphics_draw(TextureInfo drawable, float x, float y, float r, float sx, float sy, float ox, float oy)
        {
            // create a new sprite
            var sprite = new SpriteUV()
            {
                TextureInfo = drawable
            };

            // make the texture 1:1 on screen
            sprite.Quad.S = drawable.TextureSizef;

            // center the sprite around its own .Position
            // (by default .Position is the lower left bit of the sprite)
            sprite.CenterSprite(TRS.Local.TopLeft);

            // our scene only has 2 nodes: scene->sprite
            scene.AddChild(sprite);

            sprite.Position = new Vector2(x - ox, 544 - y + oy);
            sprite.Pivot    = new Vector2(ox, -oy);
            sprite.Scale    = new Vector2(sx, sy);
            sprite.Rotate(-r);
            sprite.BlendMode = BlendMode.Normal;
            sprite.Color     = setColor;
        }
コード例 #17
0
ファイル: Player.cs プロジェクト: edhaker13/Flabola
        // Public functions.
        public Player(Scene scene)
        {
            textureInfo     = new TextureInfo(new Texture2D("/Application/assets/player-spritemap.png", false), new Vector2i(13, 1));
            sprite          = new SpriteTile(textureInfo);
            sprite.Position = new Vector2(AppMain.ScreenWidth * .2f, AppMain.ScreenHeight * .5f);
            sprite.Quad.S   = textureInfo.TileSizeInPixelsf;
            sprite.CenterSprite(TRS.Local.Center);
            // Player variables
            isAlive     = true;
            moveState   = MoveStatus.Disabled;
            rotateAngle = .0f;

            // Attach update fucntion to scheduler
            sprite.Schedule(Update);

            // Create animation function
            sprite.ScheduleInterval((dt) => {
                if (IsAlive)
                {
                    int tileIndex      = sprite.TileIndex1D < 8 ? sprite.TileIndex1D + 1 : 1;
                    sprite.TileIndex1D = tileIndex;
                }
            }, 0.2f);
            sprite.ScheduleInterval((dt) => {
                if (!IsAlive)
                {
                    int tileIndex      = sprite.TileIndex1D < 12 ? sprite.TileIndex1D + 1 : 12;
                    sprite.TileIndex1D = tileIndex;
                }
            }, 0.16f);

            // Add to the current scene.
            scene.AddChild(sprite);
        }
コード例 #18
0
        public void LoadScene(string scene)
        {
            _scene = new Scene();
            _scene.LoadXml(scene);
            var camera = _scene.GetComponent <Camera>(true);

            if (camera != null)
            {
                CameraNode = camera.Node;
            }
            else
            {
                CameraNode = new Node();
                CameraNode.CreateComponent <Camera>();
                _scene.AddChild(CameraNode);
            }

            Light = null;
            var model = _scene.GetComponent <StaticModel>(true);

            if (model != null)
            {
                PreviewNode = model.Node;
            }

            NotifyNodes();
        }
コード例 #19
0
ファイル: Obstacle.cs プロジェクト: edhaker13/Flabola
        // Public functions.
        public Obstacle(float startX, Scene scene)
        {
            textureInfo = new TextureInfo(new Texture2D("/Application/assets/zombie_pipes.png", false), new Vector2i(4, 8));

            sprites = new SpriteTile[2];

            // Top
            sprites[0]             = new SpriteTile(textureInfo);
            sprites[0].Quad.S      = textureInfo.TileSizeInPixelsf;
            sprites[0].TileIndex2D = new Vector2i(0, (int)RandomPosition(0f, 4f));
            // Add to the current scene.
            scene.AddChild(sprites[0]);

            // Bottom
            sprites[1]             = new SpriteTile(textureInfo);
            sprites[1].Quad.S      = textureInfo.TileSizeInPixelsf;
            sprites[1].TileIndex2D = new Vector2i(0, (int)RandomPosition(0f, 4f));
            // Add to the current scene.
            scene.AddChild(sprites[1]);

            // Get sprite bounds.
            Bounds2 b = sprites[0].Quad.Bounds2();

            width  = b.Point10.X;
            height = b.Point11.Y;

            // Position pipes.
            sprites[0].Position = new Vector2(startX, AppMain.ScreenHeight * RandomPosition(0.5f, 1.0f - height / AppMain.ScreenHeight / 2));
            sprites[1].Position = new Vector2(startX, AppMain.ScreenHeight * RandomPosition(-height / AppMain.ScreenHeight / 2, 0.4f));
            // Position gap rect
            pipeGap = new Bounds2(new Vector2(sprites[1].Position.X, sprites[1].Position.Y + height),
                                  new Vector2(sprites[0].Position.X + width, sprites[0].Position.Y));
            isGapOccupied = false;

            sprites[0].Schedule(Update);
            // Animations
            sprites[0].ScheduleInterval((dt) => {
                int tileIndex          = sprites[0].TileIndex2D.X < 4 ? sprites[0].TileIndex2D.X + 1: 0;
                sprites[0].TileIndex2D = new Vector2i(sprites[0].TileIndex2D.Y, tileIndex);
            }, 0.25f);
            sprites[1].Schedule(Update);
            sprites[0].ScheduleInterval((dt) => {
                int tileIndex          = sprites[1].TileIndex2D.X < 4 ? sprites[1].TileIndex2D.X + 1: 0;
                sprites[1].TileIndex2D = new Vector2i(sprites[1].TileIndex2D.Y, tileIndex);
            }, 0.25f);
        }
コード例 #20
0
 void AddTexturedSprite()
 {
     using (SKSpriteNode sprite = new SKSpriteNode("Art/rocket.png")) {
         sprite.Position = new CGPoint(Scene.Frame.GetMidX() - 200, Scene.Frame.GetMidY());
         sprite.AddDescription("Texture Sprite", new CGPoint(0, -sprite.Size.Height / 2 - 30));
         Scene.AddChild(sprite);
     }
 }
コード例 #21
0
        private void LoadPrefab()
        {
            var node = new Node();

            node.LoadXml(_sceneName);
            CreateSimpleScene();
            Scene.AddChild(node);
        }
コード例 #22
0
 void AddColoredSprite()
 {
     using (SKSpriteNode sprite = new SKSpriteNode(UIColor.Red, new CGSize(128, 128))) {
         sprite.Position = new CGPoint(Scene.Frame.GetMidX() + 200, Scene.Frame.GetMidY());
         sprite.AddDescription("Color Sprite", new CGPoint(0, -sprite.Size.Height / 2 - 30));
         Scene.AddChild(sprite);
     }
 }
コード例 #23
0
ファイル: MouseOverTest.cs プロジェクト: ddevelopment/paradox
        protected override async Task LoadContent()
        {
            await base.LoadContent();

            var background = new Entity {
                new BackgroundComponent {
                    Texture = Asset.Load <Texture>("ParadoxBackground")
                }
            };

            Scene.AddChild(background);

            button1 = new Button {
                Content = new TextBlock {
                    Text = "text block button 1", Font = Asset.Load <SpriteFont>("CourierNew12"), SynchronousCharacterGeneration = true
                }
            };
            button1.SetCanvasRelativePosition(new Vector3(0.025f, 0.05f, 0f));

            edit1 = new EditText(Services)
            {
                Text = "Edit text 1", Font = Asset.Load <SpriteFont>("CourierNew12"), SynchronousCharacterGeneration = true,
            };
            edit1.SetCanvasRelativePosition(new Vector3(0.025f, 0.15f, 0f));

            button2 = new Button {
                Content = new TextBlock {
                    Text = "text block button 2", Font = Asset.Load <SpriteFont>("MicrosoftSansSerif15"), SynchronousCharacterGeneration = true
                }
            };
            edit2 = new EditText(Services)
            {
                Text = "Edit text 2", Font = Asset.Load <SpriteFont>("MicrosoftSansSerif15"),
            };

            stackPanel = new StackPanel
            {
                Children            = { button2, edit2 },
                HorizontalAlignment = HorizontalAlignment.Center,
                VerticalAlignment   = VerticalAlignment.Center,
                Orientation         = Orientation.Horizontal
            };
            stackPanel.SetCanvasRelativePosition(new Vector3(0.5f, 0.5f, 0f));
            stackPanel.SetCanvasPinOrigin(new Vector3(.5f));

            canvas = new Canvas {
                Children = { button1, edit1, stackPanel }, CanBeHitByUser = true
            };

            button1.MouseOverStateChanged    += (sender, args) => { triggeredButton1 = true; oldValueButton1 = args.OldValue; newValueButton1 = args.NewValue; };
            button2.MouseOverStateChanged    += (sender, args) => { triggeredButton2 = true; };
            edit1.MouseOverStateChanged      += (sender, args) => { triggeredEdit1 = true; };
            edit2.MouseOverStateChanged      += (sender, args) => { triggeredEdit2 = true; };
            canvas.MouseOverStateChanged     += (sender, args) => { triggeredCanvas = true; };
            stackPanel.MouseOverStateChanged += (sender, args) => { triggeredStackPanel = true; };

            UIComponent.RootElement = canvas;
        }
コード例 #24
0
        public GameOverScreen(Scene scene) : base(scene)
        {
            textureInfo     = new TextureInfo("/Application/textures/gameOver.png");
            sprite          = new SpriteUV();
            sprite          = new SpriteUV(textureInfo);
            sprite.Quad.S   = textureInfo.TextureSizef;
            sprite.Position = new Vector2(0.0f, 0.0f);
            scene.AddChild(sprite);
            sprite.Visible = false;

            restartButtonTexture         = new TextureInfo("/Application/textures/restartButton.png");
            restartButtonSprite          = new SpriteUV();
            restartButtonSprite          = new SpriteUV(restartButtonTexture);
            restartButtonSprite.Quad.S   = restartButtonTexture.TextureSizef;
            restartButtonSprite.Position = new Vector2(0.0f, 0.0f);
            scene.AddChild(restartButtonSprite);
            restartButtonSprite.Visible = false;
        }
コード例 #25
0
        public Tank(Scene scene)
        {
            // Tank Base
            texture2D   = new Texture2D("/Application/Assets/tankBase2.png", false);
            numTiles    = new Vector2i(1, 1);      // tiles in the sprite sheet
            tiles       = new Vector2i(0, 0);      // tile you are displaying
            textureInfo = new TextureInfo(texture2D, numTiles);
            sprite      = new SpriteTile(textureInfo);

            sprite.Quad.S      = new Vector2(textureInfo.TextureSizef.X, textureInfo.TextureSizef.Y);
            sprite.TileIndex2D = tiles;             // sets which tile you are viewing
            sprite.CenterSprite();

            // tank turret
            turretTex     = new TextureInfo("/Application/Assets/tankTurret2.png");
            turret        = new SpriteUV(turretTex);
            turret.Quad.S = turretTex.TextureSizef;
            turret.CenterSprite(TRS.Local.Center);

            if (SceneManager.Instance.rand.NextDouble() > 0.5)
            {
                leftRight = true;
                sprite.Rotate((float)System.Math.PI / 2);
                //turret.Rotate((float)System.Math.PI/2);
            }
            else
            {
                leftRight = false;
                sprite.Rotate(-(float)System.Math.PI / 2);
                //turret.Rotate(-(float)System.Math.PI/2);
            }

            speed    = (float)SceneManager.Instance.rand.NextDouble() * 800.0f;
            position = new Vector2(300.0f, 300.0f);
            minSpeed = 100;
            maxSpeed = 200;
            setRandom();


            scene.AddChild(sprite);
            scene.AddChild(turret);
        }
コード例 #26
0
        /// <summary>
        /// Create an instance of the game test
        /// </summary>
        public UITestGameBase()
        {
            StopOnFrameCount = -1;

            GraphicsDeviceManager.PreferredGraphicsProfile = new [] { GraphicsProfile.Level_11_0 };

            graphicsCompositor = new SceneGraphicsCompositorLayers
            {
                Cameras = { Camera.Get <CameraComponent>() },
                Master  =
                {
                    Renderers     =
                    {
                        new ClearRenderFrameRenderer {
                            Color = Color.Green, Name = "Clear frame"
                        },

                        new SceneDelegateRenderer(SpecificDrawBeforeUI)
                        {
                            Name  = "Delegate before main UI"
                        },

                        new SceneCameraRenderer      {
                            Mode  = SceneCameraRenderer
                        },
                    }
                }
            };
            Scene = new Scene {
                Settings = { GraphicsCompositor = graphicsCompositor }
            };

            Scene.AddChild(UIRoot);
            Scene.AddChild(Camera);

            Camera.Transform.Position = new Vector3(0, 0, 1000);

            UIComponent.IsFullScreen          = true;
            UIComponent.VirtualResolution     = new Vector3(1000, 500, 500);
            UIComponent.VirtualResolutionMode = VirtualResolutionMode.FixedWidthFixedHeight;
        }
コード例 #27
0
        void AddLight()
        {
            SKSpriteNode sprite = new SKSpriteNode("Art/spark.png")
            {
                Position  = GetRandomPosition(),
                BlendMode = SKBlendMode.Add,
                Alpha     = 0.5f
            };

            sprite.SetScale(2f);
            Scene.AddChild(sprite);
        }
コード例 #28
0
ファイル: SpriteTestGame.cs プロジェクト: tiomke/paradox
        protected override async Task LoadContent()
        {
            await base.LoadContent();

            // sets the virtual resolution
            areaSize = new Vector2(GraphicsDevice.BackBuffer.Width, GraphicsDevice.BackBuffer.Height);

            // Creates the camera
            CameraComponent.UseCustomProjectionMatrix = true;
            CameraComponent.ProjectionMatrix          = Matrix.OrthoRH(areaSize.X, areaSize.Y, -2, 2);

            // Load assets
            groundSprites = Asset.Load <SpriteSheet>("GroundSprite");
            ballSprite1   = Asset.Load <SpriteSheet>("BallSprite1");
            ballSprite2   = Asset.Load <SpriteSheet>("BallSprite2");
            ball          = new Entity {
                new SpriteComponent {
                    SpriteProvider = new SpriteFromSheet {
                        Sheet = Asset.Load <SpriteSheet>("BallSprite1")
                    }
                }
            };

            // create fore/background entities
            foreground = new Entity();
            background = new Entity();
            foreground.Add(new SpriteComponent {
                SpriteProvider = new SpriteFromSheet {
                    Sheet = groundSprites
                }, CurrentFrame = 1
            });
            background.Add(new SpriteComponent {
                SpriteProvider = new SpriteFromSheet {
                    Sheet = groundSprites
                }, CurrentFrame = 0
            });

            Scene.AddChild(ball);
            Scene.AddChild(foreground);
            Scene.AddChild(background);

            spriteComponent  = ball.Get(SpriteComponent.Key);
            transfoComponent = ball.Get(TransformComponent.Key);

            var decorationScalings = new Vector3(areaSize.X, areaSize.Y, 1);

            background.Get(TransformComponent.Key).Scale    = decorationScalings;
            foreground.Get(TransformComponent.Key).Scale    = decorationScalings / 2;
            background.Get(TransformComponent.Key).Position = new Vector3(0, 0, -1);
            foreground.Get(TransformComponent.Key).Position = new Vector3(0, 0, 1);

            SpriteAnimation.Play(spriteComponent, 0, spriteComponent.SpriteProvider.SpritesCount - 1, AnimationRepeatMode.LoopInfinite, 30);
        }
コード例 #29
0
ファイル: MyGame.cs プロジェクト: teocot/RenderCube
        void CreateScene()
        {
            // 3D scene with Octree
            scene = new Scene(Context);
            scene.CreateComponent <Octree>();

            // models
            this.AddModel("Suzanne");
            this.AddModel("Cube");
            this.AddModel("Teapot");
            CurrentModel = "Cube";

            // Light
            Node lightNode = scene.CreateChild(name: "light");
            var  light     = lightNode.CreateComponent <Light>();

            light.Range        = 20;
            light.Brightness   = 0.9f;
            lightNode.Position = new Vector3(x: 5, y: 5, z: 8);


            //skybox
            var skyNode = scene.CreateChild("Sky");

            skyNode.SetScale(500.0f); // The scale actually does not matter
            var skybox = skyNode.CreateComponent <Skybox>();

            skybox.Model = ResourceCache.GetModel("Models/Box.mdl");
            skybox.SetMaterial(ResourceCache.GetMaterial("Materials/Skybox3.xml"));

            var origin = new Vector3(0.0f, 0.0f, 0.0f);

            // Camera
            CameraNode        = new LookSphereNode(name: "camera", center: () => UserNodes[CurrentModel].Position);
            CameraNode.Radius = 4.0f;

            scene.AddChild(CameraNode);
            Camera = CameraNode.CreateComponent <Camera>();
            SetPanelMode(PanelMode.Material);


            ///I left this is as a demonstration of saving data.  All urho data structures can be exported as xml this way.
            //String filename = ResourceCache.GetResourceFileName("Scenes/Scene.xml");
            //Urho.IO.File file = new Urho.IO.File(Context,filename, Urho.IO.FileMode.ReadWrite);
            //scene.SaveXml(file, "\t");

            // This is here to demonstrate how animations can be done.
            // Do actions
            //await model1Node.RunActionsAsync(new EaseBounceOut(new ScaleTo(duration: 1f, scale: 1)));
            //await boxNode.RunActionsAsync(new RepeatForever(new MoveBy(duration: 1, position: new Vector3(0.001f, 0.0f, 0.0f))));
            //await boxNode.RunActionsAsync(new RepeatForever(
            // new RotateBy(duration: 5, deltaAngleX: 0, deltaAngleY: 90, deltaAngleZ: 0)));
        }
コード例 #30
0
        protected override async Task LoadContent()
        {
            await base.LoadContent();

            var cube = new Entity {
                new ModelComponent {
                    Model = Asset.Load <Model>("cube Model")
                }
            };

            cube.Transform.Scale    = new Vector3(10000);
            cube.Transform.Position = new Vector3(0, 0, 10);
            Scene.AddChild(cube);

            var imageElement = new ImageElement {
                Source = new Sprite(Asset.Load <Texture>("uv"))
            };
            var imageEntity = new Entity {
                new UIComponent {
                    RootElement = imageElement, IsFullScreen = false, VirtualResolution = new Vector3(150)
                }
            };

            imageEntity.Transform.Position = new Vector3(-500, 0, 0);
            Scene.AddChild(imageEntity);

            var imageEntity2 = new Entity {
                new UIComponent {
                    RootElement = imageElement, IsFullScreen = false, VirtualResolution = new Vector3(200)
                }
            };

            imageEntity2.Transform.Position = new Vector3(0, 250, 0);
            Scene.AddChild(imageEntity2);

            var imageEntity3 = new Entity {
                new UIComponent {
                    RootElement = imageElement, IsFullScreen = false, VirtualResolution = new Vector3(250)
                }
            };

            imageEntity3.Transform.Position = new Vector3(0, 0, -500);
            Scene.AddChild(imageEntity3);

            // setup the camera
            var camera = new TestCamera {
                Yaw = MathUtil.Pi / 4, Pitch = MathUtil.Pi / 4, Position = new Vector3(500, 500, 500), MoveSpeed = 100
            };

            camera.SetTarget(cube, true);
            CameraComponent = camera.Camera;
            Script.Add(camera);
        }
コード例 #31
0
ファイル: GamePage.cs プロジェクト: Suprndm/moon-climber
        public GamePage()
        {
            _logger = GameServiceLocator.Instance.Get <Logger>();
            DeclarePannable(this);

            _blockSize = ORoot.ScreenUnit * AppSettings.BlockSizeU;

            var _background = new Background();

            AddChild(_background);

            _scene = new Scene();
            AddChild(_scene);

            _mapDisplayer = new MapDisplayer();
            _scene.AddChild(_mapDisplayer);

            _objectsDisplayer = new ObjectsDisplayer();
            _scene.AddChild(_objectsDisplayer);

            var upButton   = new TextButton(Width / 2 - 100, 0.9f * Height, 50, "Reset");
            var downButton = new TextButton(Width * 0.8f, 0.5f * Height, 100, "J");


            upButton.Up += () =>
            {
                _character.RealX = CharacterSpawnX;
                _character.RealY = CharacterSpawnY;
                _character.V     = new Vector();
            };

            downButton.Down += () =>
            {
                _character.TryJump();
            };

            AddChild(downButton);
            AddChild(upButton);
        }
コード例 #32
0
        void AddAnimatedAnchor()
        {
            SKSpriteNode animatedSprite = new SKSpriteNode("Art/rocket.png")
            {
                Position    = new CGPoint(Scene.Frame.GetMidX() + 200, Scene.Frame.GetMidY()),
                AnchorPoint = CGPoint.Empty
            };

            Scene.AddChild(animatedSprite);
            AddAnchorDotToSprite(animatedSprite);

            animatedSprite.RunAction(NewAnimateAnchorAction());
        }
コード例 #33
0
ファイル: AVGManager.cs プロジェクト: PssProgram/Lost-In-Trek
 public void Setup()
 {
     Scene = Director.Instance.CurrentScene;
     textBox = new TextBox();
     TextLayer = new Layer();
     AVGlayer = new Layer();
     Scene.AddChild(AVGlayer);
     Scene.AddChild(TextLayer);
     textBox.NewTextBox();
     textBox.textBG.ChangeFather(TextLayer);
     textBox.textBG.ObjectTouched += new TouchInputDelegate(Input);
 }
コード例 #34
0
ファイル: Block.cs プロジェクト: tanis2000/Futile
 public override void Added(Scene scene)
 {
     Debug.Log("block added");
     base.Added(scene);
     scene.AddChild (sprite);
 }