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); }
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; }
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; }
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"); }
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); } }
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); }
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/"); }
void IHandler <Start> .Handle(FrameArgs frame, Start e) { _mat = new SpriteMaterial(new SpriteShader(), null); }