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

Создание врагов - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Не запускается php файл на сервере через WebWiew http://www.cyberforum.ru/android-dev/thread1771376.html
String web = "http://домен.ru/my/version.php?ver=1&serial=" + ver1; webView.loadUrl(web);Скрипт PHP не срабатывает, с компьютера - все отлично
Android MainActivity AsyncTask Добрый вечер. Ребята тут небольшая проблема. Мне нужно Заполнить NavigatorDrawer (из базы). Почему когда я пытаюсь в MainActivity получить данные через json с сервера выдает ошибку. http://www.cyberforum.ru/android-dev/thread1771173.html
Android Как указать стандартным галере или фото путь поиска картинок
Всем доброго. Вот такая загвоздка, в приложении нужно показать картинку которая находится где то на SD карте. Код Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); photoPickerIntent.setType("image/*"); Все отлично работает, показываются что я могу использовать Галерею или Фото. Кликаю на картинке, получаю ее Url, отображаю в своем активити. Только вот маленькая проблема,...
Jsoup парсинг сайта Android
Помогите пожалуйста. Пытаюсь получить названия книг с сайта livelib. Но он ничего не парсит. Все сайты парсит нормально а на этом не получается . public class NewsFragment extends Fragment { public Elements title; public ArrayList<String> titleList = new ArrayList<String>(); private ArrayAdapter<String> adapter; private ListView lv; private TextView tv;
Android Что-то случилось с Android Studio http://www.cyberforum.ru/android-dev/thread1770884.html
что то слетело видимо. sdk? библиотеки? нужно восстановить с минимальным скачиванием с инета, ибо инет деревенский, то бишь переустановить sdk не пойдет)
Android SerachView не editable SearchView при стандартном использовании и при использовании бибилиотки MaterialSearchView при нажати на лупу пявляется hint, но редактировать невозможно, каретка не появляется, клавиатура не выдвигается. protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.AppTheme); super.onCreate(savedInstanceState); setContentView(R.layout.list_friends); ... подробнее

Показать сообщение отдельно
TonyBicbaev
 Аватар для TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 123

Создание врагов - Android

27.06.2016, 09:15. Просмотров 141. Ответов 3
Метки (Все метки)

Привет есть вот такой класс, работаю в андроид студио, пытаюсь создать большое количество врагов.
Но отрисовывает только одного в методе onDraw, как бы при удаление добавляю нового и так он будет один до бесконечности бегать.
В общем поставил логи, в методо run() вообще не заходит, по сути этот метод добавляет новых врагов.
Может с потоками как то не так намутил подскажите мб что


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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
public class GameView extends SurfaceView implements Runnable {
    /**
     * Объект класса GameLoopThread
     */
    private GameThread mThread;
    private List<Enemy> enemy = new ArrayList<Enemy>();
    Bitmap enemies;
    private Thread thred = new Thread(this);
    
 
 
    // How long should each frame last
 
    /**
     * Переменная запускающая поток рисования
     */
    private boolean running = false;
    private boolean go = false;
 
 
    //-------------Start of GameThread--------------------------------------------------\\
 
    public class GameThread extends Thread {
        /**
         * Объект класса
         */
        private GameView view;
 
        /**
         * Конструктор класса
         */
        public GameThread(GameView view) {
            this.view = view;
 
 
        }
 
        /**
         * Задание состояния потока
         */
        public void setRunning(boolean run) {
            running = run;
        }
 
        /**
         * Действия, выполняемые в потоке
         */
        public void run() {
            while (running) {
                Canvas canvas = null;
                try {
                    // подготовка Canvas-а
                    canvas = view.getHolder().lockCanvas();
                    synchronized (view.getHolder()) {
                        // собственно рисование
                        //   view.onDraw(canvas);
 
 
                        onDraw(canvas);
 
                    }
                } catch (Exception e) {
                    Log.e("c", "c =");
                } finally {
                    if (canvas != null) {
                        view.getHolder().unlockCanvasAndPost(canvas);
                    }
                }
            }
        }
    
    }
 
    //-------------End of GameThread--------------------------------------------------\\
 
 
    public GameView(Context context) {
        super(context);
 
        mThread = new GameThread(this);
 
 
        /*Рисуем все наши объекты и все все все*/
        getHolder().addCallback(new SurfaceHolder.Callback() {
            /*** Уничтожение области рисования */
            public void surfaceDestroyed(SurfaceHolder holder) {
                boolean retry = true;
                mThread.setRunning(false);
                while (retry) {
                    try {
                        // ожидание завершение потока
                        mThread.join();
                        retry = false;
 
                    } catch (InterruptedException e) {
                        Log.e("b", "b =");
                    }
                }
            }
 
            /** Создание области рисования */
            public void surfaceCreated(SurfaceHolder holder) {
                mThread.setRunning(true);
                mThread.start();
 
 
 
            }
 
            /** Изменение области рисования */
            public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
 
            }
        });
        enemies = BitmapFactory.decodeResource(getResources(), R.drawable.cat);
        enemies = Bitmap.createScaledBitmap(enemies, 200 * 6, 110, false);
        enemy.add(new Enemy(this, enemies));
 
 
    }
 
 
    /**
     * Функция рисующая все спрайты и фон
     */
    protected void onDraw(Canvas canvas) {
        canvas.drawColor(Color.WHITE);
 
        Iterator<Enemy> i = enemy.iterator();
        Random rnd = new Random();
        while (i.hasNext()) {
 
            Enemy e =  i.next();
            if (e.x >= 200) {
 
              e.onDraw(canvas);
 
            } else {
                i.remove();
                enemy.add(new Enemy(this, enemies)); 
 
            }
 
        }
 
    }
 
 
 
 
    @Override
    public void run() {
        Log.e("a", "a =");
        while (true) {
            Random rnd = new Random();
            try {
                Log.e("a1", "1a =");
                Thread.sleep(rnd.nextInt(2000));
                
                enemy.add(new Enemy(this, enemies));
            } catch (InterruptedException e) {
                Log.e("2a", "a2 =");
                e.printStackTrace();
            }
        }
    }
 
}
класс Enemy на всякий
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
 /**Х и У коорданаты*/
    public int x;
    public int y;
    private int currentFrame = 0;
    private int frameCount = 6;
    private long lastFrameChangeTime = 0;
    Paint paint;
    private Rect frameToDraw = new Rect(
            0,
           0,
            200,
            110);
    RectF whereToDraw = new RectF(
            10, 0,
            10 + 200,
            110);
    private int frameLengthInMilliseconds = 100;
    /**Скорость*/
    public int speed;
 
    /**Выосота и ширина спрайта*/
    public int width;
    public int height;
 
    public GameView gameView;
    public Bitmap bmp;
    public Bitmap bmp1;
    Matrix flipper = new Matrix();
 
    /**Конструктор класса*/
    public Enemy(GameView gameView, Bitmap bmp){
        this.gameView = gameView;
        this.bmp = bmp;
 
        Random rnd = new Random();
        this.x = 900;
        this.y = rnd.nextInt(300);
        this.speed = 8;
        paint = new Paint();
        this.width = 9;
        this.height = 8;
        flipper.preScale(-1, 1);
    }
 
    public void update(){
 
        x -= speed;
 
 
 
        whereToDraw.set((int)x,
                (int) y,
                (int)x + 200,
                (int) y + 110);
 
        getCurrentFrame();
    }
 
    public void onDraw(Canvas c){
        update();
 
        c.drawBitmap(bmp,frameToDraw,whereToDraw, paint);
 
       // c.drawBitmap(bmp, x, y, null);
    }
    public  int getX()
    {
        return x;
    }
    public void setgetX(int x)
    {
        this.x = x;
    }
    public void getCurrentFrame() {
 
        long time = System.currentTimeMillis();
     
        if (time > lastFrameChangeTime + frameLengthInMilliseconds) {
            lastFrameChangeTime = time;
            currentFrame++;
            if (currentFrame >= frameCount) {
 
                currentFrame = 0;
            }
        }
       
        //update the left and right values of the source of
        //the next frame on the spritesheet
        frameToDraw.left = currentFrame * 200;
        frameToDraw.right = frameToDraw.left + 200;
 
 
    }
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru