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

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

Войти
Регистрация
Восстановить пароль
 
Ilnyr
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 15
#1

Работа с libgdx - Android

25.07.2016, 18:01. Просмотров 120. Ответов 0
Метки нет (Все метки)

Есть класс для пуль унаследованный от Actor c подключенным интерфейсом Poolable вот код этого класса

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
public class Bullet extends GameObj implements Pool.Poolable{
 
    public boolean alive;
    private Sprite strela;
    private Vector2 vector2;
    public int N;
 
     public Bullet(World world)  {
         super(world);
         this.N=Player.N;//определяет в какую сторону будет движение
         PolygonShape shape = new PolygonShape();
         shape.setAsBox(0.4f, 0.2f);
         CreateBody(shape, BodyDef.BodyType.DynamicBody);//создание актера
         body.setTransform(Box.player.getX(),Box.player.getY(),0);//расположение стрелы в точке выстрела
         strela = new Sprite(GameData.Strela);
    }
 
 
    public  void init(Vector2 vector){
        this.vector2=vector; //точка в которую должна полететь пуля
        alive=true;//состояние стрелs
        this.body.applyLinearImpulse(2*(vector2.x - body.getPosition().x), 2*vector2.y, body.getPosition().x, body.getPosition().y, true);
        }//создание движение к точке
   
 
    @Override
    public void act(float delta) {
            strela.setBounds(body.getPosition().x - 0.4f, body.getPosition().y - 0.2f, 0.8f, 0.4f);
            if((2*Box.stage.getCamera().position.x-body.getPosition().x<0)||
                    (Box.stage.getCamera().position.x-body.getPosition().x>GameData.ScreenWidth/2)){
 
                alive=false;
 
            }//проверка пули на выход за пределы камеры
    }
 
    @Override
    public void draw(Batch batch, float parentAlpha) {
         strela.draw(batch,parentAlpha);
    }
 
 
    @Override
    public void reset() {
        setPosition(0,0);
        alive = false;
        this.remove();
    }//сброс объекта
}
И главный класс в котором происходит создание пули
Java
1
2
3
4
Bullet item = bulletPool.obtain();
item.init(vector2);
activeBullets.add(item);
stage.addActor(item);//добавление актера в stage
И ее удаление если alive==false
Java
1
2
3
4
5
6
7
8
9
Bullet item;
       int len = activeBullets.size;
       for (int i = len; --i >= 0;) {
           item = activeBullets.get(i);
           if (item.alive == false) {
               activeBullets.removeIndex(i);
               bulletPool.free(item);
           }
       }
Проблема заключается в том что после того как пуля удаляется если попадает за пределы экрана,не происходит прорисовка пуль,хотя выстрел точно был.
Вот сами массивы
Java
1
2
3
4
5
6
7
8
private  Array<Bullet> activeBullets = new Array<Bullet>();
    private  Pool<Bullet> bulletPool = new Pool<Bullet>() {
        @Override
        protected Bullet newObject() {
            return new Bullet(world);
        }
 
    };
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2016, 18:01     Работа с libgdx
Посмотрите здесь:

LibGDX загрузка аудио Android
Не могу сделать простейшую Libgdx-игру, одна и та же ошибка вылетает Android
Android Libgdx AI
Android Splash на libgdx
Android Libgdx polygon
Libgdx или android studio для создания текстового симулятора Android
Libgdx. Задержка перед выполнением действия Android
Android LibGDX. TexturePacker. Не пакует текстуры
Android Столкновение в libgdx через overlaps
Компиляция игры, libGDX Android
Android Libgdx уроки посоветуйте
LibGDX вращение текстуры Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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