コード例 #1
0
ファイル: Enemy.cs プロジェクト: JohnHawkeye/git_zitulmyth
        public static bool EnemyTriggerCollisionCheck(int index)
        {
            Vector p1    = new Vector(PlayerStatus.playerPos.X, PlayerStatus.playerPos.Y);
            Vector size1 = new Vector(PlayerStatus.playerSize.X, PlayerStatus.playerSize.Y);

            Vector p2 = lstEnemyData[index].triggerAreaPos;

            Vector size2 = new Vector(lstEnemyData[index].triggerAreaOffset.X + lstEnemyData[index].triggerAreaSize.X * 32, lstEnemyData[index].triggerAreaSize.Y * 32);

            if (!lstEnemyData[index].direction)
            {
                if (CollisionCheck.Collision(p1, p2, size1, size2))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                size2.X += lstEnemyData[index].size.X;

                if (CollisionCheck.Collision(p1, p2, size1, size2))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
コード例 #2
0
ファイル: Player.cs プロジェクト: JohnHawkeye/git_zitulmyth
        public static void PlayerItemGetting(Canvas canvas)
        {
            if (!flagDamaged)
            {
                for (int i = 0; i < Item.lstItemData.Count; i++)
                {
                    Vector p1    = new Vector(Canvas.GetLeft(ImageData.imgPlayer), Canvas.GetTop(ImageData.imgPlayer));
                    Vector size1 = new Vector(playerSize.X, playerSize.Y);

                    Vector p2    = new Vector(Canvas.GetLeft(Item.lstItemData[i].imgItem), Canvas.GetTop(Item.lstItemData[i].imgItem));
                    Vector size2 = new Vector(Item.lstItemData[i].size.X, Item.lstItemData[i].size.Y);

                    if (CollisionCheck.Collision(p1, p2, size1, size2))
                    {
                        if (!Sound.seStop)
                        {
                            Sound.SoundEffectSelector(SeName.Item_Get);
                            Sound.SoundEffectPlayer(SeName.Item_Get);

                            Sound.seStop = true;
                        }

                        ItemGetSelector(i);

                        canvas.Children.Remove(Item.lstItemData[i].imgItem);
                        Item.lstItemData.RemoveAt(i);

                        break;
                    }
                }
            }
        }
コード例 #3
0
ファイル: Player.cs プロジェクト: JohnHawkeye/git_zitulmyth
        public static void CollisionPtoE()
        {
            if (!flagDamaged)
            {
                for (int i = 0; i < SpawnEnemy.lstEnemyData.Count; i++)
                {
                    Vector p1    = new Vector(Canvas.GetLeft(ImageData.imgPlayer), Canvas.GetTop(ImageData.imgPlayer));
                    Vector size1 = new Vector(playerSize.X, playerSize.Y);

                    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))
                    {
                        if (!Sound.seStop)
                        {
                            Sound.SoundEffectSelector(SeName.Player_Damage);
                            Sound.SoundEffectPlayer(SeName.Player_Damage);

                            Sound.seStop = true;
                        }

                        if (!isKnockBack)
                        {
                            //playerPos = new Vector(Canvas.GetLeft(ImageData.imgPlayer), Canvas.GetTop(ImageData.imgPlayer));
                            boundDirectionX = SystemOperator.FaceEachOther(playerPos.X, SpawnEnemy.lstEnemyData[i].position.X);

                            knockBackTotalDis  = new Vector(0, 0);
                            knockBackBps       = new Vector(0, 0);
                            coefficient        = 0;
                            boundDirectionY    = false;
                            knockBackTargetDis = new Vector(64, 64);

                            isKnockBack = true;
                        }



                        if (playerNowHp > 0)
                        {
                            playerNowHp -= SpawnEnemy.lstEnemyData[i].ofepower;
                            ImageData.imgPlayer.Opacity = 0.6;
                        }

                        flagDamaged           = true;
                        damageInvincibleTotal = 0;
                        Console.WriteLine("Break");
                        break;
                    }
                }
            }
        }
コード例 #4
0
ファイル: Weapon.cs プロジェクト: JohnHawkeye/git_zitulmyth
        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);
                            }
                        }
                    }
                }
            }
        }
コード例 #5
0
ファイル: Weapon.cs プロジェクト: JohnHawkeye/git_zitulmyth
        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;
                    }
                }
            }
        }
コード例 #6
0
        public static void PlayerOverlappedWithObject()
        {
            for (int i = 0; i < lstObject.Count; i++)
            {
                Vector p1    = PlayerStatus.playerPos;
                Vector size1 = PlayerStatus.playerSize;

                Vector p2    = lstObject[i].position;
                Vector size2 = lstObject[i].size;

                if (CollisionCheck.Collision(p1, p2, size1, size2))
                {
                    if (lstObject[i].objectAttribute == ObjectAttribute.Ladder)
                    {
                        PlayerStatus.isLadder = true;
                    }
                    else
                    {
                        PlayerStatus.isLadder = false;
                    }
                }
            }
        }