描述:读取游戏中每周的签到次数,用按位存取方法,保存数据(当天获取签到数据需从服务器获取),
该示例中有,当天是否签到,目前累计签到几天数据。
// 获取签到记录
public int[] SignRecord(bool isTotal)
{
int[] sign_list = new int[7]; // 签到次数
int[] signNum_list = new int[3];// 累计签到
int signCount = 0;
int temp = 0;
UserData data = GetInstance();
Debug.Log("\n === data.signin === " + data.signin);
if(!isTotal)
{
for (int i = 0; i < 7; i++)
{
temp = (i == 0) ? 6 : i - 1; // 从星期日开始计算 0~6
if ((data.signin & (1 << i)) != 0)
{
sign_list[temp] = 1; // 签到
signCount++;
//Debug.Log("\n=== signCount: " + signCount);
}
else
{
sign_list[temp] = 0;
}
}
this.signinCount = signCount;
return sign_list;
}
else
{
// 累计签到 记录
for (int j = 0; j < signNum_list.Length; j++)
{
if ((data.totalsignin & (1 << j)) != 0)
{
signNum_list[j] = 1; // 已签到
}
else
{
signNum_list[j] = 0;
}
//Debug.Log("\n=== signNum_list: " + signNum_list[j] + ", j: " + j);
}
return signNum_list;
}
}
// 保存签到记录 --- 客户端保存
// 保存客户端好处是,不用每次都从服务器获取
public void ModifySignRecord(int index, bool isTotalSign = false)
{
if (!isTotalSign)
{
this.signin = this.signin | 1 << index;
Debug.Log("\n ======= sign.count ====: " + this.signin);
}
else
{
this.totalsignin = this.totalsignin | 1 << index;
Debug.Log("\n ======= total sign ====: " + this.totalsignin);
}
}这只是个示例,为了更好的理解,按位存取的数据操作。有什么错误的地方,欢迎指正~

本文通过一个示例介绍如何使用C#进行按位存取来处理游戏中的签到数据,包括判断当天是否签到及累计签到天数的存储。该方法旨在简化数据操作并提高理解,欢迎对潜在错误提出指正。
5610

被折叠的 条评论
为什么被折叠?



