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不幸的是,当时间设置改变时,游戏被黑客入侵。如果游戏离线,可以做什么?