Аватар для Nevermind_qqq
73 / 59 / 41
Регистрация: 25.06.2014
Сообщений: 360

Libgdx AI

01.03.2015, 18:10. Показов 4500. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день , кто нибудь пользовался данной вещью?
https://github.com/libgdx/gdx-ai/wiki
Просто кроме этой страницы нигде информации не нашел, а на ней только какие-то "тесты", а что они собой представляют и как воспользоваться ими как примером не понимаю. Возможно кто-нибудь сможет подкинут ьпару примеров? Заранее благодарен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.03.2015, 18:10
Ответы с готовыми решениями:

Libgdx 3d
Не могу создать джойстик для управление камерой. Подскажите пожалуйста как сделать джойстик?

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

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

6
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
01.03.2015, 18:27
Nevermind_qqq, справа меню на этой странице:

Table of Contents

Home
Getting started with gdxAI
Infrastructure
Message Handling
Scheduling
Movement AI
Steering Behaviors
Formation Motion
Pathfinding
Pathfinding API
A*: A Little Bit of Theory
Indexed A*
Hierarchical Pathfinding
Path Smoothing
Decision Making
State Machine
Behavior Trees
0
 Аватар для Nevermind_qqq
73 / 59 / 41
Регистрация: 25.06.2014
Сообщений: 360
01.03.2015, 20:17  [ТС]
YuraAAA, очень смешно
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
02.03.2015, 10:21
Nevermind_qqq, что смешного? На скриншоте посмотрите
Миниатюры
Libgdx AI  
0
 Аватар для Nevermind_qqq
73 / 59 / 41
Регистрация: 25.06.2014
Сообщений: 360
02.03.2015, 19:15  [ТС]
YuraAAA, я прочитал весь этот текст, я понимаю как работают эти алгоритмы, а вот как их классы использовать в своем коде не понимаю, т.к. примера практического нигде не нашел.
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
03.03.2015, 12:17
Nevermind_qqq, https://github.com/libgdx/libg... telligence это смотрели?
0
 Аватар для Nevermind_qqq
73 / 59 / 41
Регистрация: 25.06.2014
Сообщений: 360
03.03.2015, 14:44  [ТС]
YuraAAA, конечно, просто нашел там только один пример кода: грубо говоря "как добавить implements Steerable", но реализовать тот же метод Seek это как-то не помогает

Добавлено через 1 час 43 минуты
YuraAAA, следуя примеру написал следующее, однако
Java
1
Gdx.app.log("",steering.linear.x+" "+steering.linear.y);
выдает все время "0.0 0.0"
вот код:
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
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.ai.steer.Steerable;
import com.badlogic.gdx.ai.steer.SteeringAcceleration;
import com.badlogic.gdx.ai.steer.SteeringBehavior;
import com.badlogic.gdx.ai.steer.behaviors.Seek;
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.Body;
 
public class Test extends GameActor  implements Steerable<Vector2> {
 
        private static final SteeringAcceleration<Vector2> steeringOutput = new SteeringAcceleration<Vector2>(new Vector2());
    float maxLinearSpeed;
    float maxLinearAcceleration;
    float maxAngularSpeed;
    float maxAngularAcceleration;
    Vector2 position;
    float orientation;
    Vector2 linearVelocity;
    float angularVelocity;
    float maxSpeed;
    boolean independentFacing;
    SteeringBehavior<Vector2> steeringBehavior;
 
    public Test(Vector2 position) {
                super(null);
        this.position = position;
    }
 
    public Test(Body body,Vector2 position) {
                super(body);
        this.position = new Vector2(100,100);
        this.linearVelocity= new Vector2(1,1);;
        this.angularVelocity=3;
        this.maxSpeed=3;
        this.independentFacing=false;
        steeringBehavior = new Seek<Vector2>(this,new Test(new Vector2(500,400)));
        }
 
    public void act(float delta) {
        if (steeringBehavior != null) {
            steeringBehavior.calculateSteering(steeringOutput);
            applySteering(steeringOutput, delta);
        }
    }
 
    private void applySteering(SteeringAcceleration<Vector2> steering,
            float time) {
        Gdx.app.log("",steering.linear.x+" "+steering.linear.y);
        this.position.mulAdd(linearVelocity, time);
        this.linearVelocity.mulAdd(steering.linear, time).limit(
                this.getMaxLinearSpeed());
        if (independentFacing) {
            this.orientation += angularVelocity * time;
            this.angularVelocity += steering.angular * time;
        } else {
            float newOrientation = calculateOrientationFromLinearVelocity(this);
            if (newOrientation != this.orientation) {
                this.angularVelocity = (newOrientation - this.orientation)* time;
                this.orientation = newOrientation;
            }
        }
    }
    
     public static float calculateOrientationFromLinearVelocity (Steerable<Vector2> character) {
            if (character.getLinearVelocity().isZero(MathUtils.FLOAT_ROUNDING_ERROR))
                return character.getOrientation();
            return character.vectorToAngle(character.getLinearVelocity());
        }
 
    @Override
    public float getMaxLinearSpeed() {
        return maxLinearSpeed;
    }
    @Override
    public void setMaxLinearSpeed(float maxLinearSpeed) {
        this.maxLinearSpeed=maxLinearSpeed;
    }
    @Override
    public float getMaxLinearAcceleration() {
        return maxLinearAcceleration;
    }
    @Override
    public void setMaxLinearAcceleration(float maxLinearAcceleration) {
        this.maxLinearAcceleration=maxLinearAcceleration;
    }
    @Override
    public float getMaxAngularSpeed() {
        return maxAngularSpeed;
    }
    @Override
    public void setMaxAngularSpeed(float maxAngularSpeed) {
        this.maxAngularSpeed=maxAngularSpeed;
    }
    @Override
    public float getMaxAngularAcceleration() {
        return maxAngularAcceleration;
    }
    @Override
    public void setMaxAngularAcceleration(float maxAngularAcceleration) {
        this.maxAngularAcceleration=maxAngularAcceleration;
    }
    @Override
    public Vector2 getPosition() {
        return position;
    }
    @Override
    public float getOrientation() {
        return orientation;
    }
    @Override
    public Vector2 getLinearVelocity() {
        return linearVelocity;
    }
    @Override
    public float getAngularVelocity() {
        return angularVelocity;
    }
    @Override
    public float getBoundingRadius() {
        return 0;
    }
    @Override
    public boolean isTagged() {
        return false;
    }
    @Override
    public void setTagged(boolean tagged) {
        
    }
    @Override
    public Vector2 newVector() {
        return null;
    }
    @Override
    public float vectorToAngle (Vector2 vector) {
        return (float)Math.atan2(-vector.x, vector.y);
    }
 
    @Override
    public Vector2 angleToVector (Vector2 outVector, float angle) {
        outVector.x = -(float)Math.sin(angle);
        outVector.y = (float)Math.cos(angle);
        return outVector;
    }
     
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2015, 14:44
Помогаю со студенческими работами здесь

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

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

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

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

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


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

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

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru