Intereting Posts
Не удается отменить диалог с помощью пользовательских кнопок Как изменить шрифт ящика для навигации? Android: Каково имя папки файлов jar (LIB или LIBS)? Что инициирует вещание BluetoothDevice.ACTION_ACL? Как добавить атрибуты CardView в тему приложения? Как создать активность и службу Android, которые используют отдельные процессы Как достичь google плюс функции входа в систему на собственной кнопке в Android Google AdMob "мы постараемся не показывать это объявление снова" Ошибка компиляции AAPT2: неверный размер на Android 3.0 Canary 1 в Windows In-App Billing: инвентаризация не правильная; Снова закупает пользователя NullPointerException при использовании RelativeLayout как пользовательский InfoWindow Создайте файл PKCS # 12 с самозаверяющим сертификатом через OpenSSL в Windows для моего приложения для Android Андроидная студия 0.4.2: ошибка сбоя проекта Gradle Как предоставить посетителям автономный доступ к данным CouchDB на мобильном сайте? Android Button или TextView Border программно, не используя метод setBackgroundDrawable

JBox2d – world.getBodyList () переходит в бесконечный цикл

Я пытаюсь создать класс, который бы нарисовал объекты моего мира JBox2d на холсте.

При обновлении я звоню

render.draw(canvas,world); 

Который передает мир и холст классу рисования, который, как предполагается, будет проходить через объекты мира и втягивать их в холст.

 public void draw(Canvas canvas, World world) { canvas.drawColor(0xFF6699FF); for ( Body b = world.getBodyList(); b!=null; b.getNext() ) { Log.e("xy", String.valueOf( b.getPosition().x )+" "+String.valueOf( b.getPosition().y ) ); } } 

Но, похоже, он переходит в бесконечный цикл, кнопка «Назад» не работает, тогда она говорит «не отвечает» и предлагает принудительно закрыть.

Любые идеи, каков правильный способ циклического перемещения тел в этом случае?

Благодаря!

    Как уже упоминалось в моем комментарии, цикл должен быть следующим:

     for ( Body b = world.getBodyList(); b!=null; b = b.getNext() ) { Log.e("xy", String.valueOf(b.getPosition().x)+ " " + String.valueOf(b.getPosition().y)); } 

    Это один из способов сделать это. Вы получаете доступ к своим различным формам (полигон / круг) через список мировых организаций:

     public void draw(Canvas canvas){ Body body = world.getBodyList(); while(body != null){ Fixture fixture = body.getFixtureList(); while(fixture != null){ ShapeType type = fixture.getType(); if(type == ShapeType.POLYGON){ PolygonShape shape = (PolygonShape)fixture.getShape(); // draw shape }else if(type == ShapeType.CIRCLE){ CircleShape shape = (CircleShape)fixture.getShape(); // draw shape } fixture = fixture.getNext(); } body = body.getNext(); } }