Example #1
0
        public override void LoadContent()
        {
            base.LoadContent();

            Texture2D spriteSheet = Game.Content.Load <Texture2D>(@"PlayerOneSpriteSheet");
            int       spriteSize  = 20;

            Initialize(spriteSheet, new Rectangle(0, 0, spriteSize, spriteSize), Vector2.Zero, Scale, false);  //Standing Right 0
            AddFrame(new Rectangle(spriteSize + 1, 0, spriteSize, spriteSize));                                //Standing Left 1
            AddFrame(new Rectangle(0, spriteSize * 2 + 2, spriteSize, spriteSize));                            //Breaking Right 2
            AddFrame(new Rectangle(spriteSize + 1, spriteSize * 2 + 2, spriteSize, spriteSize));               //Breaking Left 3
            m_RunRight.Initialize(spriteSheet, new Rectangle(0, spriteSize * 3 + 3, spriteSize, spriteSize),
                                  Vector2.Zero, Scale, true);                                                  //Running Right 0
            m_RunRight.AddFrame(new Rectangle(spriteSize + 1, spriteSize * 3 + 3, spriteSize, spriteSize));    //Running Right 1
            m_RunLeft.Initialize(spriteSheet, new Rectangle(spriteSize * 2 + 2, spriteSize * 3 + 3, spriteSize, spriteSize),
                                 Vector2.Zero, Scale, true);                                                   //Running Left 0
            m_RunLeft.AddFrame(new Rectangle(spriteSize * 3 + 3, spriteSize * 3 + 3, spriteSize, spriteSize)); //Running Left 1
            m_FlyingRight.Initialize(spriteSheet, new Rectangle(0, spriteSize + 1, spriteSize, spriteSize), Vector2.Zero,
                                     Scale, true);
            m_FlyingRight.AddFrame(new Rectangle(spriteSize + 1, spriteSize + 1, spriteSize, spriteSize));
            m_FlyingRight.AddFrame(new Rectangle(spriteSize * 2 + 2, spriteSize + 1, spriteSize, spriteSize));
            m_FlyingLeft.Initialize(spriteSheet, new Rectangle(spriteSize * 3 + 3, spriteSize + 1, spriteSize, spriteSize),
                                    Vector2.Zero, Scale, true);
            m_FlyingLeft.AddFrame(new Rectangle(spriteSize * 4 + 4, spriteSize + 1, spriteSize, spriteSize));
            m_FlyingLeft.AddFrame(new Rectangle(spriteSize * 5 + 5, spriteSize + 1, spriteSize, spriteSize));
            m_FlyWOPlayerRight.Initialize(spriteSheet, new Rectangle(0, spriteSize * 4 + 4, spriteSize, spriteSize),
                                          Vector2.Zero, Scale, false);
            m_FlyWOPlayerRight.AddFrame(new Rectangle(spriteSize + 1, spriteSize * 4 + 4, spriteSize, spriteSize));
            m_FlyWOPlayerRight.AddFrame(new Rectangle(spriteSize * 2 + 2, spriteSize * 4 + 4, spriteSize, spriteSize));
            m_FlyWOPlayerLeft.Initialize(spriteSheet, new Rectangle(spriteSize * 3 + 3, spriteSize * 4 + 4, spriteSize, spriteSize),
                                         Vector2.Zero, Scale, false);
            m_FlyWOPlayerLeft.AddFrame(new Rectangle(spriteSize * 4 + 4, spriteSize * 4 + 4, spriteSize, spriteSize));
            m_FlyWOPlayerLeft.AddFrame(new Rectangle(spriteSize * 5 + 5, spriteSize * 4 + 4, spriteSize, spriteSize));
        }
    public static void Initialize(
        Texture2D texture, Rectangle baseInitialFrame, int baseFrameCount,
        Rectangle turretInitialFrame, int turretFrameCount, Vector2 worldLocation)
    {
        int frameWidth  = baseInitialFrame.Width;
        int frameHeight = baseInitialFrame.Height;

        BaseSprite = new Sprite(
            worldLocation, texture, baseInitialFrame, Vector2.Zero);
        BaseSprite.BoundingXPadding   = 4;
        BaseSprite.BoundingYPadding   = 4;
        BaseSprite.AnimateWhenStopped = false;

        for (int x = 1; x < baseFrameCount; x++)
        {
            BaseSprite.AddFrame(new Rectangle(baseInitialFrame.X + (frameHeight * x),
                                              baseInitialFrame.Y, frameWidth, frameHeight));
        }

        TurretSprite = new Sprite(
            worldLocation, texture, turretInitialFrame, Vector2.Zero);
        TurretSprite.Animate = false;

        for (int x = 1; x < turretFrameCount; x++)
        {
            BaseSprite.AddFrame(new Rectangle(turretInitialFrame.X + (frameHeight * x),
                                              turretInitialFrame.Y, frameWidth, frameHeight));
        }
    }
    public void DebugDrawSpline()
    {
        _WayPoints.DebugDrawSpline(_OffsetX,_OffsetZ);

        if(_Sprite == null)
        {
            _Sprite = Sprite.Spawn(1);
            _Sprite.AddFrame("Enemy1F1.png");
            _Sprite.AddFrame("Enemy1F2.png");
            _Sprite.AddFrame("Enemy1F3.png");
            _Sprite.AddFrame("Enemy1F4.png");
            _Sprite.AddFrame("Enemy1F3.png");
            _Sprite.AddFrame("Enemy1F2.png");
            _Sprite._Width = 1.2f;
            _Sprite._Height = 1.2f;
            _Sprite._Animate = true;
            _Sprite._Y = 0.1f;
        }

        _DebugT += _Speed * Time.deltaTime;

        if(_DebugT >= 1.0f)
        {
            _DebugT = 0.0f;

        }

        Vector3 vPos = _WayPoints.Spline(_DebugT);
        _Sprite._X = vPos.x;
        _Sprite._Z = vPos.z;

        // Draw a circle to represent the speed
        Vector3 vA = Vector3.zero;
        Vector3 vB = Vector3.zero;
        Vector3 vColour = new Vector3(1.0f,1.0f,0.0f);

        float fAngle = 0.0f;
        float fStep = 360.0f / 30.0f;

        vA.x = (Mathf.Sin(fAngle * Mathf.Deg2Rad) * (_Speed * 2.0f)) + _OffsetX;
        vA.z = (Mathf.Cos(fAngle * Mathf.Deg2Rad) * (_Speed * 2.0f)) + _OffsetZ;
        fAngle += fStep;

        for(int i = 0; i < 30; ++i)
        {
            vB.x = (Mathf.Sin(fAngle * Mathf.Deg2Rad) * (_Speed * 2.0f)) + _OffsetX;
            vB.z = (Mathf.Cos(fAngle * Mathf.Deg2Rad) * (_Speed * 2.0f)) + _OffsetZ;

            Director._Instance.AddLine(vColour,vA,vB);
            fAngle += fStep;
            vA = vB;
        }
    }
Example #4
0
        private void Initialize()
        {
            //PixelParticle
            pe               = new PixelEmitter(new Vector2f(400f, 550f), Color.Blue, 2000);
            pe.EmitLife      = 15f;
            pe.EmitFrequency = 0.01f;
            pe.PixelSize     = new Size(3, 3);

            //SurfaceParticle
            sm = new SurfaceEmitter(new Vector2f(150f, 550f), 4.2f, 50, 0);
            Surface surf = new Surface(@"Images/smoke2.png");

            sm.AddSurface(surf);
            sm.EmitFrequency    = 0.1f;
            sm.EmitAlpha        = 1d;
            sm.EmitAcceleration = new Vector2f(0, -20);
            sm.EmitVelocity     = new Vector2f(0, -10);

            //SpriteParticle
            Surface surf2  = new Surface(@"Images/smoke.png");
            Sprite  sprite = new Sprite(100, 100);

            sprite.AddFrame(surf);
            sprite.AddFrame(surf2);
            sprite.TimePerFrame  = 3d;
            sprite.AnimationType = SpriteAnimType.Looping;
            se = new SpriteEmitter(new Vector2f(600f, 550f), 4.2f, 100, 0);
            se.AddSprite(sprite);
            se.EmitFrequency    = 0.05f;
            se.EmitAlpha        = 1d;
            se.EmitAcceleration = new Vector2f(0, -20);
            se.EmitVelocity     = new Vector2f(0, -10);

            //Manipulators
            gm = new GravityManipulator(-20 * Vector2f.UnitY);
            gm.SubscribeToEmitter(sm);
            gm.SubscribeToEmitter(se);

            gm2 = new GravityManipulator(Vector2f.Zero);
            //gm2.SubscribeToEmitter(pe);
            gm2.SubscribeToEmitter(sm);
            gm2.SubscribeToEmitter(se);

            fom = new FadeOutManipulator(2.5f, 0.6f);
            fom.SubscribeToEmitter(pe);

            fom2 = new FadeOutManipulator(4f, 0.3f);
            fom2.SubscribeToEmitter(sm);
            fom2.SubscribeToEmitter(se);

            gpm = new GravityPointManipulator(new Vector2f(400f, 350f), -1f);
            gpm.SubscribeToEmitter(pe);
        }
Example #5
0
 public Tile(int id, Sprite sprite)
 {
     Id = id;
     Sprite = sprite;
     if (Sprite.Count == 0) Sprite.AddFrame();
     Properties = TileProperties.Default;
 }
    private static void SpawnPowerUp(int x, int y, WeaponType type)
    {
        if (PowerUps.Count >= maxActivePowerUps)
        {
            return;
        }

        Rectangle destination = TileMap.SquareWorldRectangle(new Vector2(x, y));

        foreach (Sprite powerup in PowerUps)
        {
            if (powerup.WorldRectangle == destination)
            {
                return;
            }
        }

        if (PathFinder.FindPath(new Vector2(x, y),
                                Player.PathingNodePosition) != null)
        {
            Sprite newPowerup = new Sprite(
                new Vector2(destination.X, destination.Y), Texture,
                new Rectangle(64, 128, 32, 32), Vector2.Zero);
            newPowerup.Animate         = false;
            newPowerup.CollisionRadius = 24;
            newPowerup.AddFrame(new Rectangle(96, 128, 32, 32));
            if (type == WeaponType.Rocket)
            {
                newPowerup.Frame = 1;
            }

            PowerUps.Add(newPowerup);
            timeSinceLastPowerUp = 0f;
        }
    }
Example #7
0
 public static void AddFrames(Sprite sprite, string prefix, int count)
 {
     for (int i = 1; i <= count; i++)
     {
         string key = prefix + i.ToString().PadLeft(2, '0');
         sprite.AddFrame(SpriteCreators.spriteSourceRectangles[key]);
     }
 }
Example #8
0
        public void load(IContentProvider content)
        {
            leftborder  = content.Load <Texture2D>("imgs/leftborder");
            rightborder = content.Load <Texture2D>("imgs/rightborder");
            topborder   = content.Load <Texture2D>("imgs/topborder");
            newpaddle   = content.Load <Texture2D>("imgs/paddle");

            var deserializer = new DeserializerBuilder()
                               .WithNamingConvention(new HyphenatedNamingConvention())
                               .WithTypeConvertersForBasicStructures()
                               .Build();

            var imageData = deserializer.Deserialize <SpritesFile>(
                content.ReadAllText("sprites.yaml"));

            foreach (var field in GetType().GetTypeInfo().DeclaredFields)
            {
                string yamlKey = field.Name.ToLowerInvariant();

                if (field.FieldType == typeof(Texture2D))
                {
                    if (imageData.Images.TryGetValue(yamlKey, out var data))
                    {
                        field.SetValue(this, content.Load <Texture2D>($"imgs/{data.Image}"));
                    }
                    else
                    {
                        Log($"No image specified for {field.Name}");
                    }
                }
                else if (field.FieldType == typeof(Sprite))
                {
                    if (imageData.Sprites.TryGetValue(yamlKey, out var data))
                    {
                        var sprite = new Sprite();

                        sprite.AnimationType = data.Animation?.Type ?? sprite.AnimationType;
                        sprite.FrameTime     = TimeSpan.FromMilliseconds(data.Animation?.FrameTime ?? sprite.FrameTime.TotalMilliseconds);

                        foreach (var frameData in data.Frames)
                        {
                            var frame = new SpriteFrame(
                                content.Load <Texture2D>($"imgs/{frameData.Image}"),
                                frameData.SourceRect);

                            sprite.AddFrame(frame);
                        }

                        field.SetValue(this, sprite);
                    }
                    else
                    {
                        Log($"No sprite specified for {field.Name}");
                    }
                }
            }
        }
Example #9
0
        private static Sprite GetEmptySprite(int frames)
        {
            var sprite = new Sprite(1, 1);

            for (int i = 0; i < frames; i++)
            {
                sprite.AddFrame(0, 0, 1);
            }

            return(sprite);
        }
Example #10
0
        private Sprite CreateEmptySprite()
        {
            var size = ModeOf(_currentEntity.SpriteComponent.Sprites
                              .Select(s => new Common.Geometry.Point(s.Value.Width, s.Value.Height)));

            var sprite = new Sprite(size.X, size.Y);

            sprite.Name = GetNewSpriteName();

            sprite.SheetPath = _currentEntity.SpriteComponent.SheetPath;
            sprite.AddFrame();
            return(sprite);
        }
    public static void AddComputerTerminal()
    {
        int     startX       = rand.Next(2, TileMap.MapWidth - 2);
        int     startY       = rand.Next(0, TileMap.MapHeight - 2);
        Vector2 tileLocation = new Vector2(startX, startY);

        if ((TerminalInSquare(tileLocation) != null) ||
            (TileMap.IsWallTile(tileLocation)))
        {
            return;
        }

        if (Vector2.Distance(TileMap.GetSquareCenter(startX, startY),
                             Player.BaseSprite.WorldCenter) < minDistanceFromPlayer)
        {
            return;
        }

        List <Vector2> path = PathFinder.FindPath(new Vector2(startX, startY),
                                                  TileMap.GetSquareAtPixel(Player.BaseSprite.WorldCenter));

        if (path != null)
        {
            Rectangle squareRect   = TileMap.SquareWorldRectangle(startX, startY);
            Sprite    activeSprite = new Sprite(
                new Vector2(squareRect.X, squareRect.Y),
                texture, initialActiveFrame, Vector2.Zero);

            for (int x = 1; x < 3; x++)
            {
                activeSprite.AddFrame(new Rectangle(
                                          initialActiveFrame.X + (x * initialActiveFrame.Width),
                                          initialActiveFrame.Y, initialActiveFrame.Width,
                                          initialActiveFrame.Height));
            }

            activeSprite.CollisionRadius = collisionRadius;
            Sprite disabledSprite = new Sprite(
                new Vector2(squareRect.X, squareRect.Y), texture,
                initialDisabledFrame, Vector2.Zero);
            ComputerTerminal terminal = new ComputerTerminal(
                activeSprite, disabledSprite, new Vector2(startX, startY));

            float timerOffset = rand.Next(1, 100);
            terminal.LastSpawnCounter = timerOffset / 100f;

            computerTerminals.Add(terminal);
            activeCount++;
        }
    }
    public Enemy(Texture2D texture, Vector2 location,
                 Rectangle initialFrame, int frameCount)
    {
        EnemySprite = new Sprite(location, texture, initialFrame, Vector2.Zero);

        for (int x = 1; x < frameCount; x++)
        {
            EnemySprite.AddFrame(new Rectangle(
                                     initialFrame.X + (initialFrame.Width * x), initialFrame.Y,
                                     initialFrame.Width, initialFrame.Height));
        }

        previousLocation            = location;
        currentWaypoint             = location;
        EnemySprite.CollisionRadius = enemyRadius;
    }
    public void AddAsteroid()
    {
        Sprite newAsteroid = new Sprite(new Vector2(-500, -500),
                                        texture, initialFrame, Vector2.Zero);

        for (int x = 1; x < asteroidFrames; x++)
        {
            newAsteroid.AddFrame(new Rectangle(
                                     initialFrame.X + (initialFrame.Width * x),
                                     initialFrame.Y, initialFrame.Width, initialFrame.Height));
        }

        newAsteroid.Rotation        = MathHelper.ToRadians(rand.Next(0, 360));
        newAsteroid.CollisionRadius = 15;
        Asteroids.Add(newAsteroid);
    }
    public PlayerManager(Texture2D texture, Rectangle initialFrame,
                         int frameCount, Rectangle screenBounds)
    {
        playerSprite = new Sprite(new Vector2(500, 500),
                                  texture, initialFrame, Vector2.Zero);

        PlayerShotManager = new ShotManager(texture,
                                            new Rectangle(0, 300, 5, 5), 4, 2, 250.0f, screenBounds);

        playerAreaLimit = new Rectangle(0, screenBounds.Height / 2,
                                        screenBounds.Width, screenBounds.Height / 2);

        for (int x = 1; x < frameCount; x++)
        {
            playerSprite.AddFrame(new Rectangle(initialFrame.X + (initialFrame.Width * x),
                                                initialFrame.Y, initialFrame.Width, initialFrame.Height));
        }

        playerSprite.CollisionRadius = playerRadius;
    }
Example #15
0
    // Update is called once per frame
    void Update()
    {
        if(_Sprite == null)
        {
            _Sprite = Sprite.Spawn(1);
            _Sprite._Width = _Transform.localScale.x;
            _Sprite._Height = _Transform.localScale.y;
            _Sprite._Animate = false;
            _Sprite.AddFrame(_Name);
            _Sprite._X = 1000.0f;
            _Sprite._Z = 1000.0f;
            _Sprite._Y = 0.1f;

        }

        _Sprite._X = _Transform.position.x;
        _Sprite._Z = _Transform.position.z;
        _Sprite._Width = _Transform.localScale.x;
        _Sprite._Height = _Transform.localScale.y;
    }
Example #16
0
        public override void LoadContent()
        {
            base.LoadContent();

            Texture2D spriteSheet = Game.Content.Load <Texture2D>(@"EnemyOneSpriteSheet");
            int       spriteSize  = 20;

            Initialize(spriteSheet, new Rectangle(0, spriteSize * 3 + 3, spriteSize, spriteSize), Vector2.Zero, Scale, false); //Flying Left One
            m_FlyingRight.Initialize(spriteSheet, new Rectangle(0, 0, spriteSize, spriteSize), Vector2.Zero, Scale, false);
            m_FlyingRight.AddFrame(new Rectangle(spriteSize + 1, 0, spriteSize, spriteSize));
            m_FlyingLeft.Initialize(spriteSheet, new Rectangle(spriteSize * 2 + 2, 0, spriteSize, spriteSize), Vector2.Zero, Scale, false);
            m_FlyingLeft.AddFrame(new Rectangle(spriteSize * 3 + 3, 0, spriteSize, spriteSize));
            m_WalkingRight.Initialize(spriteSheet, new Rectangle(0, spriteSize + 1, spriteSize, spriteSize), Vector2.Zero, Scale, false);
            m_WalkingRight.AddFrame(new Rectangle(spriteSize + 1, spriteSize + 1, spriteSize, spriteSize));
            m_WalkingLeft.Initialize(spriteSheet, new Rectangle(spriteSize * 2 + 2, spriteSize + 1, spriteSize, spriteSize),
                                     Vector2.Zero, Scale, false);
            m_WalkingLeft.AddFrame(new Rectangle(spriteSize * 3 + 3, spriteSize + 1, spriteSize, spriteSize));
            m_NoRiderRight.Initialize(spriteSheet, new Rectangle(0, spriteSize * 2 + 2, spriteSize, spriteSize), Vector2.Zero, Scale, false);
            m_NoRiderRight.AddFrame(new Rectangle(spriteSize + 1, spriteSize * 2 + 2, spriteSize, spriteSize));
            m_NoRiderLeft.Initialize(spriteSheet, new Rectangle(spriteSize * 2 + 2, spriteSize * 2 + 2, spriteSize, spriteSize),
                                     Vector2.Zero, Scale, false);
            m_NoRiderLeft.AddFrame(new Rectangle(spriteSize * 3 + 3, spriteSize * 2 + 2, spriteSize, spriteSize));
        }
Example #17
0
    public void FireShot(Vector2 location, Vector2 velocity, bool playerFired)
    {
        Sprite shot = new Sprite(location, Texture, InitialFrame, velocity);

        shot.Velocity *= shotSpeed;

        for (int x = 1; x < FrameCount; x++)
        {
            shot.AddFrame(new Rectangle(InitialFrame.X + (InitialFrame.Width * x),
                                        InitialFrame.Y, InitialFrame.Width, InitialFrame.Height));
        }

        shot.CollisionRadius = CollisionRadius;
        Shots.Add(shot);

        if (playerFired)
        {
            SoundManager.PlayPlayerShot();
        }
        else
        {
            SoundManager.PlayEnemyShot();
        }
    }
Example #18
0
    void Update()
    {
        _Delay -= Time.deltaTime;

        if(_Delay > 0.0f)
        {
            return;
        }

        _Delay = 0.0f;

        if(_Sprite == null)
        {
            _Sprite = Sprite.Spawn(1);
            _Sprite._Width = _SA.x;
            _Sprite._Height = _SA.y;
            _Sprite._Animate = false;
            _Sprite.AddFrame(_Image);
            _Sprite._X = 1000.0f;
            _Sprite._Z = 1000.0f;
            _Sprite._Y = _Depth;
        }

        switch(_Ease)
        {
            case eIMAGEEase.IMAGE_EASE_IN:
                _Time += Time.deltaTime;

                if(_Time > 1.0f)
                {
                    _Time = 1.0f;
                    _C = _B;
                    _Ease = eIMAGEEase.IMAGE_EASE_NONE;

                    if(_FireEventOnFinishTransitionIn)
                    {
                        Director._Instance.FireEvent(_Event);
                    }
                }

                float fRealTime = 1.0f - _Time;
                _C = _B + (_A - _B) * (fRealTime * fRealTime);
                _SC = _SB + (_SA - _SB) * (fRealTime * fRealTime);
                _Alpha = _BAlpha + (_AAlpha - _BAlpha) * (fRealTime * fRealTime);
                break;

            case eIMAGEEase.IMAGE_EASE_OUT:

                _Time -= Time.deltaTime;

                if(_Time < 0.0f)
                {
                    _Time = 0.0f;
                    _C = _A;
                    _Ease = eIMAGEEase.IMAGE_EASE_KILL;
                }

                _C = _A + (_B - _A) * (_Time * _Time);
                _SC = _SA + (_SB - _SA) * (_Time * _Time);
                _Alpha = _AAlpha + (_BAlpha - _AAlpha) * (_Time * _Time);
                break;

            case eIMAGEEase.IMAGE_EASE_KILL:
                this.active = false;
                _Sprite._Alive = false;
                Sprite.Kill(_Sprite);
                _Sprite = null;
                break;
        }

        this.transform.position = _C;

        if(_Sprite != null)
        {
            _Sprite._X = _C.x;
            _Sprite._Z = _C.z;
            _Sprite._Width = _SC.x;
            _Sprite._Height = _SC.y;
            _Sprite._Alpha = _Alpha;
        }
    }
Example #19
0
    private void Setup()
    {
        _AddedToDelegates = false;
        _Pause = false;
        _Kill = false;
        _Time = Random.Range(0.0f,100.0f);
        _TimeToFire = 1.0f;

        switch(_Type)
        {
            case eAIType.AITYPE_ENEMY1:
                _Sprite = Sprite.Spawn(1);
                _Sprite.AddFrame("Enemy1F1.png");
                _Sprite.AddFrame("Enemy1F2.png");
                _Sprite.AddFrame("Enemy1F3.png");
                _Sprite.AddFrame("Enemy1F4.png");
                _Sprite.AddFrame("Enemy1F3.png");
                _Sprite.AddFrame("Enemy1F2.png");
                _Sprite._Width = 1.2f;
                _Sprite._Height = 1.2f;
                _Sprite._Animate = true;
                _Sprite._Y = 0.1f;
                _Radius = 0.5f;
                _Speed = 10.0f + Random.Range(0.0f,3.0f);
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 1;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                _TimeToFire = Random.Range(2.0f,3.0f);
                AddToDelegates();
                break;

            case eAIType.AITYPE_BLOCK:
                _Sprite = Sprite.Spawn(1);

                switch(_Block)
                {
                    case 1:
                        _Sprite.AddFrame("Block1.png");
                        break;

                    case 2:
                        _Sprite.AddFrame("Block2.png");
                        break;

                    case 3:
                        _Sprite.AddFrame("Block3.png");
                        break;

                    case 4:
                        _Sprite.AddFrame("Block4.png");
                        break;

                    case 5:
                        _Sprite.AddFrame("Block5.png");
                        break;

                    case 6:
                        _Sprite.AddFrame("Block6.png");
                        break;

                    case 7:
                        _Sprite.AddFrame("Block7.png");
                        break;

                    case 8:
                        _Sprite.AddFrame("Block8.png");
                        break;

                }

                _Sprite._Width = 2.0f;
                _Sprite._Height = 2.0f;
                _Sprite._Animate = false;
                _Sprite._Y = 0.0f;
                _Radius = 0.8f;
                _Speed = 10.0f;
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 1;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                _TimeToFire = Random.Range(2.0f,3.0f);
                AddToDelegates();
                break;

            case eAIType.AITYPE_RDEFENDER:
                _Sprite = Sprite.Spawn(1);
                _Sprite.AddFrame("RDefenderF1.png");
                _Sprite.AddFrame("RDefenderF2.png");
                _Sprite.AddFrame("RDefenderF3.png");
                _Sprite.AddFrame("RDefenderF4.png");
                _Sprite.AddFrame("RDefenderF5.png");
                _Sprite.AddFrame("RDefenderF6.png");
                _Sprite.AddFrame("RDefenderF7.png");
                _Sprite.AddFrame("RDefenderF8.png");
                _Sprite.AddFrame("RDefenderF9.png");
                _Sprite.AddFrame("RDefenderF10.png");
                _Sprite.AddFrame("RDefenderF11.png");
                _Sprite.AddFrame("RDefenderF12.png");
                _Sprite._Width = 2.5f;
                _Sprite._Height = 2.5f;
                _Sprite._Animate = true;
                _Sprite._Y = 0.1f;
                _Radius = 1.0f;
                _Speed = 10.0f + Random.Range(0.0f,5.0f);
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 1;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                _TimeToFire = Random.Range(0.3f,1.0f);
                AddToDelegates();
                break;

            case eAIType.AITYPE_UP_TURRET:
                _Sprite = Sprite.Spawn(1);
                _Sprite.AddFrame("TurretUpF1.png");
                _Sprite.AddFrame("TurretUpF2.png");
                _Sprite.AddFrame("TurretUpF3.png");
                _Sprite.AddFrame("TurretUpF4.png");
                _Sprite.AddFrame("TurretUpF5.png");
                _Sprite.AddFrame("TurretUpF6.png");
                _Sprite.AddFrame("TurretUpF7.png");
                _Sprite.AddFrame("TurretUpF8.png");
                _Sprite.AddFrame("TurretUpF9.png");
                _Sprite.AddFrame("TurretUpF10.png");
                _Sprite._Width = 1.5f;
                _Sprite._Height = 1.5f;
                _Sprite._Animate = true;
                _Sprite._Y = 0.1f;
                _Z -= 0.2f;
                _Radius = 1.0f;
                _Speed = 10.0f;
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 1;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                _TimeToFire = Random.Range(0.3f,1.0f);
                AddToDelegates();
                break;

            case eAIType.AITYPE_DOWN_TURRET:
                _Sprite = Sprite.Spawn(1);
                _Sprite.AddFrame("TurretDownF1.png");
                _Sprite.AddFrame("TurretDownF2.png");
                _Sprite.AddFrame("TurretDownF3.png");
                _Sprite.AddFrame("TurretDownF4.png");
                _Sprite.AddFrame("TurretDownF5.png");
                _Sprite.AddFrame("TurretDownF6.png");
                _Sprite.AddFrame("TurretDownF7.png");
                _Sprite.AddFrame("TurretDownF8.png");
                _Sprite.AddFrame("TurretDownF9.png");
                _Sprite.AddFrame("TurretDownF10.png");
                _Sprite._Width = 1.5f;
                _Sprite._Height = 1.5f;
                _Sprite._Animate = true;
                _Sprite._Y = 0.1f;
                _Z += 0.2f;
                _Radius = 1.0f;
                _Speed = 10.0f;
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 1;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                _TimeToFire = Random.Range(0.3f,1.0f);
                AddToDelegates();
                break;

            case eAIType.AITYPE_SKULL:
                _Sprite = Sprite.Spawn(1);
                _Sprite.AddFrame("MineF1.png");
                _Sprite.AddFrame("MineF2.png");
                _Sprite.AddFrame("MineF3.png");
                _Sprite.AddFrame("MineF4.png");
                _Sprite.AddFrame("MineF3.png");
                _Sprite.AddFrame("MineF2.png");
                _Sprite._Width = 1.8f;
                _Sprite._Height = 1.8f;
                _Sprite._Animate = true;
                _Sprite._Y = 0.1f;
                _Radius = 0.7f;
                _Speed = 15.0f + Random.Range(0.0f,5.0f);
                _SpeedBoost = 4.0f;
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 1;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                _TimeToFire = Random.Range(2.0f,3.0f);
                AddToDelegates();
                break;

            case eAIType.AITYPE_FLYER:
                _Sprite = Sprite.Spawn(1);
                _Sprite.AddFrame("FlyerF1.png");
                _Sprite.AddFrame("FlyerF2.png");
                _Sprite.AddFrame("FlyerF3.png");
                _Sprite.AddFrame("FlyerF4.png");
                _Sprite.AddFrame("FlyerF5.png");
                _Sprite.AddFrame("FlyerF6.png");
                _Sprite.AddFrame("FlyerF7.png");
                _Sprite.AddFrame("FlyerF8.png");
                _Sprite.AddFrame("FlyerF9.png");
                _Sprite.AddFrame("FlyerF10.png");
                _Sprite._Width = 1.5f;
                _Sprite._Height = 1.5f;
                _Sprite._Animate = true;
                _Sprite._Y = 0.1f;
                _Radius = 0.5f;
                _Speed = 10.0f + Random.Range(0.0f,5.0f);
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 1;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                _TimeToFire = Random.Range(1.0f,2.0f);
                AddToDelegates();
                _RealZ = _Z;
                _SinRadius = Random.Range(3.0f,5.0f);
                _SinFrequency = _Speed * 0.1f;
                break;

            case eAIType.AITYPE_ROCK:
                _Sprite = Sprite.Spawn(1);

                int iRock = Random.Range(0,100);

                if(iRock > 75)
                {
                    _Sprite.AddFrame("Rock1F1.png");
                    _Sprite.AddFrame("Rock1F2.png");
                    _Sprite.AddFrame("Rock1F3.png");
                    _Sprite.AddFrame("Rock1F4.png");
                }
                else if(iRock > 50)
                {
                    _Sprite.AddFrame("Rock2F1.png");
                    _Sprite.AddFrame("Rock2F2.png");
                    _Sprite.AddFrame("Rock2F3.png");
                    _Sprite.AddFrame("Rock2F4.png");
                }
                else if(iRock > 25)
                {
                    _Sprite.AddFrame("Rock3F1.png");
                    _Sprite.AddFrame("Rock3F2.png");
                    _Sprite.AddFrame("Rock3F3.png");
                    _Sprite.AddFrame("Rock3F4.png");
                }
                else
                {
                    _Sprite.AddFrame("Rock4F1.png");
                    _Sprite.AddFrame("Rock4F2.png");
                    _Sprite.AddFrame("Rock4F3.png");
                    _Sprite.AddFrame("Rock4F4.png");
                }

                _Sprite._Width = 4.1f;
                _Sprite._Height = 4.1f;
                _Sprite._Animate = false;
                _Sprite._Y = 0.0f;
                _Sprite.SetFrame(0);
                _Radius = 1.1f;
                _Speed = 10.0f + Random.Range(0.0f,5.0f);
                _Value = 1;
                _Width = 3.0f * 0.5f;
                _Height = (3.0f * 0.5f) * Director._Instance._Aspect;
                _AABBCollision = true;
                _HitPoints = 4;
                _CurrentFrame = 0;
                _FrameAdvanceOnHit = true;
                AddToDelegates();
                break;

            case eAIType.AITYPE_BULLET:
                _Sprite = Sprite.Spawn(1);
                _Sprite.AddFrame("EnemyBullet.png");
                _Sprite._Width = 0.8f;
                _Sprite._Height = 0.8f;
                _Sprite._Animate = false;
                _Sprite._Y = 0.15f;
                _Radius = 0.1f;
                _Speed = 8.0f;
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 1;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                AddToDelegates();
                break;

            case eAIType.AITYPE_POWERUP:
                _Sprite = Sprite.Spawn(1);

                if(_PowerupType == 0)
                {
                    _Sprite.AddFrame("FasterShots.png");
                }
                else if(_PowerupType == 1)
                {
                    _Sprite.AddFrame("TriShot.png");
                }
                else if(_PowerupType == 2)
                {
                    _Sprite.AddFrame("Magnet.png");
                }
                else if(_PowerupType == 3)
                {
                    _Sprite.AddFrame("Shield.png");
                }

                _Sprite._Width = 1.5f;
                _Sprite._Height = 1.5f;
                _Sprite._Animate = false;
                _Sprite._Y = 0.15f;
                _Radius = 0.5f;
                _Speed = 8.0f;
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 1;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                AddToDelegates();
                break;

            case eAIType.AITYPE_DRONE:
                _Sprite = Sprite.Spawn(1);
                _Sprite.AddFrame("Enemy1F1.png");
                _Sprite.AddFrame("Enemy1F2.png");
                _Sprite.AddFrame("Enemy1F3.png");
                _Sprite.AddFrame("Enemy1F4.png");
                _Sprite.AddFrame("Enemy1F3.png");
                _Sprite.AddFrame("Enemy1F2.png");
                _Sprite._Width = 1.2f;
                _Sprite._Height = 1.2f;
                _Sprite._Animate = true;
                _Sprite._Y = 0.1f;
                _Radius = 0.5f;
                _Speed = 8.0f + Random.Range(0.0f,3.0f);
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 300;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                _TimeToFire = Random.Range(2.0f,3.0f);
                AddToDelegates();
                break;

            case eAIType.AITYPE_BOSS1:
                _Sprite = Sprite.Spawn(1);
                _Sprite.AddFrame("Enemy1F1.png");
                _Sprite.AddFrame("Enemy1F2.png");
                _Sprite.AddFrame("Enemy1F3.png");
                _Sprite.AddFrame("Enemy1F4.png");
                _Sprite.AddFrame("Enemy1F3.png");
                _Sprite.AddFrame("Enemy1F2.png");
                _Sprite._Width = 1.2f;
                _Sprite._Height = 1.2f;
                _Sprite._Animate = true;
                _Sprite._Y = 0.1f;
                _Radius = 0.5f;
                _Speed = 8.0f + Random.Range(0.0f,3.0f);
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 6;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                _TimeToFire = Random.Range(2.0f,3.0f);
                AddToDelegates();
                ++Director._Instance._SequencerSemaphore;

                // Create drones for the boss
                _Drones = new List<AI>();

                for(int i = 0; i < 8; ++i)
                {
                    AI pAI = Spawn(eAIType.AITYPE_DRONE,0.0f,0.0f);
                    _Drones.Add(pAI);
                }

                AI pDrone = _Drones[0];
                pDrone._DroneRadius = 9.0f;
                pDrone._DroneAngle = 0.0f;
                pDrone._DroneSpinSpeed = 3.0f;
                pDrone.UpdateDronePosition(_X,_Z);

                pDrone = _Drones[1];
                pDrone._DroneRadius = 7.0f;
                pDrone._DroneAngle = 0.0f;
                pDrone._DroneSpinSpeed = 3.0f;
                pDrone.UpdateDronePosition(_X,_Z);

                pDrone = _Drones[2];
                pDrone._DroneRadius = 5.0f;
                pDrone._DroneAngle = 0.0f;
                pDrone._DroneSpinSpeed = 3.0f;
                pDrone.UpdateDronePosition(_X,_Z);

                pDrone = _Drones[3];
                pDrone._DroneRadius = 3.0f;
                pDrone._DroneAngle = 0.0f;
                pDrone._DroneSpinSpeed = 3.0f;
                pDrone.UpdateDronePosition(_X,_Z);

                pDrone = _Drones[4];
                pDrone._DroneRadius = 3.0f;
                pDrone._DroneAngle = 3.14f;
                pDrone._DroneSpinSpeed = 3.0f;
                pDrone.UpdateDronePosition(_X,_Z);

                pDrone = _Drones[5];
                pDrone._DroneRadius = 5.0f;
                pDrone._DroneAngle = 3.14f;
                pDrone._DroneSpinSpeed = 3.0f;
                pDrone.UpdateDronePosition(_X,_Z);

                pDrone = _Drones[6];
                pDrone._DroneRadius = 7.0f;
                pDrone._DroneAngle = 3.14f;
                pDrone._DroneSpinSpeed = 3.0f;
                pDrone.UpdateDronePosition(_X,_Z);

                pDrone = _Drones[7];
                pDrone._DroneRadius = 9.0f;
                pDrone._DroneAngle = 3.14f;
                pDrone._DroneSpinSpeed = 3.0f;
                pDrone.UpdateDronePosition(_X,_Z);

                break;

            case eAIType.AITYPE_GOLD_COIN:
                _Sprite = Sprite.Spawn(1);
                _Sprite.AddFrame("GoldF1.png");
                _Sprite.AddFrame("GoldF2.png");
                _Sprite.AddFrame("GoldF3.png");
                _Sprite.AddFrame("GoldF4.png");
                _Sprite.AddFrame("GoldF5.png");
                _Sprite.AddFrame("GoldF6.png");
                _Sprite.AddFrame("GoldF7.png");
                _Sprite.AddFrame("GoldF8.png");
                _Sprite._Width = 1.0f;
                _Sprite._Height = 1.0f;
                _Sprite._Animate = true;
                _Sprite._Y = 0.1f;
                _Radius = 0.5f;
                _Speed = 10.0f;
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 1;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                _TimeToFire = Random.Range(2.0f,3.0f);
                AddToDelegates();
                break;

            case eAIType.AITYPE_SILVER_COIN:
                _Sprite = Sprite.Spawn(1);
                _Sprite.AddFrame("SilverF1.png");
                _Sprite.AddFrame("SilverF2.png");
                _Sprite.AddFrame("SilverF3.png");
                _Sprite.AddFrame("SilverF4.png");
                _Sprite.AddFrame("SilverF5.png");
                _Sprite.AddFrame("SilverF6.png");
                _Sprite.AddFrame("SilverF7.png");
                _Sprite.AddFrame("SilverF8.png");
                _Sprite._Width = 1.0f;
                _Sprite._Height = 1.0f;
                _Sprite._Animate = true;
                _Sprite._Y = 0.1f;
                _Radius = 0.5f;
                _Speed = 10.0f;
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 1;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                _TimeToFire = Random.Range(2.0f,3.0f);
                AddToDelegates();
                break;

            case eAIType.AITYPE_BRONZE_COIN:
                _Sprite = Sprite.Spawn(1);
                _Sprite.AddFrame("BronzeF1.png");
                _Sprite.AddFrame("BronzeF2.png");
                _Sprite.AddFrame("BronzeF3.png");
                _Sprite.AddFrame("BronzeF4.png");
                _Sprite.AddFrame("BronzeF5.png");
                _Sprite.AddFrame("BronzeF6.png");
                _Sprite.AddFrame("BronzeF7.png");
                _Sprite.AddFrame("BronzeF8.png");
                _Sprite._Width = 1.0f;
                _Sprite._Height = 1.0f;
                _Sprite._Animate = true;
                _Sprite._Y = 0.1f;
                _Radius = 0.5f;
                _Speed = 10.0f;
                _Value = 1;
                _AABBCollision = false;
                _HitPoints = 1;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                _FrameAdvanceOnHit = false;
                _TimeToFire = Random.Range(2.0f,3.0f);
                AddToDelegates();
                break;

            case eAIType.AITYPE_FEEDBACK:
                _Sprite = Sprite.Spawn(1);

                if(_FeedbackType == 0)
                {
                    _Sprite.AddFrame("PlusOne.png");
                }
                else if(_FeedbackType == 1)
                {
                    _Sprite.AddFrame("PlusFive.png");
                }
                else if(_FeedbackType == 2)
                {
                    _Sprite.AddFrame("PlusTen.png");
                }
                else if(_FeedbackType == 3)
                {
                    _Sprite.AddFrame("MinusTen.png");
                }
                else if(_FeedbackType == 4)
                {
                    _Sprite.AddFrame("MinusTwenty.png");
                }

                _Sprite._Width = 3.0f;
                _Sprite._Height = 3.0f;
                _Sprite._Animate = false;
                _Sprite._Y = 0.1f;
                _Speed = 8.0f;
                _Width = 0.5f * 0.5f;
                _Height = (0.5f * 0.5f) * Director._Instance._Aspect;
                break;

        }

        _Sprite._AI = this;
        _Sprite._Bullet = null;

        _Kill = false;
    }
Example #20
0
    // Use this for initialization
    void Start()
    {
        // Get all the stuff necessary for player movement
        _PlayerObject = GameObject.Find("Player");
        _Player = _PlayerObject.GetComponent<Player>();
        _CameraTransform = this.transform;
        _CameraTransform.position = _CameraPos;

        // Find the UI
        _PlayButton = GameObject.Find("PlayButton").GetComponent<Button>();
        _CreditsBackButton = GameObject.Find("CreditsBackButton").GetComponent<Button>();
        _Title = GameObject.Find("Title").GetComponent<Image>();
        _Credits = GameObject.Find("Credits").GetComponent<Image>();
        _LevelInfo = GameObject.Find("LevelInfo").GetComponent<Image>();

        // Build the screens
        ScreenContainer pTitleScreen = new ScreenContainer();

        pTitleScreen.AddButton("PlayButton");
        pTitleScreen.AddButton("CloseButton");
        pTitleScreen.AddButton("WhoMadeThisButton");
        pTitleScreen.AddButton("HighScoreTableButton");
        pTitleScreen.AddButton("TwitterButton");
        pTitleScreen.AddButton("SettingsButton");

        pTitleScreen.AddCompound("LogoContainer");

        _Screens.Add("TITLE",pTitleScreen);

        ScreenContainer pCredits = new ScreenContainer();
        pCredits.AddButton("CreditsBackButton");

        pCredits.AddUIGO("CreditsByron");
        pCredits.AddUIGO("CreditsGavin");
        pCredits.AddUIGO("CreditsNatalie");
        pCredits.AddUIGO("CreditsSusan");
        pCredits.AddUIGO("CreditsWill");
        pCredits.AddUIGO("CreditsDes");
        pCredits.AddUIGO("CreditsDugan");
        pCredits.AddUIGO("CreditsDan");
        pCredits.AddUIGO("CreditsThanks");

        _Screens.Add("CREDITS",pCredits);

        ScreenContainer pHowTo = new ScreenContainer();
        pHowTo.AddButton("CreditsBackButton");
        pHowTo.AddImage("HowToPlay");
        _Screens.Add("HOW_TO_PLAY",pHowTo);

        ScreenContainer pPlay = new ScreenContainer();
        pPlay.AddUIGO("Land");
        pPlay.AddUIGO("Land2");
        _Screens.Add("PLAY",pPlay);

        ScreenContainer pPathEditor = new ScreenContainer();
        _Screens.Add("PATH",pPathEditor);

        ScreenContainer pScores = new ScreenContainer();
        pScores.AddButton("HighScoreBackButton");
        pScores.AddButton("HSUpButton");
        pScores.AddButton("HSDownButton");
        _Screens.Add("SCORES",pScores);

        ScreenContainer pName = new ScreenContainer();
        pName.AddButton("CreditsBackButton");
        pName.AddButton("OneUpButton");
        pName.AddButton("OneDownButton");
        pName.AddButton("TwoUpButton");
        pName.AddButton("TwoDownButton");
        pName.AddButton("ThreeUpButton");
        pName.AddButton("ThreeDownButton");
        pName.AddButton("FourUpButton");
        pName.AddButton("FourDownButton");
        pName.AddButton("FiveUpButton");
        pName.AddButton("FiveDownButton");
        pName.AddButton("SixUpButton");
        pName.AddButton("SixDownButton");
        pName.AddButton("SevenUpButton");
        pName.AddButton("SevenDownButton");
        pName.AddButton("EightUpButton");
        pName.AddButton("EightDownButton");
        pName.AddButton("NineUpButton");
        pName.AddButton("NineDownButton");
        pName.AddButton("TenUpButton");
        pName.AddButton("TenDownButton");

        pName.AddButton("MusicVolumeUpButton");
        pName.AddButton("MusicVolumeDownButton");
        pName.AddButton("SFXVolumeUpButton");
        pName.AddButton("SFXVolumeDownButton");
        pName.AddCompound("MusicVolumeContainer");
        pName.AddCompound("SFXVolumeContainer");
        pName.AddCompound("MusicVolumeNameContainer");
        pName.AddCompound("SFXNameContainer");
        pName.AddCompound("NameContainer");

        _Screens.Add("NAME",pName);

        ScreenContainer pNewVersion = new ScreenContainer();
        pNewVersion.AddButton("GoGetButton");
        pNewVersion.AddButton("GoGetBackButton");
        pNewVersion.AddUIGO("NewVersion");
        _Screens.Add("NEW_VERSION",pNewVersion);

        ScreenContainer pCompany = new ScreenContainer();
        pCompany.AddUIGO("Company");
        _Screens.Add("COMPANY",pCompany);

        _Number = new Number();
        _Number._Z = 10.0f;
        _Number.Disable();

        // Setup the initial game state
        //_CurrentState = eGameState.GAMESTATE_SETUP_COMPANY;
        _CurrentState = eGameState.GAMESTATE_SETUP_TITLE;

        _Camera = GetComponent<Camera>();

        // Disable components to start
        _Player.Disable();

        _Samples = new Dictionary<string,AudioClip>();
        _SamplesTimeStamp = new Dictionary<string, float>();
        _SamplePlayAlways = new Dictionary<string, bool>();
        _AudioSource = this.GetComponent<AudioSource>();

        // Add samples
        AddSample("ALIEN_SHOT","SFX/Enemy");
        AddSample("PLAYER_SHOT","SFX/PlayerShot2");
        AddSample("EXPLOSION","SFX/Explosion");
        AddSample("COIN","SFX/Coin");
        AddSample("POWERUP","SFX/PowerUp");
        AddSample("PLAYERDEATH","SFX/PlayerDeath",true);
        AddSample("RAPIDFIRE","SFX/RapidFire",true);
        AddSample("GAMEON","SFX/GameOn",true);
        AddSample("WIPEOUT","SFX/WipeOut",true);
        AddSample("CLICK","SFX/Click",true);
        AddSample("PRESS","SFX/Press",true);
        AddSample("THREEWAY","SFX/ThreeWay",true);
        AddSample("MAGNET","SFX/Magnatism",true);

        // Create lives sprites
        _LivesSprites = new List<Sprite>();

        float fLX = Ground._Instance._HigherX + 2.0f;
        float fLZ = Ground._Instance._LowerZ - 2.0f;

        for(int i = 0; i < 20; ++i)
        {
            Sprite pSprite = Sprite.Spawn(1);

            pSprite.AddFrame("Life.png");
            pSprite._Width = 0.5f;
            pSprite._Height = 0.5f;
            pSprite._Animate = false;;
            pSprite._Y = 1.0f;
            pSprite._X = fLX;
            pSprite._Z = fLZ;
            pSprite._Alive = false;
            _LivesSprites.Add(pSprite);

            fLX += 0.6f;
        }

        _Starfield = GameObject.Find("Starfield").GetComponent<Renderer>().sharedMaterial;
        _Warp = 0.0f;
        _Speed = 1.0f;

        _PatheEditor = false;
        _Generator = new Generator();

        _Scores = GameObject.Find("Scores").GetComponent<Scores>();

        // Load HUD indicators
        _BulletSpeedUp = Sprite.Spawn(1);
        _BulletSpeedUp.AddFrame("FasterShot1.png");
        _BulletSpeedUp.AddFrame("FasterShot2.png");
        _BulletSpeedUp.AddFrame("FasterShot3.png");
        _BulletSpeedUp.AddFrame("FasterShot4.png");
        _BulletSpeedUp.AddFrame("FasterShot5.png");
        _BulletSpeedUp.AddFrame("FasterShot6.png");
        _BulletSpeedUp.AddFrame("FasterShot7.png");
        _BulletSpeedUp.AddFrame("FasterShot8.png");
        _BulletSpeedUp.AddFrame("FasterShot9.png");
        _BulletSpeedUp.AddFrame("FasterShot10.png");
        _BulletSpeedUp._X = -10.0f;
        _BulletSpeedUp._Z = 10.0f;
        _BulletSpeedUp._Height = 1.2f;
        _BulletSpeedUp._Width = 1.2f;
        _BulletSpeedUp._Animate = false;
        _BulletSpeedUp._Y = 0.1f;
        _BulletSpeedUp._Alive = false;
    }
        public Sprite LoadSprite(XElement element)
        {
            int width = element.GetAttribute<int>("width");
            int height = element.GetAttribute<int>("height");

            Sprite sprite = new Sprite(width, height);

            sprite.Name = element.TryAttribute<string>("name");
            sprite.Part = element.TryAttribute<string>("part");
            sprite.PaletteName = element.TryAttribute<string>("palette");

            sprite.Reversed = element.TryAttribute<bool>("reversed");

            XElement hotspot = element.Element("Hotspot");
            if (hotspot != null)
            {
                int hx = hotspot.GetAttribute<int>("x");
                int hy = hotspot.GetAttribute<int>("y");
                sprite.HotSpot = new Point(hx, hy);
            }
            else
            {
                sprite.HotSpot = new Point(0, 0);
            }

            sprite.Layer = element.TryAttribute<int>("layer");

            XElement stylenode = element.Element("AnimStyle");
            if (stylenode != null)
            {
                string style = stylenode.Value;
                switch (style)
                {
                    case "Bounce": sprite.AnimStyle = AnimationStyle.Bounce; break;
                    case "PlayOnce": sprite.AnimStyle = AnimationStyle.PlayOnce; break;
                }
            }

            XElement directionNode = element.Element("AnimDirection");
            if (directionNode != null)
            {
                string direction = directionNode.Value;
                switch (direction)
                {
                    case "Forward": sprite.AnimDirection = AnimationDirection.Forward; break;
                    case "Backward": sprite.AnimDirection = AnimationDirection.Backward; break;
                }
            }

            foreach (XElement frame in element.Elements("Frame"))
            {
                int duration = frame.TryAttribute<int>("duration");
                int x = frame.GetAttribute<int>("x");
                int y = frame.GetAttribute<int>("y");
                sprite.AddFrame(x, y, duration);
            }

            if (sprite.Count == 0)
            {
                sprite.AddFrame(0, 0, 0);
            }

            return sprite;
        }
Example #22
0
    public bool UpdateAndRender(float fTimeDelta)
    {
        if(_Sprite == null)
        {
            _Sprite = Sprite.Spawn(1);

            if(_Type == 0)
            {
                _Sprite.AddFrame("Bullet.png");
            }
            else if(_Type == 1)
            {
                _Sprite.AddFrame("BulletUp.png");

            }
            else
            {
                _Sprite.AddFrame("BulletDown.png");
            }

            _Sprite._Width = 1.0f;
            _Sprite._Height = 1.0f;

            _Sprite._AI = null;
            _Sprite._Bullet = this;
        }

        _X += _VX * _Speed * fTimeDelta;
        _Z += _VZ * _Speed * fTimeDelta;

        if(_Collide != null)
        {
            _Collide(this);

            if(!_Alive)
            {
                return false;
            }
        }

        if(_X > _MaxX)
        {
            return false;
        }

        if(_Z > 12.0f)
        {
            return false;
        }

        if(_Z < -12.0f)
        {
            return false;
        }

        _Sprite._X = _X;
        _Sprite._Y = 0.1f;
        _Sprite._Z = _Z;

        return true;
    }
Example #23
0
        private static Sprite GetEmptySprite(int frames)
        {
            var sprite = new Sprite(1, 1);

            for (int i = 0; i < frames; i++)
            {
                sprite.AddFrame(0, 0, 1);
            }

            return sprite;
        }
Example #24
0
    // Use this for initialization
    void Start()
    {
        _Transform = this.transform;

        _FireRepeatDelayReset = 0.25f;
        _FireRepeatDelay = 0.0f;

        // Setup the sprite
        _Sprite = Sprite.Spawn(1);
        _Sprite.AddFrame("PlayerF1.png");
        _Sprite.AddFrame("PlayerF2.png");
        _Sprite.AddFrame("PlayerF3.png");
        _Sprite._X = 0.0f;
        _Sprite._Y = 0.1f;
        _Sprite._Z = 0.0f;
        _Sprite._Width = 1.8f;
        _Sprite._Height = 1.8f;
        _Sprite._Animate = true;
        _Alive = false;

        _Radius = 0.75f;
        _XOffset = 0.0f;
        _ZOffset = 0.0f;
        _XPosition = 0.0f;
        _ZPosition = 0.0f;
        _X = 0.0f;
        _Z = 0.0f;

        _Pos = new Vector3(0.0f,0.0f,0.0f);

        _LowerX = Ground._Instance._HigherX;
        _LowerZ = Ground._Instance._HigherZ;
        _HigherX = Ground._Instance._LowerX;
        _HigherZ = Ground._Instance._LowerZ;

        Debug.Log("LX = " + _LowerX + " HX = " + _HigherX + " LZ = " + _LowerZ + " HZ = " + _HigherZ);

        _HalfWidth = 1.0f * 0.5f;
        _HalfHeight = (1.0f * 0.5f) * Director._Instance._Aspect;
    }
Example #25
0
    // Update is called once per frame
    void Update()
    {
        if(_Sprite == null)
        {
            _Sprite = Sprite.Spawn(1);
            _Sprite._Width = _Transform.localScale.x;
            _Sprite._Height = _Transform.localScale.y;
            _Sprite._Animate = false;
            _Sprite.AddFrame("V10.png");
            _Sprite.AddFrame("V9.png");
            _Sprite.AddFrame("V8.png");
            _Sprite.AddFrame("V7.png");
            _Sprite.AddFrame("V6.png");
            _Sprite.AddFrame("V5.png");
            _Sprite.AddFrame("V4.png");
            _Sprite.AddFrame("V3.png");
            _Sprite.AddFrame("V2.png");
            _Sprite.AddFrame("V1.png");
            _Sprite.AddFrame("V0.png");
            _Sprite._X = 1000.0f;
            _Sprite._Z = 1000.0f;
            _Sprite._Y = 0.1f;
        }

        _Sprite._X = _Transform.position.x;
        _Sprite._Z = _Transform.position.z;
        _Sprite._Width = _Transform.localScale.x;
        _Sprite._Height = _Transform.localScale.y;

        if(Director._Instance._SFXVolume > 0.9f)
        {
            _Sprite.SetFrame(0);
        }
        else if(Director._Instance._SFXVolume > 0.8f)
        {
            _Sprite.SetFrame(1);
        }
        else if(Director._Instance._SFXVolume > 0.7f)
        {
            _Sprite.SetFrame(2);
        }
        else if(Director._Instance._SFXVolume > 0.6f)
        {
            _Sprite.SetFrame(3);
        }
        else if(Director._Instance._SFXVolume > 0.5f)
        {
            _Sprite.SetFrame(4);
        }
        else if(Director._Instance._SFXVolume > 0.4f)
        {
            _Sprite.SetFrame(5);
        }
        else if(Director._Instance._SFXVolume > 0.3f)
        {
            _Sprite.SetFrame(6);
        }
        else if(Director._Instance._SFXVolume > 0.2f)
        {
            _Sprite.SetFrame(7);
        }
        else if(Director._Instance._SFXVolume > 0.1f)
        {
            _Sprite.SetFrame(8);
        }
        else if(Director._Instance._SFXVolume > 0.0f)
        {
            _Sprite.SetFrame(9);
        }
        else
        {
            _Sprite.SetFrame(10);
        }
    }
Example #26
0
        public static Sprite LoadSprite(XElement element)
        {
            int width  = element.GetAttribute <int>("width");
            int height = element.GetAttribute <int>("height");

            Sprite sprite = new Sprite(width, height);

            sprite.Name = element.TryAttribute <string>("name");

            sprite.PaletteName = element.TryAttribute <string>("palette");

            sprite.Reversed = element.TryAttribute <bool>("reversed");

            XElement hotspot = element.Element("Hotspot");

            if (hotspot != null)
            {
                int hx = hotspot.GetAttribute <int>("x");
                int hy = hotspot.GetAttribute <int>("y");
                sprite.HotSpot = new Point(hx, hy);
            }
            else
            {
                sprite.HotSpot = new Point(0, 0);
            }

            sprite.Layer = element.TryAttribute <int>("layer");

            XElement stylenode = element.Element("AnimStyle");

            if (stylenode != null)
            {
                string style = stylenode.Value;
                switch (style)
                {
                case "Bounce": sprite.AnimStyle = AnimationStyle.Bounce; break;

                case "PlayOnce": sprite.AnimStyle = AnimationStyle.PlayOnce; break;
                }
            }

            XElement directionNode = element.Element("AnimDirection");

            if (directionNode != null)
            {
                string direction = directionNode.Value;
                switch (direction)
                {
                case "Forward": sprite.AnimDirection = AnimationDirection.Forward; break;

                case "Backward": sprite.AnimDirection = AnimationDirection.Backward; break;
                }
            }

            foreach (XElement frame in element.Elements("Frame"))
            {
                int duration = frame.TryAttribute <int>("duration");
                int x        = frame.GetAttribute <int>("x");
                int y        = frame.GetAttribute <int>("y");
                sprite.AddFrame(x, y, duration);
            }

            if (sprite.Count == 0)
            {
                sprite.AddFrame(0, 0, 0);
            }

            return(sprite);
        }
Example #27
0
    void Update()
    {
        if(_Sprite == null)
        {
            _Sprite = Sprite.Spawn(1);
            _Sprite._Width = _Width;
            _Sprite._Height = _Height;
            _Sprite._Animate = false;
            _Sprite.AddFrame(_Image);
            _Sprite._X = 1000.0f;
            _Sprite._Z = 1000.0f;
        }

        switch(_Ease)
        {
            case eTitleEase.TITLE_EASE_IN:
                _Time += Time.deltaTime;

                if(_Time > 1.0f)
                {
                    _Time = 1.0f;
                    _C = _B;
                    _Ease = eTitleEase.TITLE_EASE_NONE;
                }

                float fRealTime = 1.0f - _Time;
                _C = _B + (_A - _B) * (fRealTime * fRealTime);
                break;

            case eTitleEase.TITLE_EASE_OUT:

                _Time -= Time.deltaTime;

                if(_Time < 0.0f)
                {
                    _Time = 0.0f;
                    _C = _A;
                    _Ease = eTitleEase.TITLE_EASE_KILL;
                }

                _C = _A + (_B - _A) * (_Time * _Time);
                break;

            case eTitleEase.TITLE_EASE_KILL:
                this.active = false;
                _Sprite._Alive = false;
                break;
        }

        this.transform.position = _C;
        _Sprite._X = _C.x;
        _Sprite._Z = _C.z;
    }
Example #28
0
    void Update()
    {
        if(_Sprite == null)
        {
            _Sprite = Sprite.Spawn(1);
            _Sprite._Width = _Width;
            _Sprite._Height = _Height;
            _Sprite._Animate = false;
            _Sprite.AddFrame(_UpImage);
            _Sprite.AddFrame(_DownImage);
            _Sprite.AddFrame(_OverImage);
            _Sprite.AddFrame(_LockUp);
            _Sprite.AddFrame(_LockDown);
            _Sprite._X = 10000.0f;
            _Sprite._Z = 10000.0f;
            _Sprite._Y = _Depth;

            if(_Locked)
            {
                _Sprite.SetFrame(2);
            }
        }

        switch(_Ease)
        {
            case eButtonEase.BUTTON_EASE_IN:

                _Time += _Speed * Time.deltaTime;

                if(_Time > 1.0f)
                {
                    _Time = 1.0f;
                    _C = _B;
                    _Ease = eButtonEase.BUTTON_EASE_NONE;

                    if(_Shake)
                    {
                        Director._Instance.ShakeCamera(_ShakeIntensity,_ShakeTime);
                    }
                }

                float fRealTime = 1.0f - _Time;
                _C = _B + (_A - _B) * (fRealTime * fRealTime);
                break;

            case eButtonEase.BUTTON_EASE_OUT:

                _Time -= _Speed  * Time.deltaTime;

                if(_Time < 0.0f)
                {
                    _Time = 0.0f;
                    _C = _A;
                    _Ease = eButtonEase.BUTTON_EASE_KILL;
                }

                _C = _A + (_B - _A) * (_Time * _Time);
                break;

            case eButtonEase.BUTTON_EASE_KILL:
                this.active = false;
                _Sprite._Alive = false;
                break;
        }

        this.transform.position = _C;
        _Sprite._X = _C.x;
        _Sprite._Z = _C.z;

        if(Input.GetMouseButtonDown(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

           		if(Physics.Raycast(ray, out hit, 100))
            {
                if(hit.transform.gameObject.name == this.name)
                {
                    _IsButtonDown = true;

                    if(_Locked)
                    {
                        _Sprite.SetFrame(3);
                    }
                    else
                    {
                        _Sprite.SetFrame(1);
                    }
                }
            }
        }

        if(Input.GetMouseButtonUp(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

           		if(Physics.Raycast(ray, out hit, 100))
            {
                if(hit.transform.gameObject.name == this.name)
                {
                    if(_IsButtonDown && !_Locked)
                    {
                        Director._Instance.FireEvent(_Event);
                        Director._Instance.PlaySample("PRESS",1.0f);
                    }
                }
            }

            _IsButtonDown = false;

            if(_Locked)
            {
                _Sprite.SetFrame(2);
            }
            else
            {
                _Sprite.SetFrame(0);
            }
        }

        if(!_IsButtonDown)
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

           		if(Physics.Raycast(ray, out hit, 100))
            {
                if(hit.transform.gameObject.name == this.name)
                {
                    if(!_IsOver)
                    {
                        Director._Instance.PlaySample("CLICK",1.0f);
                    }

                    _IsOver = true;
                    _Sprite.SetFrame(2);

                }
                else
                {

                    _IsOver = false;
                    _Sprite.SetFrame(0);

                }
            }
        }
        else
        {
            _IsOver = false;
        }
    }