Форум программистов, компьютерный форум, киберфорум
Наши страницы

Рисование пазлов, нужен совет - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Научиться программированию на Android http://www.cyberforum.ru/android-dev/thread571879.html
Хотелось бы научиться программированию на Android. Но я не знаю не какой язык программирования. Подскажите пожалуйста с чего мне начать, какую литературу искать, и где. Заранее благодарен.
Программирование Android CheckBox android Зравствуйте, поискал в интернете не нашел, как проверить CheckBox на Cheacked ? CheckBox.Cheaked <--- такого нету пишут Eclipce; Заранее спасибо) http://www.cyberforum.ru/android-dev/thread571779.html
Ищу устройство с полноценной поддержкой USB host Программирование Android
Всем привет. Для задачи коммуникации между android планшетом и неким внешним USB HID устройством написал java приложение. Отлаживался на нетбуке asus ( платформа x86 ). Все шикарно, все работало...
Tab вложенный в tab Программирование Android
Доброго времени суток, Натнулся на такую проблемку (и не наткнулся на её решение в интернете), есть потребность вложить TabActivity как элемент другую TabActivity, то есть чтобы по нажатию на...
Программирование Android Частота обновления экрана (FPS) на Canvas http://www.cyberforum.ru/android-dev/thread569960.html
Здравствуйте. Рисую на канве. Проверил частоту обновления экрана (FPS ) на 2 телефонах – один 1000 мегагерц другой 600 – совпадает, возникает предположение что фпс не зависит от процессора. Если...
Программирование Android Vk.com api audio.get +resonce Прошу о помощи мучаюсь уже неделю, в кратце, делаю запрос через vk api, запрос приходит успешно, но вот ответ обработать не знаю как. вот описание запроса... подробнее

Показать сообщение отдельно
kinderproc
0 / 0 / 0
Регистрация: 12.05.2012
Сообщений: 11

Рисование пазлов, нужен совет - Программирование Android

12.05.2012, 12:02. Просмотров 1296. Ответов 1
Метки (Все метки)

Здравствуйте. Начал изучать программирование с написания Паззлов - аналога обычных картонных. Нужен совет в каком направлении двигать булки. В данный момент реализовал рисование на канве кругов и их перетаскивание, выглядит это так:

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
public class GameWindow extends Activity{
    
    private GraphicsView myView;
    private int selDot = -1;
    private int imgInd;
    
    private class GraphicsView extends View{
        //Класс, реализущий перетаскиваемую точку
        private class Dot {
            float dotX, dotY;
            Paint dotPaint;
        }
                
        private Dot[] arrDots;
        private final int dflColor = Color.YELLOW;
        private int Rad = 20;
        private float initialX, initialY,
                      offsetX, offsetY;
        
        public GraphicsView(Context context) {
            super(context);
                                                
            //Рисуем пять точек с произвольными координатами
            Random rnd = new Random();
            int i;          
            arrDots = new Dot[5];
            for (i=0; i<5; i++){
                arrDots[i] = new Dot();
                arrDots[i].dotX = rnd.nextInt(400);
                arrDots[i].dotY = rnd.nextInt(400);
                arrDots[i].dotPaint = new Paint();
                arrDots[i].dotPaint.setColor(dflColor);
            }
            
            //Собственно обработчик перетаскивания точки
            setOnTouchListener(new OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                    switch (event.getAction()){
                       case MotionEvent.ACTION_DOWN:
                           float posX = event.getX();
                           float posY = event.getY();     
                              
                           for (int i = 0; i < 5; i++){
                               if (posX > (arrDots[i].dotX - Rad) &&
                                   posX < (arrDots[i].dotX + Rad) &&
                                   posY > (arrDots[i].dotY - Rad) &&
                                   posY < (arrDots[i].dotY + Rad)){
                                   initialX = arrDots[i].dotX;
                                   initialY = arrDots[i].dotY;
                                   offsetX = posX;
                                   offsetY = posY;
                                   arrDots[i].dotPaint.setColor(Color.CYAN);
                                   selDot = i;
                               }
                               else
                                   arrDots[i].dotPaint.setColor(dflColor);
                           }
                       break;
                       case MotionEvent.ACTION_MOVE:
                           if (selDot >= 0){                               
                               arrDots[selDot].dotX = event.getX() + 
                                                      initialX - offsetX;
                               arrDots[selDot].dotY = event.getY() + 
                                                      initialY - offsetY;
                           }
                       break;
                       case MotionEvent.ACTION_UP:
                           for (int i = 0; i < 5; i++)
                               arrDots[i].dotPaint.setColor(dflColor);
                           selDot = -1;
                       break;        
                       case MotionEvent.ACTION_CANCEL:
                       break;
                    }
                    return true;
                }
            });
        }
        
        //Перерисовываем точки на канве
        @Override
        public void onDraw(Canvas canvas){
            for (int i = 0; i < 5; i++)
                canvas.drawCircle(arrDots[i].dotX, arrDots[i].dotY, Rad,
                                  arrDots[i].dotPaint);
            invalidate();
        }
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
           
        myView = new GraphicsView(this);
        myView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                                                LayoutParams.FILL_PARENT));
        LinearLayout ll = new LinearLayout(this);
        ll.setOrientation(LinearLayout.VERTICAL);
        ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                                            LayoutParams.FILL_PARENT));
        ll.addView(myView);
        setContentView(ll);
    }
}
По всему этому имею несколько вопросов, просьба откликнуться действительно разбирающихся людей ))) Интересует даже не столько пример, сколько общий принцип реализации, т.е. в каком направлении копать.
1. Как вырезать из Bitmap-а кусок произвольной формы и реализовать их склеивание при соприкосновении? Я думаю делать это с помощью класса Path, но в гугле ничего конкретного не нашел, может плохо гуглил.
2. Никогда не работал с OpenGL, может быть с помощью нее можно сделать все проще?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru