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

Libgdx AI - Android

Восстановить пароль Регистрация
 
Nevermind_qqq
 Аватар для Nevermind_qqq
72 / 58 / 24
Регистрация: 25.06.2014
Сообщений: 357
01.03.2015, 18:10     Libgdx AI #1
Добрый день , кто нибудь пользовался данной вещью?
https://github.com/libgdx/gdx-ai/wiki
Просто кроме этой страницы нигде информации не нашел, а на ней только какие-то "тесты", а что они собой представляют и как воспользоваться ими как примером не понимаю. Возможно кто-нибудь сможет подкинут ьпару примеров? Заранее благодарен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
01.03.2015, 18:27     Libgdx AI #2
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
Nevermind_qqq
 Аватар для Nevermind_qqq
72 / 58 / 24
Регистрация: 25.06.2014
Сообщений: 357
01.03.2015, 20:17  [ТС]     Libgdx AI #3
YuraAAA, очень смешно
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
02.03.2015, 10:21     Libgdx AI #4
Nevermind_qqq, что смешного? На скриншоте посмотрите
Миниатюры
Libgdx AI  
Nevermind_qqq
 Аватар для Nevermind_qqq
72 / 58 / 24
Регистрация: 25.06.2014
Сообщений: 357
02.03.2015, 19:15  [ТС]     Libgdx AI #5
YuraAAA, я прочитал весь этот текст, я понимаю как работают эти алгоритмы, а вот как их классы использовать в своем коде не понимаю, т.к. примера практического нигде не нашел.
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
03.03.2015, 12:17     Libgdx AI #6
Nevermind_qqq, https://github.com/libgdx/libgdx/wik...l-Intelligence это смотрели?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2015, 14:44     Libgdx AI
Еще ссылки по теме:

Android LibGDX, не получается создать apk файл
Android Столкновение в libgdx через overlaps
Компиляция игры, libGDX Android
Android Libgdx уроки посоветуйте
LibGDX вращение текстуры Android

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

Или воспользуйтесь поиском по форуму:
Nevermind_qqq
 Аватар для Nevermind_qqq
72 / 58 / 24
Регистрация: 25.06.2014
Сообщений: 357
03.03.2015, 14:44  [ТС]     Libgdx AI #7
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;
    }
     
}
Yandex
Объявления
03.03.2015, 14:44     Libgdx AI
Ответ Создать тему
Опции темы

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