Skip to content

mmbelkiman/XNA-Monogame-Sat-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XNA Monogame Sat System

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! =]

demo

Created by:

Installation

Copy file RotatedRectangle.cs, Circle.cs, CollideObj.cs to your project. Yeah, thats all. (need Monogame/XNA)

Example

You can see Game1.cs to see how to use

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();

License

Under MIT license

About

collision with SAT to use with XNA / Monogame

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages