Hyluss icon

[Monogame PingPong] Sprite

Hyluss | PRO | 10/30/18 01:26:54 PM UTC | 0 ⭐ | 566 👁️ | Never ⏰ | []
C# |

2.61 KB

|

None

|

0 👍

/

0 👎

using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
 
 
namespace PingPong
{
    public class Sprite
    {
        protected Texture2D _texture;
 
        public Vector2 Position;
        public Vector2 Velocity;
        public float Speed;
        public Input Input;
 
        int offset=10;
 
        protected int _textureWidth, _textureHeight;
 
        public bool Shining = false;
 
        public Color Color = Color.White;
 
        public Rectangle Rectangle
        {
            get
            {
                return new Rectangle((int)Position.X, (int)Position.Y, _textureWidth, _textureHeight);
            }
        }
 
 
        public Sprite(Texture2D texture)
        {
            _texture = texture;
            _textureWidth = texture.Width;
            _textureHeight= texture.Height;
        }
 
        public virtual void Update(GameTime gameTime, List<Sprite> sprites)
        {
           
        }
 
        public virtual void Draw(SpriteBatch spriteBatch)
        {
            
            
            spriteBatch.Draw(_texture, Position, Color);
        }
 
        //kolizja 
 
        protected bool IsTouchingLeft(Sprite sprite)
        {
            return this.Rectangle.Right + this.Velocity.X  - offset > sprite.Rectangle.Left &&
              this.Rectangle.Left < sprite.Rectangle.Left &&
              this.Rectangle.Bottom > sprite.Rectangle.Top &&
              this.Rectangle.Top < sprite.Rectangle.Bottom;
        }
 
        protected bool IsTouchingRight(Sprite sprite)
        {
            return this.Rectangle.Left + this.Velocity.X + offset < sprite.Rectangle.Right &&
              this.Rectangle.Right > sprite.Rectangle.Right &&
              this.Rectangle.Bottom > sprite.Rectangle.Top &&
              this.Rectangle.Top < sprite.Rectangle.Bottom;
        }
 
        protected bool IsTouchingTop(Sprite sprite)
        {
            return this.Rectangle.Bottom + this.Velocity.Y - offset > sprite.Rectangle.Top &&
              this.Rectangle.Top < sprite.Rectangle.Top &&
              this.Rectangle.Right > sprite.Rectangle.Left &&
              this.Rectangle.Left < sprite.Rectangle.Right;
        }
 
        protected bool IsTouchingBottom(Sprite sprite)
        {
            return this.Rectangle.Top + this.Velocity.Y + offset < sprite.Rectangle.Bottom &&
              this.Rectangle.Bottom > sprite.Rectangle.Bottom &&
              this.Rectangle.Right > sprite.Rectangle.Left &&
              this.Rectangle.Left < sprite.Rectangle.Right;
        }
    }
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎