Ejemplo n.º 1
0
        public void Draw(SpriteBatch batch)
        {
            batch.GraphicsDevice.SetRenderTarget(renderTarget);

            batch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, camera.GetTransform());

            background.Draw(batch, camera);

            batch.End();


            batch.GraphicsDevice.SetRenderTarget(null);

            batch.Begin(SpriteSortMode.Deferred, null, null, null, null, effect, null);

            batch.Draw(renderTarget, Vector2.Zero, Color.White);

            batch.End();

            batch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, camera.GetTransform());
            map.Draw(batch);
            BulletsEverywhere.Draw(batch);
            enemyHandler.Draw(batch);
            character.Draw(batch);
            batch.End();
        }
Ejemplo n.º 2
0
        private void DrawFocus()
        {
            Renderer_2D.Begin(Camera2D.GetTransform());
            Vector2   imgSize = ResouceManager.GetTextureSize("Focus");
            Rectangle rect    = new Rectangle(0, 0, (int)imgSize.X, (int)imgSize.Y);

            Renderer_2D.DrawTexture("Focus", focus, Color.Yellow, 0.2f, rect, Vector2.One, 0, imgSize / 2);
            Renderer_2D.End();
        }
Ejemplo n.º 3
0
        public override void Draw()
        {
            Renderer_2D.Begin(Camera2D.GetTransform());

            string    name    = energyBar.GetImgName();
            Vector2   imgSize = ResouceManager.GetTextureSize(name);
            Rectangle rect    = new Rectangle(0, 0, (int)(imgSize.X * energyBar.GetRate()), (int)imgSize.Y);

            Vector2 position = entity.transform.Position;

            while (entity.transform.Angle < 0)
            {
                entity.transform.Angle += 360;
            }
            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));

            radian = MathHelper.ToRadians(entity.transform.Angle);

            Vector2 offsetHori = Vector2.Zero;

            if (area % 4 == 0 || area % 4 == 2)
            {
                offsetHori = Method.RightAngleMove(direction, 40);
            }
            else
            {
                offsetHori = Method.RightAngleMove(direction, -40);
            }
            Renderer_2D.DrawTexture(
                name,
                position + offsetVert + offsetHori,
                Color.LightGreen,
                alpha,
                rect,
                Vector2.One,
                radian,
                imgSize / 2
                );

            Renderer_2D.End();
        }
Ejemplo n.º 4
0
        public override void Draw()
        {
            Renderer_2D.Begin(Camera2D.GetTransform());

            Vector2   imgSize = ResouceManager.GetTextureSize(name);
            Rectangle rect    = new Rectangle(0, 0, (int)imgSize.X, (int)imgSize.Y);

            Renderer_2D.DrawTexture(name, position, alpha, rect, Vector2.One, 0, imgSize / 2);

            Renderer_2D.End();
        }
Ejemplo n.º 5
0
        public void Draw()
        {
            Renderer_2D.Begin(Camera2D.GetTransform());

            Vector2   imgSize = ResouceManager.GetTextureSize("Mouse");
            Rectangle rect    = new Rectangle(0, 0, (int)imgSize.X, (int)imgSize.Y);

            Renderer_2D.DrawTexture("Mouse", GetPosition(), Color.LightBlue, Vector2.One);

            Renderer_2D.End();
        }
Ejemplo n.º 6
0
        protected virtual void DrawObject()
        {
            Renderer_2D.Begin(Camera2D.GetTransform());

            Vector2   imgSize = ResouceManager.GetTextureSize(name);
            Rectangle rect    = new Rectangle(0, 0, (int)imgSize.X, (int)imgSize.Y);

            Renderer_2D.DrawTexture(name, position, Color.White, 1, rect, Vector2.One, 0, imgSize / 2);

            Renderer_2D.End();
        }
Ejemplo n.º 7
0
        public void Draw()
        {
            Renderer_2D.Begin(Camera2D.GetTransform());

            for (int i = 0; i < imgCount; i++)
            {
                string imageName = name + i;
                Renderer_2D.DrawTexture(imageName, layerPositions[i]);
            }

            Renderer_2D.End();
        }
Ejemplo n.º 8
0
 private void DrawWall()
 {
     Renderer_2D.Begin(Camera2D.GetTransform());
     for (int i = 0; i < mapPointsList[eObjectType.Wall].Count; i += 2)
     {
         Renderer_2D.DrawLine(
             mapPointsList[eObjectType.Wall][i].Position,
             mapPointsList[eObjectType.Wall][i + 1].Position,
             Color.LightGreen
             );
     }
     Renderer_2D.End();
 }
Ejemplo n.º 9
0
        public override void Draw()
        {
            Renderer_2D.Begin(Camera2D.GetTransform());

            Vector2   position = entity.transform.Position + offset;
            Vector2   imgSize  = ResouceManager.GetTextureSize(name);
            Rectangle rect     = new Rectangle(0, 0, (int)imgSize.X, (int)imgSize.Y);
            Vector2   drawSize = new Vector2(size.X / imgSize.X, size.Y / imgSize.Y) * 2;

            Renderer_2D.DrawTexture(name, position, color, alpha, rect, drawSize, 0, imgSize / 2);

            Renderer_2D.End();
        }
Ejemplo n.º 10
0
        protected override void DrawObject()
        {
            Renderer_2D.Begin(Camera2D.GetTransform());

            Color color = isSelected ? Color.Red : Color.White;

            Vector2   imgSize = ResouceManager.GetTextureSize(name);
            Rectangle rect    = new Rectangle(0, 0, (int)imgSize.X, (int)imgSize.Y);

            Renderer_2D.DrawTexture(name, position, color, 1, rect, Vector2.One, 0, imgSize / 2);

            Renderer_2D.End();
        }
Ejemplo n.º 11
0
        protected virtual void DrawCollition()
        {
            Renderer_2D.Begin(Camera2D.GetTransform());

            Color color = isMouseIn ? Color.Red : Color.Yellow;

            Vector2   imgSize  = ResouceManager.GetTextureSize("CollisionArea");
            Rectangle rect     = new Rectangle(0, 0, (int)imgSize.X, (int)imgSize.Y);
            Vector2   drawSize = new Vector2(radius / imgSize.X, radius / imgSize.Y) * 2;

            Renderer_2D.DrawTexture("CollisionArea", position, color, 0.5f, rect, drawSize, 0, imgSize / 2);

            Renderer_2D.End();
        }
Ejemplo n.º 12
0
        public override void Draw()
        {
            actionTimer.Update();
            CreatSecondCircle();
            SkillAction();

            Renderer_2D.Begin(Camera2D.GetTransform());

            Vector2   position = entity.transform.Position - new Vector2(0, 130);
            Rectangle rect     = new Rectangle(0, 0, (int)imgSize.X, (int)imgSize.Y);

            Renderer_2D.DrawTexture(name, position, alpha * 0.8f, rect, Vector2.One * nowSize, 0, imgSize / 2);

            Renderer_2D.End();
        }
Ejemplo n.º 13
0
        public override void Draw()
        {
            Renderer_2D.Begin(Camera2D.GetTransform());

            for (int i = 0; i < linePoint.Count - 1; i++)
            {
                Renderer_2D.DrawLine(
                    linePoint[i],
                    linePoint[i + 1],
                    Color.Yellow
                    );
            }

            Renderer_2D.End();
        }
Ejemplo n.º 14
0
        public override void Draw()
        {
            Renderer_2D.Begin(Camera2D.GetTransform());

            if (scrollSpeed == 0)
            {
                DrawNoScoll();
            }
            else
            {
                DrawScoll();
            }

            Renderer_2D.End();
        }
Ejemplo n.º 15
0
 private void DrawBezierLine()
 {
     Renderer_2D.Begin(Camera2D.GetTransform());
     for (int i = 0; i < bezierPositions.Count; i++)
     {
         for (int j = 0; j < bezierPositions[i].Count - 1; j++)
         {
             Renderer_2D.DrawLine(
                 bezierPositions[i][j],
                 bezierPositions[i][j + 1],
                 Color.Yellow
                 );
         }
     }
     Renderer_2D.End();
 }
Ejemplo n.º 16
0
        public override void Draw()
        {
            locusPositions.Add(entity.transform.Position);
            if (locusPositions.Count > 100)
            {
                locusPositions.RemoveAt(0);
            }

            Renderer_2D.Begin(Camera2D.GetTransform());

            locusPositions.ForEach(locus =>
                                   Renderer_2D.DrawTexture(name, locus, 1, rect, Vector2.One, 0, imgSize / 2, depth)
                                   );

            Renderer_2D.End();
        }
Ejemplo n.º 17
0
        public override void Update(GameTime gameTime)
        {
            KeyboardState kState = Keyboard.GetState();
            MouseState    mState = Mouse.GetState();

            #region [Camera Update]

            if (kState.IsKeyDown(Keys.Q))
            {
                Camera.Zoom += 0.1f;
            }
            else if (kState.IsKeyDown(Keys.E))
            {
                Camera.Zoom -= 0.1f;
            }

            float ammount = 4f;
            if (kState.IsKeyDown(Keys.W))
            {
                Camera.Position.Y -= ammount;
            }
            else if (kState.IsKeyDown(Keys.S))
            {
                Camera.Position.Y += ammount;
            }
            if (kState.IsKeyDown(Keys.A))
            {
                Camera.Position.X -= ammount;
            }
            else if (kState.IsKeyDown(Keys.D))
            {
                Camera.Position.X += ammount;
            }

            Camera.GetTransform(Graphics.GraphicsDevice);

            #endregion


            foreach (Sprite s in enemies)
            {
                s.Update(gameTime);
            }
        }
Ejemplo n.º 18
0
        protected override void DrawObject()
        {
            base.DrawObject();

            Renderer_2D.Begin(Camera2D.GetTransform());

            //Renderer_2D.DrawLine(leftTop.Position, rightBottom.Position, Color.LightBlue, false);

            Vector2 centre = (leftTop.Position + rightBottom.Position) / 2;
            Vector2 square = rightBottom.Position - leftTop.Position;
            Vector2 size   = ResouceManager.GetTextureSize("UnitLine");

            square.X /= size.X;
            square.Y /= size.Y;
            Rectangle rect = new Rectangle(0, 0, (int)size.X, (int)size.Y);

            Renderer_2D.DrawTexture("UnitLine", centre, 0.2f, rect, square, 0, size / 2);

            Renderer_2D.End();
        }
Ejemplo n.º 19
0
        public override void Draw()
        {
            if (!Parameter.IsDebug)
            {
                return;
            }

            Renderer_2D.Begin(Camera2D.GetTransform());

            for (int i = 0; i < bezierPoints.Count; i++)
            {
                for (int j = 0; j < bezierPoints[i].Count - 1; j++)
                {
                    Renderer_2D.DrawLine(
                        bezierPoints[i][j],
                        bezierPoints[i][j + 1],
                        Color.Yellow
                        );
                }
            }

            Renderer_2D.End();
        }
Ejemplo n.º 20
0
        private void DrawBezierCurve()
        {
            if (bezierCurves.Count == 0)
            {
                return;
            }

            Renderer_2D.Begin(Camera2D.GetTransform());
            Vector2   imgSize = ResouceManager.GetTextureSize("Point");
            Rectangle rect    = new Rectangle(0, 0, (int)imgSize.X, (int)imgSize.Y);

            for (int k = 0; k < bezierCurves.Count; k++)
            {
                for (int i = 0; i < bezierCurves[k].Count; i++)
                {
                    for (int j = 0; j < bezierCurves[k][i].Count; j++)
                    {
                        Renderer_2D.DrawTexture("Point", bezierCurves[k][i][j], Color.LightGreen, 1, rect, Vector2.One * 0.3f, 0, imgSize / 2);
                    }
                }
            }
            Renderer_2D.End();
        }
Ejemplo n.º 21
0
        public override void Draw()
        {
            if (!Parameter.IsDebug)
            {
                return;
            }

            if (inputState.IsDown(Keys.W))
            {
                Camera2D.ZoomIn();
            }
            if (inputState.IsDown(Keys.S))
            {
                Camera2D.ZoomOut();
            }

            Renderer_2D.Begin();
            DrawTextMessage();
            Renderer_2D.End();

            Renderer_2D.Begin(Camera2D.GetTransform());
            DrawEntityPosition();
            Renderer_2D.End();
        }
Ejemplo n.º 22
0
        public override void Draw(SpriteBatch spriteBatch, GameTime gameTime)
        {
            if (GameSettings.gameState == GameState.Explore)
            {
                spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, null, null, null, cam.GetTransform());

                //OBS!! Skriv bara här om ni vill att det som ritas ut ska vara beroende av kameran (allt utom tex healthbars eller poäng)
                world.Draw(spriteBatch);
                player.Draw(spriteBatch);

                spriteBatch.End();

                spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, null, null, null, null);

                //OBS!! Skriv bara här om ni vill att det som ritas ut ska vara oberoende av kameran (tex healthbars eller poäng)
                hud.DrawExplore(spriteBatch);

                spriteBatch.End();
            }

            else if (GameSettings.gameState == GameState.Battle)
            {
                spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, null, null, null, cam.GetTransform());

                //OBS!! Skriv bara här om ni vill att det som ritas ut ska vara beroende av kameran (allt utom tex healthbars eller poäng)

                spriteBatch.End();

                spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, null, null, null, null);

                //OBS!! Skriv bara här om ni vill att det som ritas ut ska vara oberoende av kameran (tex healthbars eller poäng)
                combat.Draw(spriteBatch, gameTime);

                spriteBatch.End();
            }

            else if (GameSettings.gameState == GameState.Inventory)
            {
                spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, null, null, null, cam.GetTransform());

                //OBS!! Skriv bara här om ni vill att det som ritas ut ska vara beroende av kameran (allt utom tex healthbars eller poäng)
                world.Draw(spriteBatch);
                player.Draw(spriteBatch);

                spriteBatch.End();

                spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, null, null, null, null);

                hud.DrawExplore(spriteBatch);
                hud.statScreen.Draw(spriteBatch);

                if (hud.statScreen.showSummary == true)
                {
                    hud.statScreen.DrawCombatSummary(spriteBatch);
                }

                spriteBatch.End();
            }
        }
Ejemplo n.º 23
0
        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();
            }
        }
Ejemplo n.º 24
0
        public override void Update(GameTime gameTime)
        {
            KeyboardState kState = Keyboard.GetState();
            MouseState    mState = Mouse.GetState();

            #region [Emitters Update]

            if (mState.LeftButton == ButtonState.Pressed)
            {
                Vector2 cursorScreenToWorldPosition = Camera.GetScreenToWorldPosition(new Vector2(mState.X, mState.Y));

                Emitters[5].EmitterBox.X = cursorScreenToWorldPosition.X;
                Emitters[5].EmitterBox.Y = cursorScreenToWorldPosition.Y;

                Emitters[5].Activated = true;
            }
            else
            {
                Emitters[5].Activated = false;
            }

            if (mState.RightButton == ButtonState.Pressed)
            {
                Vector2 cursorScreenToWorldPosition = Camera.GetScreenToWorldPosition(new Vector2(mState.X, mState.Y));

                Emitters[6].EmitterBox.X = cursorScreenToWorldPosition.X;
                Emitters[6].EmitterBox.Y = cursorScreenToWorldPosition.Y;

                Emitters[6].Activated = true;
            }
            else
            {
                Emitters[6].Activated = false;
            }

            foreach (ParticleEmitter Emitter in Emitters)
            {
                Emitter.Update(gameTime);
            }

            #endregion

            #region [Camera Update]

            if (kState.IsKeyDown(Keys.Q))
            {
                Camera.Zoom += 0.1f;
            }
            else if (kState.IsKeyDown(Keys.E))
            {
                Camera.Zoom -= 0.1f;
            }

            float ammount = 4f;
            if (kState.IsKeyDown(Keys.W))
            {
                Camera.Position.Y -= ammount;
            }
            else if (kState.IsKeyDown(Keys.S))
            {
                Camera.Position.Y += ammount;
            }
            if (kState.IsKeyDown(Keys.A))
            {
                Camera.Position.X -= ammount;
            }
            else if (kState.IsKeyDown(Keys.D))
            {
                Camera.Position.X += ammount;
            }

            Camera.GetTransform(Graphics.GraphicsDevice);

            #endregion
        }
Ejemplo n.º 25
0
        public override void Update(GameTime gameTime)
        {
            /*
             * Input State refresh
             */
            KeyboardState kState = Keyboard.GetState();
            MouseState    mState = Mouse.GetState();

            if (kState.IsKeyDown(Keys.Q))
            {
                player.StartBlinking(gameTime);
            }

            /*
             * Player Update
             */
            player.UpdateMotion(gameTime, kState, level);

            /*
             * AI (lol) Update
             */
            foreach (Sprite s in enemies)
            {
                if (s.Alive)
                {
                    s.Update(gameTime);

                    if (Physics.Overlap(s, player) && !player.IsBlinking)  // when blinking, take no damage
                    {
                        player.ReceiveDamage(s.Damage);
                        player.StartBlinking(gameTime);
                    }
                }
            }

            foreach (Tile spike in spikesPointingDown)
            {
                if (Physics.Overlap(spike, player) && !player.IsBlinking)  // when blinking, take no damage
                {
                    player.ReceiveDamage(10);
                    player.StartBlinking(gameTime);
                }
            }
            foreach (Tile spike in spikesPointingUp)
            {
                if (Physics.Overlap(spike, player) && !player.IsBlinking)  // when blinking, take no damage
                {
                    player.ReceiveDamage(10);
                    player.StartBlinking(gameTime);
                }
            }


            /*
             * Projectiles
             */
            foreach (Bullet b in player.Bullets)
            {
                if (b.Alive)
                {
                    foreach (Tile t in level.CollidableTiles)
                    {
                        if (Physics.Overlap(b, t))
                        {
                            b.Kill();
                        }
                    }

                    foreach (Sprite s in enemies)
                    {
                        if (s.Alive)
                        {
                            if (Physics.Overlap(b, s))
                            {
                                b.Kill();
                                s.ReceiveDamage(b.Damage);
                                s.StartBlinking(gameTime);

                                // we should remove dead actors from the list
                            }
                        }
                    }
                }
            }

            /*
             * UI Update
             */
            energyBar.SetPercent((int)(player.Energy * 100f / player.MaxEnergy));
            healthBar.SetPercent((int)(player.Health * 100f / player.MaxHealth));

            camera.Position = new Vector2(player.Body.Position.X, 7 * 16);
            camera.GetTransform(Graphics.GraphicsDevice);

            /*
             * End Condition
             */
            if (!player.Alive)
            {
                // show end game screen
                // now we will just restart this state
                StateManager.Instance.StartGameState("PlayState");
            }
        }