コード例 #1
0
 /// <summary>
 /// Get the name of the given method as a string
 /// </summary>
 /// <param name="cb">method group (int f())</param>
 /// <returns></returns>
 internal static string getNameInt(CallbackInt cb)
 {
     return cb.Method.Name;
 }
コード例 #2
0
    //指定したレコードのランクを取得
    public void fetchRank(string name, int gameModeId, Save_ranking_item save_Ranking_Item, CallbackInt callback)
    {
        currentRank = 0;
        RankingRecord myRecord = null;
        // データスコアの「HighScore」から検索
        NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>(rankingClassName);

        query.WhereEqualTo("name", name);
        query.WhereEqualTo("gameModeId", gameModeId);
        query.WhereEqualTo("type", (int)save_Ranking_Item);
        query.FindAsync((List <NCMBObject> objList, NCMBException e) =>
        {
            if (e == null && objList.Count > 0)
            {                                                                      //検索成功したら
                string _name    = System.Convert.ToString(objList[0]["name"]);     // 名前を取得
                float _distance = System.Convert.ToSingle(objList[0]["distance"]); // スコアを取得
                float _timeSpan = System.Convert.ToSingle(objList[0]["timeSpan"]);
                myRecord        = new RankingRecord(0, _name, _distance, _timeSpan, save_Ranking_Item);

                var query2 = new NCMBQuery <NCMBObject>(rankingClassName);
                query2.WhereEqualTo("gameModeId", gameModeId);
                query2.WhereEqualTo("type", (int)save_Ranking_Item);
                switch (save_Ranking_Item)
                {
                case Save_ranking_item.SAVE_RANKING_HIGH:
                    query2.WhereGreaterThanOrEqualTo("distance", myRecord.distance);
                    break;

                case Save_ranking_item.SAVE_RANKING_LOW:
                    query2.WhereLessThanOrEqualTo("distance", myRecord.distance);
                    break;

                default:
                    break;
                }

                query2.CountAsync((int count, NCMBException e2) =>
                {
                    if (e2 != null)
                    {
                        //件数取得失敗
                        callback(currentRank);
                    }
                    else
                    {
                        //件数取得成功
                        currentRank = count + 1; // 自分よりスコアが上の人がn人いたら自分はn+1位
                    }
                    callback(currentRank);
                });
            }
            else
            {
                callback(currentRank);
            }

            return;
        });
    }