Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2018, 21:49   #1
shlegel
Новичок
Джуниор
 
Регистрация: 18.01.2018
Сообщений: 3
По умолчанию Java получение данных из LinkedList

Привет, уважаемые форумчане. Пишу игру на Java. Столкнулся с такой проблемой, у меня есть LinkedList в котором хранится список координат, герой должен их последовательно получать и перемещаться по карте.
Вместо этого он сразу идет к последней в списке координате. Подскажите, пожалуйста, как сделать так, что бы герой получал первую координату доходил до нее, затем брал следующую и так до конца списка.
shlegel вне форума Ответить с цитированием
Старый 18.01.2018, 22:14   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Например так:
Код:
for(Point p:list){
  walk(p);
}
p51x вне форума Ответить с цитированием
Старый 18.01.2018, 22:38   #3
shlegel
Новичок
Джуниор
 
Регистрация: 18.01.2018
Сообщений: 3
По умолчанию

p51x, спасибо за ответ. Этот вариант я пробовал, но герой слишком быстро пробегает его. Я решил использовать:

Код:
private void moveMyActor(ActorT t) {
        MoveToAction moveAction = new MoveToAction();
        moveAction.setPosition(t.getX(), t.getY());
        moveAction.setDuration(5.0f);
        actorHero.addAction(moveAction);
    }

    private void newPath() {
       while (!myPath.isEmpty()) {
            temp = myPath.poll();
            moveMyActor(temp);
        }
    }
При этом он стазу же начинает движение к последней координате.
shlegel вне форума Ответить с цитированием
Старый 18.01.2018, 23:43   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Этот вариант я пробовал, но герой слишком быстро пробегает его.
Ну так добавьте задержку, где надо.

Цитата:
При этом он стазу же начинает движение к последней координате.
Ну так у вас логика хромает. Вы тупо просто набили иди туда, иди туда, ... а выполнять когда? Тем более там интерполяция скорее всего есть.
p51x вне форума Ответить с цитированием
Старый 19.01.2018, 11:57   #5
shlegel
Новичок
Джуниор
 
Регистрация: 18.01.2018
Сообщений: 3
По умолчанию

Решил следующим образом:

Код:
final ScheduledExecutorService ses = Executors.newSingleThreadScheduledExecutor();
        ses.scheduleWithFixedDelay(new Runnable() {
            @Override
            public void run() {
                if (!myPath.isEmpty()) {
                    tileTemp = myPath.poll();
                    moveMyActor(tileTemp);
                } else {
                    ses.shutdown();
                }
            }
        }, 0, 1, TimeUnit.SECONDS);
2 вариант:

Код:
final Timer timer = new Timer();
        final TimerTask task = new TimerTask() {
            @Override
            public void run() {
                if (!myPath.isEmpty()) {
                    tileTemp = myPath.poll();
                    moveMyActor(tileTemp);
                } else {
                    timer.cancel();
                }
            }
        };
        timer.schedule(task, 0, 1000);
    }
Может кому пригодится. p51x, спасибо за ответы.
shlegel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение информации с вебсервиса используя REST API - Java Kvitkaa Общие вопросы по Java, Java SE, Kotlin 1 01.12.2017 02:47
Получение данных от USB устройств - Java SE, usb4java Tsyklop Общие вопросы по Java, Java SE, Kotlin 1 19.06.2017 13:39
LinkedList viks1 Общие вопросы по Java, Java SE, Kotlin 3 16.12.2015 17:58
Получение данных (Java, Spring MVC) zhenya.ya Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 2 12.03.2012 14:33
получение данных из файла и запись этих данных в другой. Jurii77 Microsoft Office Excel 9 23.11.2011 09:42