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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
evgen-20058
1 / 1 / 0
Регистрация: 20.04.2010
Сообщений: 36
#1

Виртульный склад. использование графики - Программирование Android

30.11.2012, 20:57. Просмотров 1303. Ответов 4
Метки нет (Все метки)

Здравствуйте!

Помогите пожалуйста в реализации приложения под Android.
Значит имеется склад, в нем имееются ящики, так же на складе есть работник который двигает эти ящики.
пользователь выступает в качестве наблюдателя.

вот что я уже имею
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
//GameView.java
 
package pinocio.sclad;
 
import android.util.AttributeSet;
import android.view.*;
import android.content.*;
import android.graphics.*;
 
public class GameView extends SurfaceView implements SurfaceHolder.Callback
{
    /**
     * Область рисования
     */
    private SurfaceHolder mSurfaceHolder;
    /**
     * Поток, рисующий в области
     */
    private GameManager mThread;
    
    /**
     * Конструктор
     * @param context
     * @param attrs
     */
    public GameView(Context context, AttributeSet attrs)
    {
        super(context, attrs);
 
        // подписываемся на события Surface
        mSurfaceHolder = getHolder();
        mSurfaceHolder.addCallback(this);
        mThread = new GameManager(mSurfaceHolder, context);
    }
 
    @Override
    /**
     * Изменение области рисования
     */
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
    {
        mThread.initPositions(height, width);
    }
 
    @Override
    /**
     * Создание области рисования
     */
    public void surfaceCreated(SurfaceHolder holder)
    {
        mThread.setRunning(true);
        mThread.start();
    }
 
    @Override
    /**
     * Уничтожение области рисования
     */
    public void surfaceDestroyed(SurfaceHolder holder)
    {
        boolean retry = true;
        mThread.setRunning(false);
        while (retry)
        {
            try
            {
                // ожидание завершение потока
                mThread.join();
                retry = false;
            }
            catch (InterruptedException e) { }
        }
    }
}
и собственно сам класс рисования.

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
//GameManager.java
 
package pinocio.sclad;
 
import android.util.AttributeSet;
import android.view.*;
import android.content.*;
import android.content.res.Resources;
import android.graphics.*;
import android.graphics.Paint.Style;
 
public class GameManager extends Thread
{
    private static final int FIELD_WIDTH = 300;
    private static final int FIELD_HEIGHT = 250;
 
   /** Область, на которой будем рисовать */
    private SurfaceHolder mSurfaceHolder;
 
    /** Состояние потока (выполняется или нет. Нужно, чтобы было удобнее прибивать поток, когда потребуется) */
    private boolean mRunning;
 
    /** Стили рисования */
    private Paint mPaint;
 
    /** Прямоугольник игрового поля */
    private Rect mField;
   
    /** Ресурсы приложения */
    private Resources mRes;
 
    /**
     * Инициализация положения объектов, в соответствии с размерами экрана
     * @param screenHeight Высота экрана
     * @param screenWidth Ширина экрана
     */
    
    public void initPositions(int screenHeight, int screenWidth)
    {
        int left = (screenWidth - FIELD_WIDTH) / 2;
        int top = (screenHeight - FIELD_HEIGHT) / 2;
 
        mField.set(left, top, left + FIELD_WIDTH, top + FIELD_HEIGHT);
    }
 
    /**
     * Конструктор
     * @param surfaceHolder Область рисования
     * @param context Контекст приложения
     */
    public GameManager(SurfaceHolder surfaceHolder, Context context)
    {
        mSurfaceHolder = surfaceHolder;
        mRunning = false;
 
        mPaint = new Paint();
        mPaint.setColor(Color.BLUE);
        mPaint.setStrokeWidth(2);
        mPaint.setStyle(Style.STROKE);
        mField = new Rect();
    }
 
    /**
     * Задание состояния потока
     * @param running
     */
    public void setRunning(boolean running)
    {
        mRunning = running;
    }
 
    @Override
    /** Действия, выполняемые в потоке */
    public void run()
    {
        while (mRunning)
        {
            Canvas canvas = null;
            try
            {
                // подготовка Canvas-а
                canvas = mSurfaceHolder.lockCanvas();
                synchronized (mSurfaceHolder)
                {
                    // собственно рисование
                    canvas.drawRect(mField, mPaint);
                }
            }
            catch (Exception e) { }
            finally
            {
                if (canvas != null)
                {
                    mSurfaceHolder.unlockCanvasAndPost(canvas);
                }
            }
        }
    }
}
теперь мне необходимо создать класс для ящика и работника, но я не могу понять как реализовать ихнее перемещение по складу.
а после создания класов их необходимо прорисовать в классе GameManager

Гуру программисты помогите чайнику ))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2012, 20:57     Виртульный склад. использование графики
Посмотрите здесь:

Как рисовать графики на Android? - Программирование Android
Как рисовать графики на андроид?То есть,делаю калькулятор на андроид, нужно создать поле для ввода самой функции например y=x+3, после...

проброс портов и виртульный сервер - Сетевое оборудование
У меня есть роутер Dlink DIR-615. В локальной сети есть ip 192.168.0.40 192.168.0.35 192.168.0.94 192.168.0.35 - это Windows...

Использование графики в Delphi - Delphi
Разработать программу для построения на экране графика функции Y=f(X). Вид фигуры и надписей на экране должен полностью соответствовать...

Использование графики в PHP4 - PHP
Я пишу такой скрипт <?php header('content-type: image/gif'); $image=imagecreate(200,200); imageGIF($image); ?>Потом открываю это...

Эффективное использование графики GDI+ - C#
Отрисовка в классе Graphics не очень эффективна, когда нужно нарисовать большое изображение или очень много объектов. Это и некоторые...

Использование графики. Нарисовать точку. - Delphi
Господа, только не смейтесь. Не найду как нарисовать точку. С линиями, квадратами, кругами etc разобался. MoveTo(x,y); LineTo ...

Использование графики. Нарисовать точку. - C++ Builder
Задал этот вопрос в Delphi, разобрался. А как в С++ Builder пишется? Господа, только не смейтесь. Не найду как нарисовать точку. ...

Использование цикла for для графики - Visual Basic
Приветствую. Дали задание изобразить рупор и что-то подобное на четырехгранную звезду методом circle с использованием оператора for. (В...

SFML. Использование классов и графики - SFML
Всем привет. Кто подскажет по использованию графики в классах и конкретно по классам? Ниже пример кода PLAYER(Texture &Image) ...

Создание игр на VB: использование графики и звуков - Visual Basic
Меня заинтересовала тема создания своих игр, поэтому у меня сразу возникли вопросы: 1. Возможно ли на VB 6.0 создать игру с неплохой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dajver
407 / 271 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
03.12.2012, 02:43     Виртульный склад. использование графики #2
http://dajver.blogspot.com/2012/01/a...rfaceview.html

начинай с основ, мои уроки (не спам)
evgen-20058
1 / 1 / 0
Регистрация: 20.04.2010
Сообщений: 36
03.12.2012, 03:02  [ТС]     Виртульный склад. использование графики #3
я посмотрел, очень много чего интересного, возьму на заметку. Спасибо.
только беда в том что по сроком поджимает, времени в том чтобы во всем разобраться очень мало....
dajver
407 / 271 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
03.12.2012, 14:39     Виртульный склад. использование графики #4
Цитата Сообщение от evgen-20058 Посмотреть сообщение
я посмотрел, очень много чего интересного, возьму на заметку. Спасибо.
только беда в том что по сроком поджимает, времени в том чтобы во всем разобраться очень мало....
тогда кинь сюда исходники, я посмотрю что можно сделать
evgen-20058
1 / 1 / 0
Регистрация: 20.04.2010
Сообщений: 36
03.12.2012, 15:38  [ТС]     Виртульный склад. использование графики #5
Буду очень признателен.
Вложения
Тип файла: rar sclad.rar (790.1 Кб, 24 просмотров)
Yandex
Объявления
03.12.2012, 15:38     Виртульный склад. использование графики
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru