Exemple #1
0
        public void Init(ScreenSide side)
        {
            ScreenSide = side;

            bool isWide;
            bool isNegativeOffset;

            Vector2 size;
            Vector3 position;

            switch (side)
            {
            case ScreenSide.Top:
                isWide           = true;
                isNegativeOffset = false;
                break;

            case ScreenSide.Right:
                isWide           = false;
                isNegativeOffset = false;
                break;

            case ScreenSide.Bottom:
                isWide           = true;
                isNegativeOffset = true;
                break;

            case ScreenSide.Left:
                isWide           = false;
                isNegativeOffset = true;
                break;

            default:
                throw ExceptionUtil.ArgumentException(() => side);
            }

            float negativePositionMultiplier = isNegativeOffset ? -1f : 1f;
            float positionOffset             = ColliderWidth * -0.5f;

            if (isWide)
            {
                size = new Vector2(SpaceUtil.WorldMapSize.x, ColliderWidth);

                float y = (SpaceUtil.WorldMap.Top.y - positionOffset) * negativePositionMultiplier;
                position = new Vector3(0, y);
            }
            else
            {
                size = new Vector2(ColliderWidth, SpaceUtil.WorldMapSize.y);

                float x = (SpaceUtil.WorldMap.Right.x - positionOffset) * negativePositionMultiplier;
                position = new Vector3(x, 0);
            }

            var collider = GetComponent <BoxCollider2D>();

            collider.size = size;
            collider.transform.position = position;
        }
Exemple #2
0
        private void BounceOffScreenEdge(ScreenSide screenSide)
        {
            switch (screenSide)
            {
            case ScreenSide.Left:
            case ScreenSide.Right:
                ReverseVelocityX();
                break;

            case ScreenSide.Top:
            case ScreenSide.Bottom:
                //ReverseVelocityY();
                break;

            default:
                throw ExceptionUtil.ArgumentException(() => screenSide);
            }
        }
Exemple #3
0
        public static float GetTimeScaleModifier(TimeScaleType type)
        {
            float ret;

            switch (type)
            {
            case TimeScaleType.Player: ret = Player; break;

            case TimeScaleType.PlayerBullet: ret = PlayerBullet; break;

            case TimeScaleType.Enemy: ret = Enemy; break;

            case TimeScaleType.EnemyBullet: ret = EnemyBullet; break;

            case TimeScaleType.UIElement: ret = UIElement; break;

            case TimeScaleType.Default: ret = 1f; break;

            default: throw ExceptionUtil.ArgumentException(() => type);
            }
            return(ret);
        }