public void UpdateParallax(Camera2D _camera) { Matrix pos = _camera.GetParallaxMatrix(_speed); if (_camera.IsPlayerFollow) { _position.X = -pos.M41 - (int)-pos.M41 % _width; _position2.X = _position.X + _width; } else { if (-pos.M41 > _position2.X + -_camera.Translation.X && -pos.M41 < _position2.X + _width) _position.X = _position2.X + _width; else _position.X = _position2.X - _width; if (-pos.M41 > _position.X + -_camera.Translation.X && -pos.M41 < _position.X + _width) _position2.X = _position.X + _width; else _position2.X = _position.X - _width; } _position.Y = -pos.M42; _position2.Y = -pos.M42; }
protected void DrawParallax(SpriteBatch spriteBatch, Camera2D _camera) { spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, null, null, null, null, _camera.GetParallaxMatrix(_speed)); spriteBatch.Draw(TextureManager.Instance.GetParallax(_textureName), _position, Color.White); spriteBatch.Draw(TextureManager.Instance.GetParallax(_textureName), _position2, Color.White); spriteBatch.End(); }
public void Draw(SpriteBatch spriteBatch, Camera2D pCamera) { if (_textureName == "") return; spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, null, null, null, null, pCamera.GetParallaxMatrix(_speed)); spriteBatch.Draw(TextureManager.Instance.GetParallax(_textureName), _position, Color.White); if(!_isMoving) spriteBatch.Draw(TextureManager.Instance.GetParallax(_textureName), _position2, Color.White); spriteBatch.End(); }
public void Draw(SpriteBatch spriteBatch, Camera2D camera, float pSpeed) { spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, null, null, null, null, camera.GetParallaxMatrix(pSpeed)); foreach (Partikel p in _partikelList) { _shader.CurrentTechnique.Passes[0].Apply(); _shader.Parameters["_colorTex"].SetValue(p.DrawColor.ToVector4()); p.Draw(spriteBatch); } spriteBatch.End(); }