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
0 B
|👍
/👎