public void Draw() { float dot = Vector3.Dot(SkyDome.LightDirection, Camera.Forward); if (dot < 0.5f) { foreach (Flare flare in flares) { SpriteDrawer.SetVisible(flare.id, false); } return; } Matrix infiniteView = Camera.ViewMatrix; infiniteView[3, 0] = infiniteView[3, 1] = infiniteView[3, 2] = 0; // Project the light position into 2D screen space. Viewport vp = Game.Device.Rasterizer.GetViewports()[0]; Matrix proj = Matrix.PerspectiveFovLH(Camera.Fovx, Camera.AspectRatio, 1.0f, 1000000.0f); Vector3 projectedPosition = Vector3.Project(-SkyDome.LightDirection, vp.X, vp.Y, vp.Width, vp.Height, vp.MinZ, vp.MaxZ, Matrix.Identity * infiniteView * proj); projectedPosition.X /= WeatherGame.Framework.Rendering.DeferredRenderer.RenderWidth; projectedPosition.Y /= WeatherGame.Framework.Rendering.DeferredRenderer.RenderHeight; Vector2 lightPosition = new Vector2(projectedPosition.X * 2.0f - 1.0f, (projectedPosition.Y * 2.0f - 1.0f) * -1); UpdateOcclusion(); DrawFlares(lightPosition); }
/// <param name="sprites">Spritesheet to use when drawing</param> /// <param name="topleft">Top left coordinate of the 0,0 tile</param> /// <param name="bounds">Part of the minimap to draw</param> public void Draw(Spritesheet sprites, Vector2 topleft, Rectangle?bounds = null, bool DrawPlayerIndicator = true) { Rectangle b = bounds ?? new Rectangle(0, 0, tiles.Width, tiles.Height); for (int y = b.Top; y < b.Bottom; ++y) { for (int x = b.Left; x < b.Right; ++x) { Vector2 pos = topleft + new Vector2(x * sprites.Width, y * sprites.Height); int visible = interest[x + y * tiles.Width]; if (visible > 0) { SpriteDrawer.DrawGuiSprite(sprites.Tex, pos, sprites.GetRect(tiles.GetTile(new(x, y))), Z: DrawingUtilities.GetDrawingZ(DrawOrder.MINIMAP)); } if (visible > 1) { SpriteDrawer.DrawGuiSprite(sprites.Tex, pos, sprites.GetRect(ChestIndicator), Z: DrawingUtilities.GetDrawingZ(DrawOrder.MINIMAP_CHEST)); } } } Vector2 PlayerPos = new Vector2(GlobalState.CURRENT_GRID_X, GlobalState.CURRENT_GRID_Y); if (b.Contains(PlayerPos) && DrawPlayerIndicator) { SpriteDrawer.DrawGuiSprite(sprites.Tex, topleft + PlayerPos * new Vector2(sprites.Width), sprites.GetRect(PlayerIndicator), Z: DrawingUtilities.GetDrawingZ(DrawOrder.MINIMAP_PLAYER)); } }
public override void Draw() { base.Draw(); float z = DrawingUtilities.GetDrawingZ(layer); float max_z = DrawingUtilities.GetDrawingZ(layer + 1); SpriteDrawer.DrawGuiSprite(_sliderBg, new Rectangle( (int)(position.X + BarOffset - _slider.Width / 2), (int)(position.Y - _slider.Height / 2), (int)(_slider.Width), (int)(_slider.Height)), Z: z); SpriteDrawer.DrawGuiSprite(_slider.Tex, position + new Vector2(BarOffset, 0), _slider.GetRect((int)_style), Z: z + 2 * (max_z - z) / 3); if (current > min) { int width = (int)(_slider.Width * (current - min) / (max - min)); SpriteDrawer.DrawGuiSprite(_sliderInside, new Rectangle( (int)(position.X + BarOffset - width / 2), (int)(position.Y - _slider.Height / 2), (int)(width), (int)(_slider.Height)), Z: z + (max_z - z) / 3); } }
public virtual void Draw() { if (exists) { if (visible) { Rectangle srect = sprite.GetRect(_curAnim.Frame); srect.Height -= (int)y_push; SpriteDrawer.DrawSprite(sprite.Tex, MathUtilities.CreateRectangle(Position.X - offset.X * scale, Position.Y - offset.Y * scale + (int)y_push, srect.Width * scale, srect.Height * scale), srect, color * opacity, rotation, _flip, DrawingUtilities.GetDrawingZ(layer, MapUtilities.GetInGridPosition(Position).Y + height)); } if (shadow != null) { shadow.Draw(); } if (GlobalState.draw_hitboxes && HasVisibleHitbox) { SpriteDrawer.DrawSprite(ResourceManager.GetTexture("hitbox"), Hitbox, color: Color.Red, Z: DrawingUtilities.GetDrawingZ(DrawOrder.HITBOX, 0)); } } }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { ResourceManager.LoadResources(Content); CardDataManager.ReadCardData(); if (File.Exists("InputConfig.dat")) { using InputConfigLoader inputConfigWriter = new InputConfigLoader($"{BaseFolder}InputConfig.dat"); inputConfigWriter.LoadInputConfig(); } else { SetDefaultKeys(); using InputConfigWriter inputConfigWriter = new InputConfigWriter($"{BaseFolder}InputConfig.dat"); inputConfigWriter.WriteInputConfig(); } DialogueManager.Reload(); SpriteDrawer.Load(Content); foreach (var effect in GlobalState.AllEffects) { effect.Load(Content, graphics.GraphicsDevice); } }
private void Draw() { if (!renderTargetDrawn) { renderTexture.Use(); renderTexture.Clear(Color4.Gray); vab.Bind(); vao.Bind(); pipeline.Bind(); worldMatrix.Matrix = renderTexture.WorldMatrix; worldMatrix.Set(pipeline); vab.DrawDirect(3); var imageData = renderTexture.Framebuffer.Read(800, 600); var image = Image.LoadPixelData <Rgba32>(imageData, 800, 600); image.Save("Screenshot.png"); renderTargetDrawn = true; var sprite = SpriteDrawer.Draw(renderTexture, 0f, 0f); spriteRenderer.SetRenderItems(new SpriteRenderItem[] { sprite }); spriteRenderer.RenderToData((data, count, tex) => { spriteDisplayList.SetVertices(data); spriteDisplayList.SetIndices(SpriteRenderer.GetIndices(1)); resourceSet.Texture = tex; }); } defaultFramebuffer.Bind(); normal.Set(); rotation += 0.001f; spriteDisplayList.Draw(resourceSet); }
/// <summary> /// This is called when the game should draw itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { base.Draw(gameTime); GameTimes.UpdateFPS(gameTime); if (GlobalState.ShowFPS) { _fpsLabel.SetText($"FPS: {GameTimes.FPS:0}"); } SpriteDrawer.BeginDraw(_camera); _currentState.Draw(); SpriteDrawer.EndDraw(); SpriteDrawer.BeginGUIDraw(); _currentState.DrawUI(); if (GlobalState.ShowFPS) { _fpsLabel.Draw(); } SpriteDrawer.EndGUIDraw(); SpriteDrawer.Render(); }
private void Window_Closing(object sender, CancelEventArgs e) { try { Game.Device.ClearState(); } catch { } Rendering.Grid.Dispose(); KeyboardInput.ReleaseDevice(); MouseInput.ReleaseDevice(); SpriteDrawer.Dispose(); DeferredRenderer.Dispose(); SkyDome.Dispose(); TextureLoader.Dispose(); PhysicsEngine.Dispose(); GameData.Dispose(); WorldData.Dispose(); if (view1.D3DScene != null) { view1.D3DScene.Dispose(); } view1.Dispose(); ShaderHelper.Dispose(); }
public void Draw() { float z = DrawingUtilities.GetDrawingZ(drawLayer); float shadowZ = z - 0.01f; float currentY = firstLineY; foreach (List <TextCharacter> line in characterLines) { foreach (var c in line) { if (c.Character == null) { SpriteDrawer.DrawGuiSprite(buttonSprite, WriteAreaTopLeft + new Vector2(c.X, currentY - GameConstants.BUTTON_HEIGHT / 4), c.Crop, Z: z); } else { SpriteDrawer.DrawGuiSprite(spriteFont.texture, WriteAreaTopLeft + new Vector2(c.X, currentY), c.Crop, spriteFont.color * Opacity, Z: z); if (DrawShadow) { SpriteDrawer.DrawGuiSprite(spriteFont.texture, WriteAreaTopLeft + new Vector2(c.X, currentY + 1), c.Crop, color: Color.Black * Opacity, Z: shadowZ); } } } currentY += spriteFont.lineSeparation; } }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { base.LoadContent(); // Create a new SpriteBatch, which can be used to draw textures. IDrawableEffectOverTime d1 = new DrawableFlashingEffectOverTime(5, 50); IDrawableEffectOverTime d4 = new DrawableFlashingEffectOverTime(5, 7); d1.SetDrawable(_sprite); var d2 = new DrawableFlashingEffectOverTime(2, _sprite2, 3); var d3 = new DrawableFlashingEffectOverTime(3, _sprite3, 10); d4.SetDrawable(_sprite4); d2.Frequency = 9; d3.Duration = 20; //NOT WORKING_sprite.AddEffect(drawableFlashingEffectOverTime); //NOT WORKING_sprite4.AddEffect( d2); SpriteDrawer.AddSprite(_sprite); SpriteUpdater.AddToUpdate(_sprite); SpriteDrawer.AddSprite(_sprite2); SpriteUpdater.AddToUpdate(_sprite2); SpriteDrawer.AddSprite(_sprite3); SpriteUpdater.AddToUpdate(_sprite3); SpriteDrawer.AddSprite(_sprite4); SpriteUpdater.AddToUpdate(_sprite4); // TODO: use this.Content to load your game content here }
public void Init() { int i = 0; foreach (Direction d in _sprite.Directions) { DirectionLayout layout = new DirectionLayout(_sprite, d, this); layout.OnFrameClick += layout_OnFrameClick; layout.Modified += Modified; layout.Zoom = _zoom; DirectionHolder.Controls.Add(layout); layout.Location = new Point(2, i++ *(layout.Height + 2) + 2); } ((DirectionLayout)DirectionHolder.Controls[0]).Select(0); _selectedFrame = ((DirectionLayout)DirectionHolder.Controls[0]).SelectedFrame; SpriteDrawer.Content = (Bitmap)_sprite.GetImage((((DirectionLayout)DirectionHolder.Controls[0]).SelectedFrame.Index)); SpriteDrawer.ZoomIn(); SpriteDrawer.ZoomIn(); _tilesetCtrl = new TilesetControl2 { Tileset = SphereStudio.Vanilla.Tileset.FromSpriteset(_sprite), CanInsert = false }; _tilesetCtrl.ZoomIn(); _tilesetCtrl.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top; _tilesetCtrl.TileSelected += _tileset_ctrl_TileSelected; _tilesetCtrl.TileAdded += _tileset_ctrl_TileAdded; _tilesetCtrl.TileRemoved += _tileset_ctrl_TileRemoved; ImageHolder.Controls.Add(_tilesetCtrl); _tilesetCtrl.Width = ImageHolder.Width - 6; DirectionAnim.Sprite = _sprite; DirectionAnim.Direction = _sprite.Directions[0]; FrameBaseEditor.Frame = _sprite.Directions[0].Frames[0]; }
public override void Draw() { if (visible) { SpriteDrawer.DrawGuiSprite(Texture, Position - offset, spriteRect, Z: DrawingUtilities.GetDrawingZ(layer)); } }
public override GameObject CreateGameObject() { GameObject d = GameObject.Instantiate(Main.unitManager.characrerDrawerPrefab); SpriteDrawer drawer = d.AddComponent <SpriteDrawer>(); return(d); }
public void Draw() { SpriteDrawer.DrawUI(background, this.getPos() - view.viewSize / 2, new Vector2(Width, Height), Color.White, Vector2.Zero, 0); foreach (UIElement child in children) { child.Draw(); } }
/*-------------*/ /* CONSTRUCTOR */ /*-------------*/ public SpriteUpdater(GameModel game) { _spriteDrawer = game.SpriteDrawer; _effectsToAdd = new List <IDrawableEffectOverTime>(); _effectsToRemove = new List <IDrawableEffectOverTime>(); _spritesToRemove = new List <ISprite>(); ToUpdate = new List <ISprite>(); game.AddToUpdaters(this); }
public override IEnumerator CreateGameObjectAsync(LoaderResult r) { GameObject d = GameObject.Instantiate(Main.unitManager.characrerDrawerPrefab); SpriteDrawer drawer = d.AddComponent <SpriteDrawer>(); r.isDone = true; r.asset = d; yield return(0); }
public void DrawUI() { Writer.Draw(); SpriteDrawer.DrawGuiSprite(_boxTexture, pos, Z: DrawingUtilities.GetDrawingZ(DrawOrder.TEXTBOX)); if (_drawBlinky) { SpriteDrawer.DrawGuiSprite(blinky_box, _blinkyPos, Z: DrawingUtilities.GetDrawingZ(DrawOrder.TEXT)); } }
public UIElement(View v) { view = v; margin = new Vector2(5, 5); background = SpriteDrawer.LoadTexture("PNG\\UI\\metalPanel_blue.png", true, false); Width = 200; Height = 200; position = new Vector2(0, 0); children = new List <UIElement>(); }
public override void Draw() { base.Draw(); _label.Draw(); if (equipped) { SpriteDrawer.DrawGuiSprite(_equipIcon, Position + new Vector2(12, -1), Z: DrawingUtilities.GetDrawingZ(DrawOrder.EQUIPPED_ICON)); } }
public override void Draw() { if (visible) { Rectangle srect = sprite.GetRect(_curAnim.Frame); SpriteDrawer.DrawGuiSprite(sprite.Tex, MathUtilities.CreateRectangle(Position.X - offset.X * scale, Position.Y - offset.Y * scale + (int)y_push, srect.Width * scale, srect.Height * scale), srect, color * opacity, rotation, Z: DrawingUtilities.GetDrawingZ(layer)); } }
public void Draw() { float z = DrawingUtilities.GetDrawingZ(drawLayer); float shadowZ = z - 0.01f; foreach (var c in characters) { SpriteDrawer.DrawGuiSprite(spriteFont.texture, c.Position, c.Crop, spriteFont.color, Z: z); if (DrawShadow) { SpriteDrawer.DrawGuiSprite(spriteFont.texture, c.Position + new Vector2(0, 1f), c.Crop, color: Color.Black, Z: shadowZ); } } }
public void Draw() { if (texture.Height != 0) { float recoilX = 0, recoilY = 0; recoilX = (float)Math.Cos(parent.rotation + rotaOffset) * Math.Max(currentShootCD - 5, 0); recoilY = (float)Math.Sin(parent.rotation + rotaOffset) * Math.Max(currentShootCD - 5, 0); SpriteDrawer.Draw(texture, parent.pos + new Vector2((float)Math.Cos(parent.rotation + posOffsetDirection) * posOffsetDistance - recoilX, (float)Math.Sin(parent.rotation + posOffsetDirection) * posOffsetDistance - recoilY), Vector2.One, Color.White, new Vector2(((float)texture.Width) / 2, ((float)texture.Height) / 2), parent.rotation - (float)Math.PI / 2); } }
/// <summary> /// /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { SpriteDrawer.Initialize(graphics.GraphicsDevice); InventoryManager.ResetValues(); AchievementManager.ResetValues(); EntityManager.Initialize(); base.Initialize(); _currentState = new PlayState(_camera); _currentState.Create(); _fpsLabel.Initialize(); }
public override void Draw() { if (visible && exists) { float draw_y = MapUtilities.GetInGridPosition(Position).Y; if (!is_behind_player) { float player_y = MapUtilities.GetInGridPosition(_root.Position).Y; draw_y = player_y + 0.5f; } SpriteDrawer.DrawSprite(Texture, MathUtilities.CreateRectangle(Position.X - offset.X, Position.Y - offset.Y, frameWidth, frameHeight), spriteRect, rotation: rotation, Z: DrawingUtilities.GetDrawingZ(layer, draw_y)); wide_attack.Draw(); long_attack.Draw(); } }
public void Run() { PlainCoreSettings.GlfwSearchPath = Path.GetFullPath("../../../../../Native/"); var window = new RenderWindow(); var rs = new TextureResourceSet(window); var t = Texture.FromFile("Example.png"); var renderer = new SpriteRenderer(); var dl = DynamicDisplayList <VertexPositionColorTexture> .Create(renderer); var sprites = new List <SpriteRenderItem>(); var description = FontGenerator.GenerateFont("OpenSans-Regular.ttf", 40); var font = new Font(description); sprites.Add(SpriteDrawer.Draw(t, Color4.White, 0f, 0f)); sprites.Add(SpriteDrawer.Draw(t, Color4.White, 100f, 100f)); sprites.Add(SpriteDrawer.Draw(t, Color4.White, 200f, 200f)); sprites.Add(SpriteDrawer.Draw(t, Color4.White, 400f, 400f)); var glyphs = font.DrawString("ASDF", 500f, 400f); sprites.AddRange(glyphs); var indices = SpriteRenderer.GetIndices(sprites.Count); renderer.SetRenderItems(sprites.ToArray()); while (window.IsOpen) { window.Clear(Color4.Black); window.PollEvents(); renderer.RenderToData((vertices, count, tex) => { dl.SetVertices(vertices); dl.SetIndices(indices, count); rs.Texture = tex; dl.Draw(rs, count); }); window.Display(); } dl.Dispose(); font.Dispose(); renderer.Dispose(); window.Dispose(); }
protected GameModel() { Graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; SpriteDrawer = new SpriteDrawer(this); SpriteUpdater = new SpriteUpdater(this); SpriteLoader = new SpriteLoader(this, Content, SpriteDrawer); InputsManager = new InputsManager(this); TextSpriteDrawer = new TextSpriteDrawer(this); TextSpriteUpdater = new TextSpriteUpdater(this); TextSpriteLoader = new TextSpriteLoader(this, Content, TextSpriteDrawer); GeneratorUpdater = new GeneratorUpdater(this); CameraUpdater = new CameraUpdater(this); Cursor = new Cursor("Cursor2"); ShapeDrawer = new ShapeDrawer(this); _currentGameState = GameStateType.Game; }
public virtual void Draw() { if (visible && exists) { SpriteDrawer.DrawSprite(Texture, MathUtilities.CreateRectangle(Position.X - offset.X * scale, Position.Y - offset.Y * scale, frameWidth * scale, frameHeight * scale), spriteRect, Color.White * _opacity, rotation, _flip, DrawingUtilities.GetDrawingZ(layer, MapUtilities.GetInGridPosition(Position).Y)); if (shadow != null) { shadow.Draw(); } } }
protected override void Dispose(bool disposing) { //GameWorld.Dispose(disposing); try { Game.Device.ClearState(); } catch { } KeyboardInput.ReleaseDevice(); MouseInput.ReleaseDevice(); PrintText.Dispose(); EffectManager.Dispose(); SpriteDrawer.Dispose(); DeferredRenderer.Dispose(); SkyDome.Dispose(); TextureLoader.Dispose(); PhysicsEngine.Dispose(); }
void DrawFlares(Vector2 lightPosition) { // Lensflare sprites are positioned at intervals along a line that // runs from the 2D light position toward the center of the screen. Vector2 screenCenter = Vector2.Zero; Vector2 flareVector = screenCenter - lightPosition; foreach (Flare flare in flares) { SpriteDrawer.SetVisible(flare.id, true); // Compute the position of this flare sprite. Vector2 flarePosition = lightPosition + flareVector * flare.Position; Color4 c = new SlimDX.Color4(flare.Color); c *= new Color4(SkyDome.SunColor); c *= occlusionAlpha; SpriteDrawer.AddInstance(flare.id, flare.Texture, flarePosition, c, flare.Scale / 2, SpriteBlendMode.Additive); } }
private void Window_Initialized(object sender, EventArgs e) { MainPlayer.Initialize(); float aspectRatio = (float)view1.Width / (float)view1.Height; Camera.CurrentBehavior = Behavior.Spectator; //Camera.Perspective((float)Math.PI / 4.0f, aspectRatio, 1.0f, 1000000.0f); Camera.Perspective((float)Math.PI / 4.0f, aspectRatio, 1.0f, 4000.0f); Camera.Position = new Vector3(0, 0, 0); Camera.Velocity = new Vector3(40.0f, 40.0f, 40.0f); Camera.RotationSpeed = 0.25f; WorldTime.Speed = 0; //compile shaders List <BaseGameObject> shaders = WorldData.GetObjectsByType(typeof(Shader)); foreach (Shader s in shaders) { s.Recompile(); } SpriteDrawer.Initialize(); DeferredRenderer.Initialize((int)view1.Width, (int)view1.Height); DeferredRenderer.RenderHeight = (int)view1.Height; DeferredRenderer.RenderWidth = (int)view1.Width; SkyDome.Initialize(); Rendering.Grid.Initialize(); view1.OnRenderView += new EventHandler(view1_OnRender); view1.D3DScene = new CellViewer((int)view1.Width, (int)view1.Height); view1.OnRenderView += new EventHandler(view1_OnRender); this.WindowState = System.Windows.WindowState.Maximized; GameData.LoadGameData(); PhysicsEngine.Initialize(); ScriptManager.Initialize(); }
/// <summary> /// UnloadContent will be called once per game and is the place to unload /// all content. /// </summary> protected override void UnloadContent() { // TODO: Unload any non ContentManager content here spriteDrawer.Dispose(); spriteDrawer = null; spriteManager.Dispose(); spriteManager = null; }
private void StartNewGame() { ship = new Spaceship(Content); camera = new SpaceshipCamera(graphics.GraphicsDevice.Viewport, ship); int x, y, z, pos_x, pos_y, pos_z; Random random = new Random(); for (int i = 0; i < NUM_ASTEROIDS; ++i) { x = random.Next(2); z = random.Next(2); y = random.Next(2); pos_x = random.Next(-30, 31); pos_y = random.Next(-30, 31); pos_z = random.Next(-30, 31); asteroids[i] = new Asteroid(Content, new Vector3(x, y, z)); asteroids[i].Position = new Vector3(pos_x, pos_y, pos_z); } spriteDrawer = new SpriteDrawer(device, Content); spriteManager = new SpriteManager(device, Content); spFont = Content.Load<SpriteFont>(@"Arial"); spBatch = new SpriteBatch(graphics.GraphicsDevice); particleSystem = new ParticleSystem(spriteManager); jetParticleEffect = new JetParticleEffect(particleSystem, ship); points = 0; jetParticleEffect.MinXDirection = -0.3f; jetParticleEffect.MaxXDirection = 0.3f; jetParticleEffect.MinZDirection = 0.6f; jetParticleEffect.MaxZDirection = 0.8f; jetParticleEffect.MinYDirection = -0.2f; jetParticleEffect.MaxYDirection = 0.2f; jetParticleEffect.ParticlesPerSecond = 50.0; jetParticleEffect.ParticleLifetime = 400.0; jetParticleEffect.ParticleSize = 0.5f; jetParticleEffect.ParticleSpeed = 0.7f; jetParticleEffect.FinalColor = Color.Red; }