Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
EduardSakhnovic
0 / 0 / 1
Регистрация: 10.04.2015
Сообщений: 69
08.08.2015, 18:29  [ТС] 0

Поставить игру на паузу и продолжить с этого же места

08.08.2015, 18:29. Просмотров 951. Ответов 19
Метки (Все метки)

Ответ

I think I can use for it also onSaveInstanceState and onRestore.
It sounds be useful for my game

Добавлено через 1 час 49 минут
Цитата Сообщение от PaDyra Посмотреть сообщение
SharedPreferences
не знаю подойдет ли.У меня игра составлена из кучи классов,лежащих в разных пакетах.
Вся логика игры в классе ПакменГейм,и все кнопки в ГеймАктивити.
Как сохранить класс ПакменГейм состоящий из 2000 строчек я тут особо не знаю.

Добавлено через 5 часов 27 минут
Цитата Сообщение от EduardSakhnovic Посмотреть сообщение
SharedPreferences
я сейчас использовал SharedPreferences ,только одно не понятно
когда я нажимаю на Continue,я хочу,чтобы на игровом поле появлялось то кол-во точек,которое осталось после того как я вышел из активити.
может мне в классе в котором игра описана,еще какую нибудь вспомогательную функцию написать.
вот код

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
public  class GameActivity extends Activity implements OnClickListener{
 
    private PacmanGame game;
    private GameView gameView;
    private SharedPreferences sPref;
    final String SAVED_GAME="saved_game";
    private Pacman pacman;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        PacmanGame game = initGame();
        initGameView(game);
        initMainView();
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
    }
 
    @Override
    public void onResume() {
        super.onResume();
        game.resume();
    }
 
    @Override
    public void onPause() {
        game.pause();
        super.onPause();
    }
    @Override
    public void onDestroy(){
        saveGame();
        super.onDestroy();
 
 
    }
 
    private void initMainView() {
        setContentView(R.layout.activity_game);
 
        View newGameButton = findViewById(R.id.new_game_button);
        newGameButton.setOnClickListener(this);
        View continueButton = findViewById(R.id.continue_button);
        continueButton.setOnClickListener(this);
        View aboutButton=findViewById(R.id.about_button);
        aboutButton.setOnClickListener(this);
        View exitButton = findViewById(R.id.exit_button);
        exitButton.setOnClickListener(this);
 
    }
 
    private void initGameView(PacmanGame game) {
        gameView = new GameView(this);
        game.view = gameView;
        gameView.game = game;
    }
 
    private PacmanGame initGame() {
        game = new PacmanGame(this);
 
 
        game.init();
 
        return game;
    }
    private void transitionToGameView() {
        setContentView(gameView);
        gameView.setFocusable(true);
    }
    void saveGame(){
        sPref=getPreferences(MODE_PRIVATE);
        Editor ed=sPref.edit();
        System.out.println("Dots remaining >> "+game.getDotsRemaining());
        ed.putInt(SAVED_GAME,game.getDotsRemaining());
        ed.commit();
        Toast.makeText(this,"Game saved",Toast.LENGTH_SHORT).show();
    }
   void loadGame(){
      sPref=getPreferences(MODE_PRIVATE);
      int savedGame=sPref.getInt(SAVED_GAME,8);
      game.setDotsRemaining(savedGame);
      game.startNewGame();
    }
    @Override
    public void onClick(View v) {
        Intent intent;
        switch (v.getId()) {
            case R.id.new_game_button:
                transitionToGameView();
               game.startNewGame();
                break;
            case R.id.continue_button:
                transitionToGameView();
                loadGame();
                break;
            case R.id.about_button:
                intent=new Intent(this,AboutActivity.class);
                startActivityForResult(intent, RequestCode.REQUEST_CODE_ABOUT);
                break;
            case R.id.exit_button:
                finish();
                break;
        }
 
    }
 
 
}
Да.И если в меню нажимаю на кнопку финиш,выскакивает ошибка,так как сохранить игру я прописал в он дестрой,и эти кейсы хотят чтобы там тоже сoхранение игры было.Как убрать эту ошибку

Добавлено через 1 час 50 минут
Я сохранил текущее состояние игры при помощи SharedPreferences.Только,когда я ее начинаю заново,кол-во набранных очков онулируется.Что еще надо доделатть,чтобы при нажатии на продолжить,показывалось то кол-во очков,что было перед выходом из активити?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package es.eduards.pacman;
 
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.media.AudioManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.widget.Toast;
 
import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
 
import es.eduards.pacman.pcmangame.Pacman;
import es.eduards.pacman.pcmangame.Score;
import es.eduards.pacman.util.RequestCode;
 
 
public  class GameActivity extends Activity implements OnClickListener{
 
    private PacmanGame game;
    private Score score;
    private GameView gameView;
    private SharedPreferences sPref;
    final String SAVED_GAME="saved_game";
    private Pacman pacman;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        PacmanGame game = initGame();
        initGameView(game);
        initMainView();
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
    }
 
    @Override
    public void onResume() {
        super.onResume();
        game.resume();
    }
 
    @Override
    public void onPause() {
        game.pause();
        super.onPause();
    }
    @Override
    public void onDestroy(){
       saveGame();
        super.onDestroy();
 
 
    }
 
    private void initMainView() {
        setContentView(R.layout.activity_game);
 
        View newGameButton = findViewById(R.id.new_game_button);
        newGameButton.setOnClickListener(this);
        View continueButton = findViewById(R.id.continue_button);
        continueButton.setOnClickListener(this);
        View aboutButton=findViewById(R.id.about_button);
        aboutButton.setOnClickListener(this);
        View exitButton = findViewById(R.id.exit_button);
        exitButton.setOnClickListener(this);
 
    }
 
    private void initGameView(PacmanGame game) {
        gameView = new GameView(this);
        game.view = gameView;
        gameView.game = game;
    }
 
    private PacmanGame initGame() {
        game = new PacmanGame(this);
 
 
        game.init();
 
        return game;
    }
    private void transitionToGameView() {
        setContentView(gameView);
        gameView.setFocusable(true);
    }
    void saveGame(){
        sPref=getPreferences(MODE_PRIVATE);
        Editor ed=sPref.edit();
        System.out.println("Score >> "+game.getScore());//for debug only
        ed.putLong(SAVED_GAME, game.getScore());
        ed.commit();
        Toast.makeText(this,"Game saved",Toast.LENGTH_SHORT).show();//for debug only
    }
   void loadGame(){
      sPref=getPreferences(MODE_PRIVATE);
      long savedScore=sPref.getLong(SAVED_GAME, 8);
      game.setScore(savedScore);
 
       System.out.println("Score saved >> "+game.getScore());//for debug only
       Toast.makeText(this,"Game loaded",Toast.LENGTH_SHORT).show();//for debug only
        game.startNewGame();
    }
    @Override
    public void onClick(View v) {
        Intent intent;
        switch (v.getId()) {
            case R.id.new_game_button:
                transitionToGameView();
                 game.startNewGame();
                break;
 
            case R.id.continue_button:
                transitionToGameView();
                loadGame();
                break;
            case R.id.about_button:
               intent=new Intent(this,AboutActivity.class);
                startActivityForResult(intent, RequestCode.REQUEST_CODE_ABOUT);
                break;
            case R.id.exit_button:
 
                finish();
                break;
        }
 
    }
 
 
}


Вернуться к обсуждению:
Поставить игру на паузу и продолжить с этого же места
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2015, 18:29
Готовые ответы и решения:

Как поставить поставить AsyncTask на паузу?
У меня есть некоторая проблемка в приложении, нужно поставить AsyncTask на...

Как продолжить выполнение кода с другого места
Как сделать так чтобы при определённом условие выполнение кода продолжалось не...

Как поставить программу на паузу?
Можно как то остановить выполнение программы C++ на пол секунды? И затем...

Озвучка.Как поставить паузу?
Мне нужно создать калькулятор и озвучить его. Калькулятор у меня есть и озвучка...

Приостановить действие цикла а при условии продолжить с места остановки
Цикл while. Подскажите как сделать, чтобы при одном условии останавливался, а...

19
Другие темы раздела
Программирование Android Красный R http://www.cyberforum.ru/android-dev/thread1508996.html
Приветствую. Подскажите, что нужно импортировать, что бы R в строке setContentView(R.layout.main); перестал краснеть? всю голову уже сломал.
Программирование Android Приложение выдаёт ошибку после removeAllViews() Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Приложение выдаёт ошибку и закрывается, после следующего отрывка кода: Button btn1 = new Button (this); RelativeLayout rl =... http://www.cyberforum.ru/android-dev/thread1508986.html
Программирование Android Как после удаления view компонентов (removeAllViews) вернуть их?
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Допустим я удалил все view компоненты приложение через RelativeLayout.removeAllViews(); Но как мне вернуть их обратно? С теми же id...
Программирование Android Сетка элементов с размером по экрану
Мне нужно чтото типа GridView только без ручного setNumColumns(). Элементы помещенные внутрь должны занимать горизонтально весть экран не зависимо от ориентации и размера, а в случае если не...
Программирование Android Как восстановить историю сообщений в Jabbere? http://www.cyberforum.ru/android-dev/thread1508856.html
Как восстановить историю сообщений в Jabbere? Или может на сервере её как-нибудь можно посмотреть? Подробнее, если можно.
Программирование Android Подключение темы из Support Library Здравствуйте! Решил переделать дизайн своего приложение под material. С трудом подключил библиотеку(через project structure). После этого смог наследоваться от классов AppCompatActivity, но не могу... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru