Java 在libGDX中移动玩家时,连接到玩家的大刀会向前跳跃2像素
这是交易。我有一个玩家在平铺游戏地图中有一把大刀。大刀连接到玩家的位置,当按下鼠标左键时,它围绕玩家旋转以模拟“挥杆”。然而,当我用大刀攻击时,每当我移动玩家时,用5x5蓝点表示的大刀就会跳到我前进方向的2个像素处 我在播放器上遇到了这个问题,但是使用Java 在libGDX中移动玩家时,连接到玩家的大刀会向前跳跃2像素,java,libgdx,Java,Libgdx,这是交易。我有一个玩家在平铺游戏地图中有一把大刀。大刀连接到玩家的位置,当按下鼠标左键时,它围绕玩家旋转以模拟“挥杆”。然而,当我用大刀攻击时,每当我移动玩家时,用5x5蓝点表示的大刀就会跳到我前进方向的2个像素处 我在播放器上遇到了这个问题,但是使用batch.setProjectionMatrix(camera.combined) 这一次,无论我使用投影矩阵做什么,蓝点要么向前跳2个像素,要么向前跳10-20px,然后变为正常 以下是Broadsware类的渲染方法,我在其中测试了多个场景,
batch.setProjectionMatrix(camera.combined)
这一次,无论我使用投影矩阵做什么,蓝点要么向前跳2个像素,要么向前跳10-20px,然后变为正常
以下是Broadsware类的渲染方法,我在其中测试了多个场景,并包括了最接近非反弹的场景:
...
public void render() {
if(!isSwinging)
return;
//Using a new Batch object, not the one from the Main class and
// setting the projection matrix to camera.combined after we draw the broadsword
// (a blue dot) is the only way that partially works.
batch.begin();
batch.draw(texture, broadSwordPos.x, broadSwordPos.y);
batch.setProjectionMatrix(camera.combined);
batch.disableBlending();
batch.end();
}
...
上面的方法是唯一部分有效的方法(在开始攻击时,大刀向前跳10到20像素,持续几秒钟,然后返回到所需位置)
任何其他方法,例如使用主类中使用的SpriteBatch对象
(批量粘贴到游戏世界,粘贴到玩家,然后粘贴到大刀)
或者在绘制之前设置投影矩阵,则不起作用,并导致向前反弹2倍的问题
这里怎么了?(如果我需要提供更多代码,请告诉我)