一般對於遊戲來說,七天登錄是常備運營活動,可以提升很大一部分留存。
本身七天登錄功能大致實現相當簡單,數據傳輸格式無非:
{day:statu}或者整一個數組裏面存取7個數據保存每天是否領取狀態,
但是如果採用二進制數據豈不是傳輸速率更便捷:
如:
7天都未領取:0000000 = 0
第一天已領取:0000001 = 1
第二天已領取:0000011 = 3
第三天已領取:0000111 = 7
第四天已領取:0001111 = 15
第五天已領取:0011111 = 31
第六天已領取:0111111 = 63
第七天已領取:1111111 = 127
其中,數字狀態爲:1:已領取,0:已領取
服務端傳輸數據結構體
message login7day{
int day = 1;
}
day對應0,1,3,7,15,31,63,127
let d = day.toString(2);
客戶端只需要拿到對應數據,對day進行轉爲二進制求出1的個數,然後刷新界面即可。
補充:
十進制轉二進制:
let num = 100;
console.log(num.toString(2));
二進制轉十進制:
let num = 1100100;
console.log(parseInt(num, 2));
附:
parseInt(num,8); //八進制轉十進制
parseInt(num,16); //十六進制轉十進制
parseInt(num).toString(8) //十進制轉八進制
parseInt(num).toString(16) //十進制轉十六進制
parseInt(num,2).toString(8) //二進制轉八進制
parseInt(num,2).toString(16) //二進制轉十六進制
parseInt(num,8).toString(2) //八進制轉二進制
parseInt(num,8).toString(16) //八進制轉十六進制
parseInt(num,16).toString(2) //十六進制轉二進制
parseInt(num,16).toString(8) //十六進制轉八進制