public static void MainWeaponCollision(Canvas canvas) { for (int i = 0; i < lstMainWeaponCollider.Count; i++) { for (int j = 0; j < SpawnEnemy.lstEnemyData.Count; j++) { if (!SpawnEnemy.lstEnemyData[j].isDamage) { Vector p1 = new Vector(lstMainWeaponCollider[i].X, lstMainWeaponCollider[i].Y); Vector size1 = new Vector(32, 32); Vector p2 = new Vector(SpawnEnemy.lstEnemyData[j].position.X, SpawnEnemy.lstEnemyData[j].position.Y); Vector size2 = new Vector(SpawnEnemy.lstEnemyData[j].size.X, SpawnEnemy.lstEnemyData[j].size.Y); if (CollisionCheck.Collision(p1, p2, size1, size2) && SpawnEnemy.lstEnemyData[j].state != EnemyState.Death) { SpawnEnemy.lstEnemyData[j].isDamage = true; SpawnEnemy.lstEnemyData[j].totalInvincibleTime = 0; SpawnEnemy.lstEnemyData[j].coefficient = 0; SpawnEnemy.lstEnemyData[j].totalDistance = new Vector(0, 0); SpawnEnemy.lstEnemyData[j].bps = new Vector(0, 0); SpawnEnemy.lstEnemyData[j].targetDistance = new Vector(32, 32); SpawnEnemy.lstEnemyData[j].isKnockBack = true; if (!Sound.seStop) { Sound.SoundEffectSelector(SeName.Shock); Sound.SoundEffectPlayer(SeName.Shock); Sound.seStop = true; } SpawnEnemy.lstEnemyData[j].life -= 1; if (SpawnEnemy.lstEnemyData[j].life <= 0) { SpawnEnemy.lstEnemyData[j].isWaiting = false; SpawnEnemy.lstEnemyData[j].state = EnemyState.Death; SpawnEnemy.EnemyDeathItemDrop(canvas, SpawnEnemy.lstEnemyData[j].position); } } } } } }
public static void CollisionSubWeapon(Canvas canvas) { for (int i = 0; i < SpawnEnemy.lstEnemyData.Count; i++) { if (ImageData.imgSubWeapon.Count >= 1) { Vector p1 = new Vector(Canvas.GetLeft(ImageData.imgSubWeapon[0]), Canvas.GetTop(ImageData.imgSubWeapon[0])); Vector size1 = new Vector(32, 32); Vector p2 = new Vector(Canvas.GetLeft(SpawnEnemy.lstEnemyData[i].imgEnemy), Canvas.GetTop(SpawnEnemy.lstEnemyData[i].imgEnemy)); Vector size2 = new Vector(SpawnEnemy.lstEnemyData[i].size.X, SpawnEnemy.lstEnemyData[i].size.Y); if (CollisionCheck.Collision(p1, p2, size1, size2) && SpawnEnemy.lstEnemyData[i].state != EnemyState.Death) { canvas.Children.Remove(ImageData.imgSubWeapon[0]); ImageData.imgSubWeapon.Remove(ImageData.imgSubWeapon[0]); if (!Sound.seStop) { Sound.SoundEffectSelector(SeName.Fog); Sound.SoundEffectPlayer(SeName.Fog); Sound.seStop = true; } SpawnEnemy.lstEnemyData[i].life -= 1; if (SpawnEnemy.lstEnemyData[i].life <= 0) { SpawnEnemy.lstEnemyData[i].isWaiting = false; SpawnEnemy.lstEnemyData[i].state = EnemyState.Death; SpawnEnemy.EnemyDeathItemDrop(canvas, SpawnEnemy.lstEnemyData[i].position); } break; } } } }