开发者

Collision Detection for arbitrarily sized, positioned and rotated rectangles in XNA

I'm working with xna in C# and in my game I will have a variety of space ships flying all over the place. They will each have an arbitrary rotation, size and position in space and I need a method to determine when they collide. Ideally the method would take two Rectangles, two doubles and two Vector2s for size, rotation and position respectively and return a boolean that indicates whether they have inte开发者_StackOverflowrsected or not.


Have a look at these links:

Collision Detection Overview
Collision Detection Matrices
Putting Collision Detection Into Practice

They show you a way to do pixel-based collision detection, which is more accurate than rectangle-based for irregularly shaped objects.

Update 2021-01-17 (Martin Senne)

Links of XNA have moved to

XNA
XNA - Collision


You could also consider just using an out of the box solution for this and integrating something like the Farseer Physics Engine:
http://farseerphysics.codeplex.com/


These rectangles you describe are called OBB (Oriented Bounding Boxes)

The way to do collisions between them is using the 'Separating axis theorem'

A really nice page describing it in detail with lots of pictures can be found here

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜