Exemplo n.º 1
0
        public void Move(MOVE_DIRECTIONS dir, Map map)
        {
            //Temps:
            List<Tile> newCurrentTiles = map.CheckIfCanMove(dir, mCurrentState, mCurrentTiles, this);

            //Verificando se podemos nos mover nessa direção:
            if (mCurrentState != STATE.FALLING && newCurrentTiles != null)
            {
                //Salvando os tiles atuais:
                mCurrentTiles.Clear();

                foreach (var tile in newCurrentTiles)
                    mCurrentTiles.Add(tile);

                //Podemos nos mover:
                UpdateDrawAndSprites(dir);

                //Tocando o som:
                //mMoveSound.Play();
            }
        }
Exemplo n.º 2
0
        public bool DidWeWin(Map map)
        {
            //Estamos ocupando apenas um tile?
            if (mCurrentTiles.Count == 1)
            {
                //Verificando se o mapa possui apenas 1 saída tbm:
                if (map.ExitTiles.Count != 1)
                {
                    //Não ganhamos:
                    return false;
                }
                else
                {
                    //Os tiles são diferentes?
                    if (mCurrentTiles[0].MapPosition != map.ExitTiles[0].MapPosition)
                    {
                        return false;
                    }
                }

                //Se chegamos até aqui, ganhamos:
                return true;
            }
            //Ocupamos mais de um tile:
            else
            {
                //Verificando se o mapa possui apenas 1 saída:
                if (map.ExitTiles.Count == 1)
                {
                    //Não ganhamos:
                    return false;
                }
                else
                {
                    //Os tiles são diferentes?
                    if ((mCurrentTiles[0].MapPosition != map.ExitTiles[0].MapPosition) &&
                        (mCurrentTiles[0].MapPosition != map.ExitTiles[1].MapPosition) ||
                        (mCurrentTiles[1].MapPosition != map.ExitTiles[0].MapPosition) &&
                        (mCurrentTiles[1].MapPosition != map.ExitTiles[1].MapPosition))
                    {
                        return false;
                    }
                }

                //Se chegamos até aqui, ganhamos:
                return true;
            }
        }