Объект мозаичной карты не отображается (ошибок нет)

Этот код прекрасно работает без ошибок, и карта загружается, но я создал класс объекта create, и он не создает объект или тело ant без ошибок. Я думаю, что он создает, но не показывает по некоторым причинам, не уверен, что

 public class Screens implements Screen {
        Texture texture;
        MyGdxGame game;
        ObjectCreater objectCreater;
        Player palyer;

   public OrthographicCamera cam;
    Viewport viewport;
   public static TiledMap map;
    TiledMapRenderer tiledMapRenderer;
    World world;
    @Override
    public void show() {
        cam=new OrthographicCamera(400/100,200/100);
        viewport=new StretchViewport(400/100,900/100);
        cam.position.set(1,1,0);

        map=new TmxMapLoader().load("level1.tmx");
        tiledMapRenderer=new OrthogonalTiledMapRenderer(map,1f/100f);
        texture=new Texture("player.png");
        game=new MyGdxGame();

        world=new World(new Vector2(0,-10),true);

        palyer=new Player();
        objectCreater=new ObjectCreater();




    }

    @Override
    public void render(float delta) {
        movecam();
        game.batch.setProjectionMatrix(cam.combined);
        cam.update();
        Gdx.gl.glClearColor(1, 1, 1,1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        tiledMapRenderer.setView(cam);
        tiledMapRenderer.render();

создать класс объекта, который я начинаю считать с 0 до объекта, который я создал на своей карте, и я уверен, что его 4

public class ObjectCreater {
public static Body Groundbody;
World world;
Player player;
MyGdxGame game;
BodyDef grpund;
Screens screens;
public ObjectCreater(){

    screens=new Screens();
    player=new Player();
    game=new MyGdxGame();



    grpund=new BodyDef();
    FixtureDef fixter=new FixtureDef();
    PolygonShape polygonShape=new PolygonShape();



    for (MapObject object:screens.map.getLayers().get(4).getObjects().getByType(RectangleMapObject.class)){
        Rectangle rect = ((RectangleMapObject) object).getRectangle();


        grpund.type= BodyDef.BodyType.StaticBody;
        grpund.position.set(((rect.getX() + rect.getWidth() / 2)/100), (rect.getY() + rect.getHeight() / 2)/100);
        Groundbody= player.world.createBody(grpund);

        polygonShape.setAsBox((rect.getWidth()/2)/100,(rect.getHeight()/2)/100);
        fixter.shape=polygonShape;
        fixter.filter.categoryBits=16;
        Groundbody.createFixture(fixter).setUserData("backw");
    }

1 ответ

Решение

Чтобы нарисовать тела box2d, вы должны создать Box2dDebugRenderer:

Box2DDebugRenderer debugRenderer = new Box2DDebugRenderer();

// in render:
debugRenderer.render(world, cam.combined);
Другие вопросы по тегам