Форум программистов, компьютерный форум CyberForum.ru

Сохранение и загрузка - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Чат/игра с записью сообщений/данных в БД http://www.cyberforum.ru/android-dev/thread1535559.html
Приветствую. Подскажите пожалуйста по такому вопросу, как реализовать чат (или например игру), которые будут отправлять данные на сервер через сокеты (сообщение или например количество золота), а сервер, в свою очередь, записывать эти данные в БД и при необходимости возвращать их клиенту (так же через сокеты). Сервер должен находиться в интернете на своем хостинге. При помощи каких...
Android Без интернета не работает распознавание речи в своем приложении Android 4.1.2. Без интернета не работает распознавание речи в своем приложении, хотя есть оффлайн-пакет и со стандартной клавиатуры вводится. В проекте пермишин только на "write_audio. В чем может быть дело? Весь функционал изображен на скрине. Для теста прикрепил проект. http://www.cyberforum.ru/android-dev/thread1535542.html
Как должен выглядеть путь к файлу? Android
Изучаю библиотеку com.github.alexbbb:android-upload-service:1.3.1 и столкнулся с такой ошибкой W/com.alexbbb.uploadservice.UploadService﹕ Error in uploadId custom-upload-id on attempt 2. Waiting 10s before next attempt java.io.FileNotFoundException: /media/external/images/media/27837: open failed: ENOENT (No such file or directory) at...
Android Как сделать что-бы при сдвиге WebView вверх,он залезал под TextView
Помогите,мне надо что-бы при сдвиге WebView вверх,он залезал под TextView а не на него,это возможно сделать не меняя местами элементы? Код main: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="top|center"...
Android Удалить первые 10 символов http://www.cyberforum.ru/android-dev/thread1535199.html
как можно удалить первые 10 символов из string переменной?
Android OpenGL ES определение цвета пикселя Подскажите пожалуйста, как можно средствами OpenGL ES определить цвет пикселя RGBA текстуры или экрана? подробнее

Показать сообщение отдельно
magicboy
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 25
22.09.2015, 13:56  [ТС]     Сохранение и загрузка
Прошу прощения за мою глупость и необразованность...но все таки помогите с написанием кода:

Это класс в котором у меня прописаны события всех кнопок игры:
Javascript
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
public class MainActivity extends Activity implements OnClickListener
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
 
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);       
        setContentView(R.layout.menu);
        Music.initialize(this);
        Music.menuPlay();
    }
 
    public void onClick(View v)
    {
        switch (v.getId())
        {
            case R.id.menu_help:setContentView(R.layout.help);
                break;
            case R.id.menu_new:Music.menuPause();
                startActivity(new Intent(MainActivity.this, GameActivity.class));
                break;
            case R.id.button_back_menu1:setContentView(R.layout.menu);
                break;
            case R.id.menu_info:setContentView(R.layout.info);
                break;
            case R.id.menu_exit:setContentView(R.layout.exit);
                break;
            case R.id.exit_yes:finish();
                break;
            case R.id.exit_no:setContentView(R.layout.menu);
                break;
            case R.id.info_back:setContentView(R.layout.menu);
                break;
        }
    }
 
    public void onPause()
    {
        super.onPause();
        Music.menuPause();
    }
}
23 строка обработка нажатия кнопки "Игра"
Вместо нее я прописываю переход на меню выбора уровня:
Javascript
1
2
case R.id.menu_new:setContentView(R.layout.load_lvl_menu);
                break;

load_lvl_menu.xml

XML
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
 
    <Button
        android:layout_height="wrap_content"
        android:text="1"
        android:layout_width="wrap_content"
        android:id="@+id/loadlvl1"
        android:onClick="onClick"/>
 
    <Button
        android:layout_height="wrap_content"
        android:text="2"
        android:layout_width="wrap_content"
        android:id="@+id/loadlvl2"
        android:onClick="onClick"/>
 
    <Button
        android:layout_height="wrap_content"
        android:text="3"
        android:layout_width="wrap_content"
        android:id="@+id/loadlvl3"
        android:onClick="onClick"/>
 
    <Button
        android:layout_height="wrap_content"
        android:text="4"
        android:layout_width="wrap_content"
        android:id="@+id/loadlvl4"
        android:onClick="onClick"/>
 
    <Button
        android:layout_height="wrap_content"
        android:text="5"
        android:layout_width="wrap_content"
        android:id="@+id/loadlvl5"
        android:onClick="onClick"/>
 
    <Button
        android:layout_height="wrap_content"
        android:text="6"
        android:layout_width="wrap_content"
        android:id="@+id/loadlvl6"
        android:onClick="onClick"/>
 
</LinearLayout>
Упомянутый в предыдущем активити класс обработки самой игры:
Javascript
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
public class GameActivity extends Activity implements View.OnTouchListener
{
    private GameThread gt;
 
    public boolean onTouch(View p1, MotionEvent p2)
    {
        switch (p1.getId())
        {
            case R.id.l_rotor:if (p2.getActionMasked() == MotionEvent.ACTION_DOWN) gt.ship.leftOn();
                if (p2.getActionMasked() == MotionEvent.ACTION_UP) gt.ship.leftOff();
                break;
            case R.id.r_rotor:if (p2.getActionMasked() == MotionEvent.ACTION_DOWN) gt.ship.rightOn();
                if (p2.getActionMasked() == MotionEvent.ACTION_UP) gt.ship.rightOff();
                break;
        }
        return true;
    }
 
 
 
    public void onCreate(Bundle savedInstance)
    {
        super.onCreate(savedInstance);
 
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);       
        setContentView(R.layout.game);
        SurfaceView sw=(SurfaceView)findViewById(R.id.game_surface);
        gt = new GameThread(getResources(), getWindowManager().getDefaultDisplay(), sw);
        Button b1=(Button)findViewById(R.id.l_rotor);
        Button b2=(Button)findViewById(R.id.r_rotor);
        b1.setOnTouchListener(this);
        b2.setOnTouchListener(this);
    }
 
    public void onPause()
    {
        super.onPause();
        gt.stopGame();
        Music.menuPlay();
        finish();
    }
 
}
И классы прорисовки лвл и обработки лвл:
Javascript
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
public class Level
{
    private int level;
    private LayerTiles map;
    private LayerSprite zone;
    private int[] cells={
        1,1,1,1,1,1,1,1,1,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,1,
        1,1,1,1,1,1,1,1,1,1
    };
    private int[] cells2={
        1,1,1,1,1,1,1,1,1,1,
        1,0,0,0,0,1,0,0,0,1,
        1,0,0,0,0,1,0,0,0,1,
        1,0,0,0,0,1,0,0,0,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,1,0,0,0,1,
        1,0,0,0,0,1,0,0,0,1,
        1,0,0,0,0,1,0,0,0,1,
        1,1,1,1,1,1,1,1,1,1
    };
    private int[] cells3={
        1,1,1,1,1,1,1,1,1,1,
        1,0,0,0,0,1,0,0,0,1,
        1,0,0,0,0,1,0,0,0,1,
        1,0,0,1,1,1,0,0,0,1,
        1,0,0,1,0,0,0,0,0,1,
        1,0,0,1,0,0,1,0,0,1,
        1,0,0,1,0,0,1,0,0,1,
        1,0,0,0,0,0,1,0,0,1,
        1,0,0,0,0,0,1,0,0,1,
        1,1,1,1,1,1,1,1,1,1
    };
    private int[] cells4={
        1,1,1,1,1,1,1,1,1,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,1,0,0,0,1,
        1,0,0,1,1,1,0,0,0,1,
        1,0,0,1,0,0,0,0,0,1,
        1,0,1,1,0,0,1,1,0,1,
        1,0,0,1,0,0,1,0,0,1,
        1,0,0,1,0,0,1,0,0,1,
        1,0,0,1,0,0,1,0,0,1,
        1,1,1,1,1,1,1,1,1,1
    };
    private int[] cells5={
        1,1,1,1,1,1,1,1,1,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,1,
        1,1,1,1,1,1,1,0,0,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,1,1,1,1,1,1,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,1,1,0,0,1,
        1,0,0,0,0,1,0,0,0,1,
        1,1,1,1,1,1,1,1,1,1
    };
    private int[] cells6={
        1,1,1,1,1,1,1,1,1,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,1,
        1,1,1,1,0,0,1,1,1,1,
        1,0,0,0,0,0,0,0,0,1,
        1,0,0,0,1,1,1,1,1,1,
        1,0,0,0,0,0,1,0,0,1,
        1,1,0,0,1,1,1,0,0,1,
        1,0,0,0,0,0,0,0,0,1,
        1,1,1,1,1,1,1,1,1,1
    };
    
 
 
 
    private Display d;
 
    public Level(Resources res, Display d)
    {
        this.d = d;
        level = 1;
        map = new LayerTiles(res, new int[]{R.drawable.tile}, cells, 10, 10);
        zone = new LayerSprite(R.drawable.zone, res);
    }
 
    public boolean collidesWith(LayerSprite ls)
    {
        return map.collidesWith(ls);
    }
 
    public boolean collidesZone(LayerSprite ls)
    {
        return zone.collidesWith(ls);
    }
 
    public void setLevel1()
    {
        level = 1;
        map.setCells(cells);
        map.setPosition((d.getWidth() / 2) - 150, (d.getHeight() / 2) - 150);
        zone.setPosition((d.getWidth() / 2) + 665, (d.getHeight() / 2) + 600);
    }
 
    public void nextLevel()
    {
        level++;
        switch (level)
        {
            case 2:map.setCells(cells2);
                break;  
            case 3:map.setCells(cells3);
                break;  
            case 4:map.setCells(cells4);
                break;  
            case 5:map.setCells(cells5);
                break;  
            case 6:map.setCells(cells6);
                break;  
        }
        map.setPosition((d.getWidth() / 2) - 150, (d.getHeight() / 2) - 150);
        zone.setPosition((d.getWidth() / 2) + 665, (d.getHeight() / 2) + 600);
    }   
 
    public void resetLevel()
    {
        map.setPosition((d.getWidth() / 2) - 150, (d.getHeight() / 2) - 150);
        zone.setPosition((d.getWidth() / 2) + 665, (d.getHeight() / 2) + 600);  
    }   
 
    public int getLevel()
    {
        return level;
    }
 
    public void move(int dx, int dy)
    {
        map.move(dx, dy);
        zone.move(dx, dy);
    }
 
    public void paint(Canvas c)
    {
        map.paint(c);
        zone.paint(c);
    }
 
}

Javascript
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
public class GameThread extends Thread implements SurfaceHolder.Callback
{
 
 
    private SurfaceHolder sh;
    private Level level;
    public Ship ship;
    private LayerSprite bg;
    private Display d;
    private boolean stopping;
 
    public GameThread(Resources res, Display d, SurfaceView sv)
    {
        this.d = d;
        level = new Level(res, d);
        ship = new Ship(res);
        bg = new LayerSprite(R.drawable.bggame, res);
        stopping = false;
        sv.getHolder().addCallback(this);
    }
 
    public void run()
    {
        level.setLevel1();
        ship.setPosition((d.getWidth() / 2) - 20, (d.getHeight() / 2) - 20);
        bg.move(-400, -200);
        while (!stopping)
        {
            try
            {
                Thread.sleep(30);
            }
            catch (Exception e)
            {}
            draw();
            update();
        }
        sh.removeCallback(this);
    }
 
    public void draw()
    {
        Canvas c=sh.lockCanvas();
        c.drawColor(Color.BLACK);
        bg.paint(c);
        level.paint(c);
        ship.paint(c);
        sh.unlockCanvasAndPost(c);
    }
 
    public void drawMessage(Canvas c, String message)
    {
        Paint p=new Paint();
        p.setColor(Color.WHITE);
        p.setTextSize(40);
        p.setTextAlign(Paint.Align.CENTER);
        c.drawText(message, d.getWidth() / 2, d.getHeight() / 2, p);
    }
 
    public void update()
    {
        ship.update();
        level.move(-(int)ship.getInertionX(), (int)ship.getInertionY());
//проверка столкновения с уровнем
        if (level.collidesWith(ship))
        {
            Music.explosePlay();
            level.resetLevel();
            ship.setPosition((d.getWidth() / 2) - 20, (d.getHeight() / 2) - 20);
            ship.resetInertionAll();
            Canvas c=sh.lockCanvas();
            drawMessage(c, "Разбился");
            sh.unlockCanvasAndPost(c);
            try
            {
                Thread.sleep(2000);
            }
            catch (Exception e)
            {}
        }
//проверка успешной стыковки
        if (level.collidesZone(ship))
        {
            level.nextLevel();
            ship.setPosition((d.getWidth() / 2) - 20, (d.getHeight() / 2) - 20);
            ship.resetInertionAll();    
            Canvas c=sh.lockCanvas();
            drawMessage(c, "Уровень " + (level.getLevel() - 1) + " пройден!");
            sh.unlockCanvasAndPost(c);
            try
            {
                Thread.sleep(2000);
            }
            catch (Exception e)
            {}
        }
//проверка прохождения 6 уровня
        if (level.getLevel() > 6)
        {
            Canvas c=sh.lockCanvas();
            drawMessage(c, "Игра пройдена!");
            sh.unlockCanvasAndPost(c);
            try
            {
                Thread.sleep(3000);
            }
            catch (Exception e)
            {}
            stopping = true;
        }
        if (level.getLevel() == 3) Music.menuPlay();
    }
 
 
 
    public void stopGame()
    {
        stopping = true;
    }
 
 
    public void surfaceCreated(SurfaceHolder sh)
    {
        this.sh = sh;
        start();
    }
 
    public void surfaceChanged(SurfaceHolder sh, int i1, int i2, int i3)
    {}
 
    public void surfaceDestroyed(SurfaceHolder sh)
    {}
 
 
 
}

Помогите с написанием кода...для меню выбора уровней
Еще раз прошу прощения за корявое изъяснение цели
 
Текущее время: 00:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru