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; }
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; }
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); }
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; }
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; }
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)); }
public MovingFloor(FroggerBoard board, Rectangle r) : base(board, r) { this.level = Level.Floor; }
public Log(FroggerBoard board,Point p) : base(board,new Rectangle(p.x,p.y,3.0f,1.0f)) { animation=new FroggerAnimation("log"); }
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"); }
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"); }
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"); }
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); }