Я пытаюсь включить в игру функцию сохранения / загрузки, чтобы я мог сохранить позицию и инвентарь игрока, затем при нажатии кнопки загрузки он поместит их туда, где они были раньше, и затем они смогут продолжить игру , но у меня проблема в том, что при нажатии кнопки загрузки они переводятся в начало игры, а нажатие любой кнопки не делает ничего, кроме кнопки, чтобы вернуть их в главное меню. Кнопка загрузки, переменные "pos" и "inv" относятся к одному действию, а кнопка сохранения, "POSITION" и "INVENTORY" - к другому. В чем, кажется, проблема?
Изменить: на самом деле происходит какая-то другая проблема, тогда при сохранении 3 комнаты, скажем, комната 2, и загрузки вы попадете в комнату 1, и если вы go восток, вы прыгнете прямо в комнату 3, но затем сможете go запад в комнату 2 как обычно. При сохранении в комнате 3 вы не можете переехать в комнату 1.
//Main Activity
public static final String INVENTORY = "inventory";
public static final String POSITION = "position";
SharedPreferences sharedPrefs;
thePlayer.setPlayerPos ( pos );
protected void onCreate(Bundle savedInstanceState)
{
Bundle extras = getIntent().getExtras();
if (extras != null)
{
// load
String value = extras.getString("pos");
int pos = Integer. parseInt(value);
thePlayer.setPlayerPos( pos );
}
else
{
thePlayer.setPlayerPos( 0 );
}
}
public void saveData()
{
sharedPrefs = getSharedPreferences(MY_PREFS, MODE_PRIVATE);
SharedPreferences.Editor edit = sharedPrefs.edit();
edit.putInt(POSITION, thePlayer.getPlayerPos());
edit.putString(INVENTORY, thePlayer.getInventory());
edit.commit();
Toast.makeText(this, "Data Saved", Toast.LENGTH_SHORT) .show();
}
//Below here is the "MainMenu Activity"
public static String inv;
public static int pos;
SharedPreferences sharedPrefs;
public void loadData()
{
sharedPrefs = getSharedPreferences(MY_PREFS, MODE_PRIVATE );
inv = sharedPrefs.getString(INVENTORY, "NOTHING");
pos = sharedPrefs.getInt(POSITION, 0);
Intent intent = new Intent(MainMenuActivity.this, MainActivity.class);
intent.putExtra("pos", "" + pos);
startActivity(intent);
}