This class is designed to work with Monogame and provides a simple implementation of a rectangle with rotation and collision detection using the Separating Axis Theorem (SAT).
Feel free to make any modifications you need. If you have ideas for improvement, please contact and share them! =]
- Mauricio Terra (@mauriciomta) mauriciomta@gmail.com
- Marcelo Belkiman (@mmbelkiman) marcelobelkiman@gmail.com
Copy file RotatedRectangle.cs, Circle.cs, CollideObj.cs to your project. Yeah, thats all. (need Monogame/XNA)
You can see Game1.cs to see how to use
Create a new rotateionRectangle
rotatedRectangleA = new RotatedRectangle(
GraphicsDevice,
position,
originPoint,
width,
heigth);
At Update do a update
rotatedRectangleA.Update();
If you want to rotate, do:
rotatedRectangleA.rotation = newRotationValue;
You can use a static function DegreeToRadian to help you a rotate
rotatedRectangleA = RotateRectangle.DegreeToRadian(80);
To check a collision do
rotatedRectangleA.Collide(rotatedRectangleB)
You can change collor if has collision
if (rotatedRectangleA.Collide(rotatedRectangleB))
rotatedRectangleA.SetColor(new Color(255, 0, 0));
else
rotatedRectangleA.SetColor(new Color(0, 255, 0, 200));
Do Draw at Draw
spriteBatch.Begin();
rotatedRectangleA.Draw(spriteBatch);
spriteBatch.End();
Under MIT license