in my enemy class I create my rectangle like this.
enemyPos = new Vector2(spritePosX, spritetPosY);
Rectangle enemyRect = new Rectangle((int)enemyPos.X - enemySprite.Width / 2,
(int)enemyPos.Y - enemySprite.Height / 2, enemySprite.Width, enemySprite.Height);
they are updated like this.
enemyPos += heading * currentEnemySpeed;
enemyRect.X = (int)enemyPos.X - enemySprite.Width / 2;
enemyRect.Y = (int)enemyPos.Y - enemySprite.Height / 2;
and drawn
spriteBatch.Draw(enemySprite, enemyPos, null,
Color.FromNonPremultiplied(255, spriteVarColor, 255, opacityVal),
enemyOrientation, enemyRotOrigin, scale, SpriteEffects.None, 0f);
in the projectile class
spritePos = new Vector2(ProjectilePosX, ProjectilePosY);
Rectangle projectileRect = new Rectangle((int)spritePos.X -
projectileSprite.Width / 2, (int)spritePos.Y - projectileSprite.Height / 2,
projectileSprite.Width, projectileSprite.Height);
and updated
spritePos = new Vector2(ProjectilePosX, ProjectilePosY);
projectileRect.X = (int)spritePos.X - projectileSprite.Width / 2;
projectileRect.Y = (int)spritePos.Y - projectileSprite.Height / 2;
ans drawn
spriteBatch.Draw(projectileSprite, spritePos, null,
Color.FromNonPremultiplied(255, 255, 255, 255), spriteHeading,
spriteRotOrigin, 1.0f, SpriteEffects.None, 0f);
then in the main game class i do this
foreach (Projectile projectile in projectiles)
{
foreach (Enemy enemy in enemies)
{
if (projectile.ColRect.Intersects(enemy.ColRect))
{
projectile.Active = false;
Exit();
Constants.score += 1;
There are no collision detections. Can anyone tell me why? Is it because I have the rectangles as null in the draw method? Please help.