Collision between 2 objects of the same class
Posted
by
user1826033
on Stack Overflow
See other posts from Stack Overflow
or by user1826033
Published on 2012-11-24T14:36:21Z
Indexed on
2012/11/24
23:04 UTC
Read the original article
Hit count: 158
Okay, so I have an enemy class(With rotation, position, texture and so on). I spawn a few enemies on the screen, they move around, but they overlap each other. So I tried to do a collision check between two enemies of the same class. But no matter what method I try, it isn't quite working. The best thing I tried was:
foreach (Enemy enemy1 in enemies)
{
enemy1Pos = new Vector2(enemy1.position.X, enemy1.position.Y)
foreach (Enemy enemy2 in enemies)
{
enemy2Pos = new Vector2(enemy2.position.X, enemy2.position.Y)
if (Vector2.Distance(enemy2Pos, enemy1Pos) < 200)
{
enemy1Pos += new Vector2((float)(enemy1.Speed * Math.Cos(enemy1.Rotation)), (float)(enemy1.Speed * Math.Sin(enemy1.Rotation)));
}
}
}
This is not to exact code, so it might have some mistakes in it. Anyway when i implemented this solution, the enemies were not overlapping so everything was fine on that part. But, they were always moving to the right side of the screen.
I've also looked up flocking etc, but I would like to know, how can I detect collision between 2 objects of the same class?
© Stack Overflow or respective owner