Exemplo n.º 1
0
        public override void Tick(float seconds)
        {
            //jeżeli właśnie wróciliśmy z innego levelu to sprawdzamy jego stan
            if (inner_level != null)
            {
                if (inner_level.State==BoardState.Won)
                {
                    is_locked = false;
                    animation.Seek(1);
                }

                inner_level = null;

            }

            animation.Tick(seconds);

            if (is_locked && has_frog && !just_played)
            {

                just_played = true;

                inner_level = BoardLoader.LoadBoard(board_name+".conf");

                board.PushBoard(inner_level);

            }

            if (!has_frog)
                just_played = false;

            has_frog = false;
        }
Exemplo n.º 2
0
 public Bridge(FroggerBoard board, Point p, string board_name)
     : base(board,new Rectangle(p.x,p.y,1.0f,3.0f))
 {
     level=Level.Floor;
     animation=new FroggerAnimation("bridge");
     this.board_name = board_name;
 }
Exemplo n.º 3
0
 public static FroggerObject ObjectFromFields(FroggerBoard board, string[] fields)
 {
     if (!Config.IsDebug)
         try
         {
             return ObjectFromFields_real(board, fields);
         }
         catch (Exception)
         {
             return null;
         }
     else
         return ObjectFromFields_real(board, fields);
 }
Exemplo n.º 4
0
        public static FroggerBoard LoadBoard(string filename)
        {
            FroggerBoard board = new FroggerBoard();

            StreamReader reader=new StreamReader(Config.GetDataDir()+filename);

            String s=reader.ReadLine();

            int line = 0;

            while (s != null)
            {

                line++;

                try
                {

                    String[] fields = Regex.Split(s, "[^\\w\\._-]+");

                    if (s.Length == 0 || s.StartsWith("#") || fields[0].Length == 0)
                        continue;

                    FroggerObject o = ObjectFromFields(board, fields);

                    if (o != null)
                        board.Add(o);
                    else
                        Console.WriteLine(filename + ":" + line + " Parse Error:\n\t" + s);

                }
                finally
                {
                    s = reader.ReadLine();
                }

            }

            reader.Close();

            return board;
        }
Exemplo n.º 5
0
        private static FroggerObject ObjectFromFields_real(FroggerBoard board, string[] fields)
        {
            FroggerObject fo = null;

            Point p = new Point(ParseFloat(fields[1]), ParseFloat(fields[2]));

            switch (fields[0].ToLower().Replace("_",""))
            {
                case "frog":
                    fo = new Frog(board, p);
                    break;
                case "rock":
                    fo = new Rock(board, p);
                    break;
                case "log":
                    fo = new Log(board, p);
                    fo.Go(new Point(ParseFloat(fields[3]), ParseFloat(fields[4])), float.PositiveInfinity);
                    break;
                case "littlefrog":
                    fo = new LittleFrog(board, p);
                    break;
                case "fly":
                    fo = new Fly(board, p);
                    break;
                case "leaf":
                    fo = new Leaf(board, p);
                    fo.Go(new Point(ParseFloat(fields[3]), ParseFloat(fields[4])), float.PositiveInfinity);
                    break;
                case "home":
                    fo = new Home(board, p);
                    break;
                case "bridge":
                    fo = new Bridge(board, p, fields[3]);
                    break;
                default:
                    return null;
            }

            return fo;
        }
Exemplo n.º 6
0
        public Rock(FroggerBoard board,Point p)
            : base(board,new Rectangle(p.x,p.y,1.0f,1.0f))
        {
            level=Level.Floor;
            animation=new FroggerAnimation("rock");
            animation.Seek(Utils.rand.Next(3));

            //this.MoveBy(new Point((float)Utils.rand.NextDouble()*0.1f-0.05f,(float)Utils.rand.NextDouble()*0.1f-0.05f));
        }
Exemplo n.º 7
0
 public MovingFloor(FroggerBoard board, Rectangle r)
     : base(board, r)
 {
     this.level = Level.Floor;
 }
Exemplo n.º 8
0
 public Log(FroggerBoard board,Point p)
     : base(board,new Rectangle(p.x,p.y,3.0f,1.0f))
 {
     animation=new FroggerAnimation("log");
 }
Exemplo n.º 9
0
 public LittleFrog(FroggerBoard board,Point p)
     : base(board,new Rectangle(p.x,p.y,1.0f,1.0f))
 {
     level=Level.Walking;
     animation=new FroggerAnimation("little_frog");
 }
Exemplo n.º 10
0
 public Home(FroggerBoard board,Point p)
     : base(board,new Rectangle(p.x,p.y,2.0f,2.0f))
 {
     level=Level.Floor;
     animation=new FroggerAnimation("home");
 }
Exemplo n.º 11
0
 public Frog(FroggerBoard board, Point p)
     : base(board,new Rectangle(p.x,p.y,1.0f,1.0f))
 {
     starting_location = p;
     level=Level.Walking;
     animation=new FroggerAnimation("frog");
 }
Exemplo n.º 12
0
        public Fly(FroggerBoard board,Point p)
            : base(board,new Rectangle(p.x,p.y,1.0f,1.0f))
        {
            level=Level.Air;
            animation=new FroggerAnimation("fly");

            //this.Go(new Point(1.0f,0.0f),float.PositiveInfinity);
        }