Java 我如何在LibGDX上进行每日礼物屏幕

Java 我如何在LibGDX上进行每日礼物屏幕,java,libgdx,Java,Libgdx,我想做一个离线的日常礼品系统。我该怎么做呢 date = new Date(); calendarG = new GregorianCalendar(); calendarG.setTime(date); if(!prefs.contains("lastloginday")) prefs.putInteger("lastloginday", calendarG.get(Calendar.DAY_OF_MONTH));

我想做一个离线的日常礼品系统。我该怎么做呢

date = new Date();
        calendarG = new GregorianCalendar();
        calendarG.setTime(date);
   if(!prefs.contains("lastloginday"))
            prefs.putInteger("lastloginday", calendarG.get(Calendar.DAY_OF_MONTH));

        if (calendarG.get(Calendar.DAY_OF_MONTH) - 1 == prefs.getInteger("lastloginday")) {
            prefs.putInteger("lastloginday", calendarG.get(Calendar.DAY_OF_MONTH));
            prefs.putInteger("dailyCombo", prefs.getInteger("dailyCombo") + 1);
            prefs.putInteger("Coin", prefs.getInteger("Coin") + prefs.getInteger("dailyCombo") * 25);
        }else{
            prefs.putInteger("lastloginday", calendarG.get(Calendar.DAY_OF_MONTH));
        }

此代码在不同月份不可用。

您可以通过以下方式执行:

Preferences preferences=Gdx.app.getPreferences("MyPref");
String LAST_LOGIN_DAY="lastloginday";    

GregorianCalendar calendarG = new GregorianCalendar();
calendarG.setTime(new Date());


if(!preferences.contains(LAST_LOGIN_DAY)) {
    //first day in App
    preferences.putInteger(LAST_LOGIN_DAY, calendarG.get(Calendar.DAY_OF_YEAR));
    preferences.flush();
}

if(preferences.getInteger(LAST_LOGIN_DAY)-1==calendarG.get(Calendar.DAY_OF_YEAR)){
    //next loginday up to a year

    updateValue(preferences,calendarG);

}else{

      if(calendarG.get(Calendar.DAY_OF_YEAR)==1) {

            // check for the 1st day of the year

            boolean isLeap = calendarG.isLeapYear(calendarG.get(Calendar.YEAR));
            if (isLeap && preferences.getInteger(LAST_LOGIN_DAY)==366 ) {

               updateValue(preferences,calendarG);

            }else  if(preferences.getInteger(LAST_LOGIN_DAY)==365){
                updateValue(preferences,calendarG);

            }
            else
                preferences.putInteger(LAST_LOGIN_DAY,calendarG.get(Calendar.DAY_OF_YEAR));
        }
        else
            preferences.putInteger(LAST_LOGIN_DAY,calendarG.get(Calendar.DAY_OF_YEAR));

}
以下是更新方法:

public void updateValue(Preferences preferences,GregorianCalendar calendarG){

    preferences.putInteger(LAST_LOGIN_DAY,calendarG.get(Calendar.DAY_OF_YEAR));
    preferences.putInteger("dailyCombo", preferences.getInteger("dailyCombo",0) + 1);
    preferences.putInteger("Coin", preferences.getInteger("Coin",0) + preferences.getInteger("dailyCombo",0) * 25);

    preferences.flush();
}

如果有人掌握了偏好怎么办?@Sneh不幸的是,当时间设置改变时,游戏被黑客入侵。如果游戏离线,可以做什么?