// サーバーからTop10を取得 --------------- public void fetchTopRankers() { isCorrect = true; errorCode = null; isfetchTopRankersFinish = false; // データストアの「HighScore」クラスから検索 NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject> ("HighScore"); query.OrderByDescending("Score"); query.Limit = HighScore.RANKING_MAX; query.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { //検索失敗時の処理 errorCode = e.ErrorCode; } else { //検索成功時の処理 List <NCMB.HighScore> list = new List <NCMB.HighScore>(); // 取得したレコードをHighScoreクラスとして保存 foreach (NCMBObject obj in objList) { int score = System.Convert.ToInt32(obj["Score"]); int stage = System.Convert.ToInt32(obj["Stage"]); string name = System.Convert.ToString(obj["Name"]); list.Add(new HighScore(score, stage, name)); } topRankers = list; } isfetchTopRankersFinish = true; }); }
// サーバーからrankの前後2件を取得 --------------- public void fetchNeighbors() { neighbors = new List <NCMB.HighScore>(); isCorrect = true; errorCode = null; // スキップする数を決める(ただし自分が1位か2位のときは調整する) int numSkip = currentRank - 3; if (numSkip < 0) { numSkip = 0; } // データストアの「HighScore」クラスから検索 NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject> ("HighScore"); query.OrderByDescending("Score"); query.Skip = numSkip; query.Limit = HighScore.RANKING_MAX; query.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { //検索失敗時の処理 errorCode = e.ErrorCode; } else { //検索成功時の処理 List <NCMB.HighScore> list = new List <NCMB.HighScore>(); // 取得したレコードをHighScoreクラスとして保存 foreach (NCMBObject obj in objList) { int score = System.Convert.ToInt32(obj["Score"]); int stage = System.Convert.ToInt32(obj["Stage"]); string name = System.Convert.ToString(obj["Name"]); list.Add(new HighScore(score, stage, name)); } neighbors = list; } }); }