public override void Draw() { timer.Update(); if (timer.IsTime) { timer.Initialize(); } graphicsDevice.RasterizerState = RasterizerState.CullClockwise; effect.Parameters["WorldViewProjection"].SetValue(Camera2D.GetView() * Camera2D.GetProjection()); effect.Parameters["Rate"].SetValue(timer.Rate()); float radian = MathHelper.ToRadians(entity.transform.Angle); Vector2 direction = new Vector2((float)Math.Cos(radian), (float)Math.Sin(radian)); Vector2 drawPosition = entity.transform.Position + Camera2D.GetOffsetPosition() + offsetPosition; Vector3 drawP3 = new Vector3(drawPosition, 0); VertexUpdate(drawP3); graphicsDevice.SetVertexBuffer(vertexBuffer); foreach (EffectPass pass in effect.CurrentTechnique.Passes) { pass.Apply(); graphicsDevice.DrawUserPrimitives <VertexPositionTexture>( PrimitiveType.TriangleStrip, vertexPositions, 0, 2 ); } }
private void DrawNoScoll() { for (int i = 0; i < imgCount; i++) { if ((layerPositions[i] + Camera2D.GetOffsetPosition()).X < -Parameter.BackGroundSize) { continue; } if ((layerPositions[i] + Camera2D.GetOffsetPosition()).X > Parameter.ScreenSize.X) { continue; } string imageName = name + i; Renderer_2D.DrawTexture(imageName, layerPositions[i]); } }
private void DrawScoll() { scrollPosition.X += scrollSpeed * Camera2D.GetCameraMove().X; for (int i = 0; i < imgCount; i++) { string imageName = name + i; Renderer_2D.DrawTexture(imageName, layerPositions[i] + scrollPosition); if (layerPositions[i].X + scrollPosition.X + Camera2D.GetOffsetPosition().X <= -Parameter.BackGroundSize) { layerPositions[i] += new Vector2(Parameter.BackGroundSize * imgCount, 0); } else if (layerPositions[i].X + scrollPosition.X + Camera2D.GetOffsetPosition().X >= Parameter.BackGroundSize) { layerPositions[i] -= new Vector2(Parameter.BackGroundSize * imgCount, 0); } } }
public override void Draw() { CreatEffect(); graphicsDevice.RasterizerState = RasterizerState.CullClockwise; imageEffects.ForEach(i => { i.Update(); Vector2 drawPosition = i.position + Camera2D.GetOffsetPosition(); Vector3 drawP3 = new Vector3(drawPosition, 0); i.VertexUpdate(drawP3); graphicsDevice.SetVertexBuffer(i.vertexBuffer); foreach (EffectPass pass in i.effect.CurrentTechnique.Passes) { pass.Apply(); graphicsDevice.DrawUserPrimitives <VertexPositionTexture>( PrimitiveType.TriangleStrip, i.vertexPositions, 0, 2 ); } }); }
public override void Draw() { Vector2 position = entity.transform.Position; float angle = entity.transform.Angle; if (angle % 180 == 0) { angle--; } float radian = MathHelper.ToRadians(angle); Vector2 direction = new Vector2((float)Math.Cos(radian), (float)Math.Sin(radian)); Vector2 offsetVert = Method.RightAngleMove(direction, 270); angle += 90; int area = (int)(angle / 90); radian = MathHelper.ToRadians(angle); direction = new Vector2((float)Math.Cos(radian), (float)Math.Sin(radian)); Vector2 offsetHori = Vector2.Zero; if (area % 4 == 0 || area % 4 == 2) { offsetHori = Method.RightAngleMove(direction, -80); } else { offsetHori = Method.RightAngleMove(direction, 80); } Timer skillCD = seasonState.GetSkillCD(); float rate = skillCD.Rate(); if (skillCD.IsMax()) { effect.Parameters["Alpha"].SetValue(1.0f); rate = 0; } else { effect.Parameters["Alpha"].SetValue(0.7f); } graphicsDevice.RasterizerState = RasterizerState.CullClockwise; effect.Parameters["Rate"].SetValue(rate); effect.Parameters["theTexture"].SetValue(ResouceManager.GetTexture("SeasonUI_0" + (int)seasonState.GetNowSeason())); Vector2 drawPosition = entity.transform.Position + Camera2D.GetOffsetPosition() + offsetVert + offsetHori; Vector3 drawP3 = new Vector3(drawPosition, 0); VertexUpdate(drawP3); graphicsDevice.SetVertexBuffer(vertexBuffer); foreach (EffectPass pass in effect.CurrentTechnique.Passes) { pass.Apply(); graphicsDevice.DrawUserPrimitives <VertexPositionTexture>( PrimitiveType.TriangleStrip, vertexPositions, 0, 2 ); } }
public override void Draw() { if (motion == null) { return; } float radian = MathHelper.ToRadians(entity.transform.Angle); Vector2 position = entity.transform.Position; Vector2 direction = new Vector2((float)Math.Cos(radian), (float)Math.Sin(radian)); if (isShaderOn) { shadeTimer.Update(); if (shadeTimer.IsTime) { effect.Parameters["theMask"].SetValue(ResouceManager.GetTexture("NoneMask")); } graphicsDevice.RasterizerState = RasterizerState.CullClockwise; effect.Parameters["Rate"].SetValue(shadeTimer.Rate()); Vector2 drawPosition = position + Camera2D.GetOffsetPosition() + Method.RightAngleMove(direction, animSpriteSize.Y / 2); Vector3 drawP3 = new Vector3(drawPosition, 0); VertexUpdate(drawP3); graphicsDevice.SetVertexBuffer(vertexBuffer); foreach (EffectPass pass in effect.CurrentTechnique.Passes) { pass.Apply(); graphicsDevice.DrawUserPrimitives <VertexPositionTexture>( PrimitiveType.TriangleStrip, vertexPositions, 0, 2 ); } if (shadeTimer.IsTime) { isShaderOn = false; } } else { motion.Update(); Renderer_2D.Begin(Camera2D.GetTransform()); while (entity.transform.Angle < 0) { entity.transform.Angle += 360; } int angle = (int)(entity.transform.Angle / 90); Renderer_2D.DrawTexture( nowAnim.AnimName, position + Method.RightAngleMove(direction, animSpriteSize.Y / 2), alpha, motion.DrawingRange(), Vector2.One * size, radian, animSpriteSize / 2, angle % 4 == 0 || angle % 4 == 3 ); Renderer_2D.End(); } }
public Vector2 GetPosition() { return(new Vector2(Mouse.GetState().X, Mouse.GetState().Y) - Camera2D.GetOffsetPosition()); }