Java LibGdx-精灵在摄影机旁边移动

Java LibGdx-精灵在摄影机旁边移动,java,libgdx,sprite,game-development,Java,Libgdx,Sprite,Game Development,我试图在屏幕上以随机位置渲染一些实体。产卵位置是可以的,但是当我移动玩家实体(相机聚焦)并通过屏幕中间(然后相机开始移动)时,其他实体的精灵也会跟着我移动,这是我不想要的 我试着用cam.unproject(position)在世界上给他们定位,而不是在屏幕上将相对于屏幕的粒子转换为相对于游戏世界的位置,但这也不起作用 它们的渲染方式与所有其他精灵在libgdx中的渲染方式相同 这是我初始化实体的代码: Texture zombie = new Texture("zombie.png");

我试图在屏幕上以随机位置渲染一些实体。产卵位置是可以的,但是当我移动玩家实体(相机聚焦)并通过屏幕中间(然后相机开始移动)时,其他实体的精灵也会跟着我移动,这是我不想要的

我试着用
cam.unproject(position)在世界上给他们定位,而不是在屏幕上将相对于屏幕的粒子转换为相对于游戏世界的位置,但这也不起作用

它们的渲染方式与所有其他精灵在libgdx中的渲染方式相同

这是我初始化实体的代码:

Texture zombie = new Texture("zombie.png");
    float x, y;
    for (int i = 0; i < enemy_amout; i++) {
        x = rm.nextFloat() * (mapWidth * 8f- zombie.getWidth());
        y = rm.nextFloat() * (mapHeight * 8f - zombie.getHeight());
        Vector3 position = new Vector3(x, y, 0);
        cam.unproject(position);
        enemies[i] = new Entity(zombie, position.x, position.y, 1);
    }
Texture zombie=新纹理(“zombie.png”);
浮动x,y;
for(int i=0;i<敌方数量;i++){
x=rm.nextFloat()*(mapWidth*8f-zombie.getWidth());
y=rm.nextFloat()*(mapHeight*8f-zombie.getHeight());
向量3位置=新向量3(x,y,0);
凸轮未投影(位置);
敌人[i]=新实体(僵尸,位置.x,位置.y,1);
}
这就是游戏开始时的样子

这就是我把玩家角色移到右边后的样子。正如你所看到的,他们沿着摄像机移动,但我希望他们保持原来的位置。

取消投射并没有改变,没有那行codebatch.begin(),我得到了相同的结果;玩家。抽签(批量);对于(实体e:敌人)e.draw(批次);batch.end();正如我所说的,只是普通的精灵渲染。你是不是每件事都使用一个摄像头,并将其矩阵应用于批次?我使用了一个摄像头,但我没有将其矩阵应用于批次。添加batch.setProjectionMatrix(cam.combined);修复了我的问题,所以谢谢你,但现在我所有的精灵都是巨大的,没有理由。