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

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

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

Работа с libgdx - Программирование Android

25.07.2016, 18:01. Просмотров 265. Ответов 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);
        }
 
    };
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2016, 18:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с libgdx (Программирование Android):

Libgdx AI - Программирование Android
Добрый день , кто нибудь пользовался данной вещью? https://github.com/libgdx/gdx-ai/wiki Просто кроме этой страницы нигде информации...

Libgdx polygon - Программирование Android
Добрый день, возникла следующая проблема : создаю объект класса Polygon (com.badlogic.gdx.math.Polygon) , поворачиваю его, рисую: poly...

SQLite и libGDX - Программирование Android
Здраствуйте! Программирую потихоньку игры на либе, так чисто для себя. Тут пришла в голову идея сделать классную игру, расписал все на...

Splash на libgdx - Программирование Android
Всем привет есть 2 атласа 2048x2048 на андроиде 4.2 и выше, работает все отлично, все что ниже версией ошибка, причем инициализации....

LibGDX вращение текстуры - Программирование Android
Здравствуйте, есть ли в llibGDX какой-нибудь способ повернуть текстуру кроме обычного draw, он не устраивает, потому что поворот текстуры...

Нужен ли мне LibGDX? - Программирование Android
Уважаемые программисты, подскажите, пожалуйста, мне ответ на следующий вопрос: - Я хочу написать очень простую игру (для себя... с целью...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2016, 18:01
Привет! Вот еще темы с ответами:

Компиляция игры, libGDX - Программирование Android
Здравствуйте. Помогите скомпилировать проект. Да, странная просьба) Я так понял, компилировать нужно в Andriod Studio. Игра написана с...

LibGDX загрузка аудио - Программирование Android
Ни как не получается загрузить музыку. В папку assets помещаю drop.wav rain.mp3 в методе create делаю так Sound dropSound; Music...

Libgdx уроки посоветуйте - Программирование Android
Привет! Посоветуйте уроки по LibGDX плиз. В гугле на первом месте сайт - http://suvitruf.ru/libgdx/ Он норм? Может что то еще можно...

Столкновение в libgdx через overlaps - Программирование Android
Есть два списка Rectangle экземпляров. Мне нужно проверить пересечение через if (bullet.overlaps(enemyK) и удалить их оба. С одним объектом...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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