コード例 #1
0
ファイル: Sprite.cs プロジェクト: vijirams/three.net
        public Sprite(Renderer renderer, SpriteMaterial material)
        {
            if (geo == null)
            {
                geo = new Geometry();
                geo.vertices.Add(new Vector3(-0.5f, -0.5f, 0));
                geo.vertices.Add(new Vector3(0.5f, -0.5f, 0));
                geo.vertices.Add(new Vector3(0.5f, 0.5f, 0));
            }

            geometry = geo;
            Material = material ?? new SpriteMaterial(renderer);
        }
コード例 #2
0
        void IHandler <Start> .Handle(FrameArgs frame, Start e)
        {
            _cam = new Camera2D(e.Size, 1000f, Camera2DOrigin.Center);

            // we'll use a solid red material
            _mat = new SpriteMaterial(new SpriteShader(), new Texture("goomba.texture"));

            // create a quad with an origin at the center matching texture size
            _halfSize = _mat.Texture.Size.Width / 2f;
            _quad     = new Quad(_mat, new Vector4(-_halfSize, -_halfSize, _halfSize, _halfSize),
                                 Vector4.One, true);

            _pos   = Vector3.Zero;
            _width = e.Size.X;
        }
コード例 #3
0
ファイル: CanvasView.cs プロジェクト: Milstein/GameStack
        public override void Layout()
        {
            base.Layout();
            var sz = new System.Drawing.Size((int)this.Size.Width, (int)this.Size.Height);

            if (_ctx == null || _surface.Width != sz.Width || _surface.Height != sz.Height)
            {
                this.Release();
                _surface = new ImageSurface(Format.Argb32, sz.Width, sz.Height);
                _ctx     = new Context(_surface);
                                #if __ANDROID__
                _mat = new SpriteMaterial(new SpriteShader(), new Texture(sz, null, All.Rgba));
                                #elif __MOBILE__
                _mat = new SpriteMaterial(new SpriteShader(), new Texture(sz, null, All.BgraExt));
                                #else
                _mat = new SpriteMaterial(new SpriteShader(), new Texture(sz, null, PixelFormat.Bgra));
                                #endif
                _quad = new Quad(_mat, new Vector4(0f, 0f, sz.Width, sz.Height), Vector4.One, true);
                this.Invalidate();
            }
            _isValid = false;
        }
コード例 #4
0
ファイル: Game.cs プロジェクト: Milstein/GameStack
        void IHandler <Start> .Handle(FrameArgs frame, Start e)
        {
            _cam   = new Camera2D(e.Size, 100f);
            _atlas = new Atlas("mario.atlas");
            _batch = new Batch();

            _sprites = new Sprite[] {
                _atlas["mushroom"],
                _atlas["fire-flower"],
                _atlas["star"],
                _atlas["red-shell"],
                _atlas["green-shell"],
                _atlas["goomba"]
            };
            _background       = _atlas["background"];
            _solidColor       = new SpriteMaterial(new SolidColorShader(), null);
            _solidColor.Color = new Vector4(0f, 0f, 0f, 0.65f);
            _boardBackground  = new Quad(_solidColor, Vector4.Zero, Vector4.One);

            for (var c = '0'; c <= '9'; c++)
            {
                _numbers.Add(c, _atlas[c.ToString()]);
            }

            _poof = new SpriteSequence(7, false, _atlas["smoke-1"], _atlas["smoke-2"], _atlas["smoke-3"], _atlas["smoke-4"]);
            this.Add(_poof);

            _sfx        = new SoundChannel();
            _sfx2       = new SoundChannel();
            _sndNoMatch = new SoundEffect("no-match.opus");
            _sndMatch   = new SoundEffect("match.opus");
            _sndLanding = new SoundEffect("landing.opus");
            _sndCoin    = new SoundEffect("coin.opus");
            _sndOneUp   = new SoundEffect("1-up.opus");

            _music         = new StreamingSoundChannel();
            _musicFile     = new StreamingOpusFile("mario.opus");
            _musicGameOver = new StreamingOpusFile("game-over.opus");
        }
コード例 #5
0
        public override void Run(RenderControl render)
        {
            if (!mLoaded)
            {
                mLoaded = true;

                FontManager.Instance().AddFont("LS", @"C:\Windows\Fonts\STLITI.TTF");
            }

            {
                var fontMaterial = FontMaterial.Create("font-texture-1");
                fontMaterial.SetFaceSide(EnumFaceSide.DoubleSide);
                fontMaterial.SetColor(new Vector3(1, 1, 0));
                fontMaterial.SetBackground(new Vector3(0, 0, 1));
                fontMaterial.SetBillboard(true);

                var dim   = fontMaterial.SetText("Hello 世界!", 128, "LS");
                var shape = GeometryBuilder.CreatePlane(dim.x * 0.1f, dim.y * 0.1f);

                var node = new PrimitiveSceneNode(shape, fontMaterial);
                node.SetPickable(false);

                render.ShowSceneNode(node);
            }
            {
                var fixedSizeMaterial = SpriteMaterial.Create("font-mesh-material");
                fixedSizeMaterial.SetSizeAttenuation(false);
                fixedSizeMaterial.SetColor(ColorTable.Green);

                var mesh  = FontManager.Instance().CreateMesh("哈哈");
                var node  = new PrimitiveSceneNode(mesh, fixedSizeMaterial);
                var scale = 1 / 2200.0f;
                node.SetTransform(Matrix4.makeTranslation(0, 0, 10) * Matrix4.makeScale(scale, scale, scale));
                node.SetPickable(false);

                render.ShowSceneNode(node);
            }
        }
コード例 #6
0
        public void Initialize(ContentManager contentManager, ImageMap map)
        {
            _map          = map;
            _usedTextures = new Dictionary <int, Texture>();

            //get all used image id's
            var usedIds = new HashSet <int>();

            foreach (var entry in Shape.Entries)
            {
                if (entry is GeometryTexturedTriangles gtt)
                {
                    var assignment = _map.Mapping[gtt.Image];

                    usedIds.Add(assignment.TextureId);
                }
            }

            foreach (var id in usedIds)
            {
                var texturePath = "art/Textures/apt_" + MovieName + "_" + id.ToString() + ".tga";
                var loadOptions = new TextureLoadOptions()
                {
                    GenerateMipMaps = false
                };
                _usedTextures.Add(id, contentManager.Load <Texture>(texturePath, loadOptions));
            }

            Material = new SpriteMaterial(contentManager.EffectLibrary.Sprite);

            _materialConstantsBuffer = new ConstantBuffer <SpriteMaterial.MaterialConstants>(contentManager.GraphicsDevice);
            _materialConstantsBuffer.Value.Opacity = 1;
            _materialConstantsBuffer.Update();

            Material.SetMaterialConstants(_materialConstantsBuffer.Buffer);
        }
コード例 #7
0
        private static void Init()
        {
            mediaPath    = Path.GetFullPath("../../../../../js/r68/examples/");
            texturesPath = Path.Combine(mediaPath, "textures");
            renderer     = new Renderer();

            scene = new Scene()
            {
                Fog = new FogLinear(Color.Black, 1500, 2100)
            };

            camera = new PerspectiveCamera(renderer, 60, 1, 2100)
            {
                Position = new Vector3(0, 0, 1500)
            };


            cameraOrtho = new OrthographicCamera(renderer, 1, 10000)
            {
                Position = new Vector3(0, 0, 150)
            };
            sceneOrtho = new Scene();

            //var amount = 200;
            //var radius = 500;


            sceneOrtho.Add(new Mesh(new SphereGeometry(100, 50, 50), new MeshBasicMaterial(renderer)
            {
                Diffuse = Color.Red
            }));


            var group = new Object3D();

            var materialA = new SpriteMaterial(renderer)
            {
                DiffuseMap = new Texture(Path.Combine(texturesPath, "sprite0.png")),
                Diffuse    = Color.White,
                UseFog     = true,
            };

            spriteTL = new Sprite(renderer, materialA)
            {
                Scale = new Vector3(materialA.DiffuseMap.Resolution.Width, materialA.DiffuseMap.Resolution.Height, 1),
            };
            sceneOrtho.Add(spriteTL);

            spriteTR = new Sprite(renderer, materialA)
            {
                Scale = new Vector3(materialA.DiffuseMap.Resolution.Width, materialA.DiffuseMap.Resolution.Height, 1),
            };
            sceneOrtho.Add(spriteTR);

            spriteBL = new Sprite(renderer, materialA)
            {
                Scale = new Vector3(materialA.DiffuseMap.Resolution.Width, materialA.DiffuseMap.Resolution.Height, 1),
            };
            sceneOrtho.Add(spriteBL);

            spriteBR = new Sprite(renderer, materialA)
            {
                Scale = new Vector3(materialA.DiffuseMap.Resolution.Width, materialA.DiffuseMap.Resolution.Height, 1),
            };
            sceneOrtho.Add(spriteBR);

            spriteC = new Sprite(renderer, materialA)
            {
                Scale = new Vector3(materialA.DiffuseMap.Resolution.Width, materialA.DiffuseMap.Resolution.Height, 1),
            };
            sceneOrtho.Add(spriteC);

            UpdateHUDSprites();

            var materialB = new SpriteMaterial(renderer)
            {
                DiffuseMap = new Texture(Path.Combine(texturesPath, "sprite1.png")),
                Diffuse    = Color.White,
                UseFog     = true,
            };

            var materialC = new SpriteMaterial(renderer)
            {
                DiffuseMap = new Texture(Path.Combine(texturesPath, "sprite2.png")),
                Diffuse    = Color.White,
                UseFog     = true,
            };

            mediaPath = Path.Combine(mediaPath, "../../tests/");
        }
コード例 #8
0
ファイル: SceneCrossfader.cs プロジェクト: Milstein/GameStack
 void IHandler <Start> .Handle(FrameArgs frame, Start e)
 {
     _mat = new SpriteMaterial(new SpriteShader(), null);
 }