여기 내 게임을 계속합니다 (플레이어가 우주선이고 유성을 격추시키는 게임). 나는 현재 총탄을 쏘는 중입니다. 총알이 부딪히면 유성을 제거하려고합니다. 그래서 여기에 내가 한 일이 있습니다. 거의 다 왔지만 코딩에 오류가 있음을 발견했습니다. 내 게임에서는지도의 오른쪽 바깥쪽에 유성이 생기고 왼쪽으로 이동하여 요점을 쏴 버리는 것이지만 유성우를 옳은 순서로 쏘지 만 그렇지 않으면 효과가 있습니다. 제가 그림으로 설명해 드리겠습니다. 내가 두 번째 유성을 촬영한다면 XNA 2D Bulletcollision (목록이있는 목록)
, 숫자 1로 표시된 유성 처음
//spawns the enemies.
public void LoadEnemies()
{
int randY = random.Next(100, 500);
if (spawn > 1)
{
spawn = 0;
if (enemies.Count() < 4)
enemies.Add(new Enemies(Content.Load<Texture2D>("meteor"), new Vector2(1110, randY)));
}
//Here's where the error lies because of the bulletcolliding (I think)
for (int i = 0; i < enemies.Count; i++)
{
if (!enemies[i].isVisible || bulletColliding)
{
bulletColliding = false;
enemies.RemoveAt(i);
i--;
}
}
}
충돌 방법을 파괴 얻을 것입니다.
public void bulletCollision(GameTime gameTime)
{
foreach (var x in bullets)
{
foreach (var y in enemies)
{
enemy_rect = new Rectangle((int)y.position.X, (int)y.position.Y, 10, 10);
bullet_rect = new Rectangle((int)x.position.X, (int)x.position.Y, 10, 10);
if (bullet_rect.Intersects(enemy_rect))
{
bulletColliding = true;
}
}
}
}
기본적으로, 나는 타격을 입는 특정 유성을 제거하는 방법에 대해 우둔합니다. 나는 당신의 도움이 필요합니다. 나는 내가 얻는 모든 도움을 Appreaciate.
도움을 주셔서 감사합니다. 나는 스스로 해결할 수는 없지만, 이와 같은 것으로 상상하고있었습니다. 내가 실패하면 더 많은 정보를 가지고 돌아올거야. – user1775668