【问题标题】:Java AffineTransform Translation isn't working [closed]Java AffineTransform 翻译不起作用[关闭]
【发布时间】:2012-06-30 01:46:44
【问题描述】:

更新 原来我只是累了。这里没有任何问题抱歉浪费您的时间。别担心,我已将此标记为版主查看。

我的问题是,当我在 java 中翻译一个缓冲图像时,它会上下移动,而我在 x 轴上翻译它。 为了更好地理解我的问题,请观看:
http://www.youtube.com/watch?v=stwi1qVakp4

那么我的设置是什么: 好吧,我所做的是在我的渲染方法中:

AffineTransform.translate(player_dx,0);

然后我会有一个keylistener,就像:

public void keyPressed(KeyEvent e){
    int key = e.getKeyCode();
    if(key == KeyEvent.VK_RIGHT){
        player_dx = 1;
    }
    if(key == KeyEvent.VK_LEFT){
        player_dx = -1;
    }

}

 public void keyReleased(KeyEvent e){
    int key = e.getKeyCode();
    if(key == KeyEvent.VK_RIGHT){
        player_dx = 0;
    }
    if(key == KeyEvent.VK_LEFT){
        player_dx = 0;
    }

}

我认为发生这种情况是因为当我旋转它时,它会改变 x、y 坐标,所以如果它是 90 度,x 和 y 就会改变。我只是不知道我是否可以绕过它。

如果您还需要了解其他信息,请告诉我。谢谢,Javaman111

【问题讨论】:

  • 是的,您的代码有问题,但很可能是您没有向我们展示的代码。
  • 不。我认为这是因为当我旋转它时,它会改变 x、y 坐标,所以如果它是 90 度,x 和 y 就会改变。我只是不知道我是否可以绕过它。

标签: java translation affinetransform


【解决方案1】:

您的问题在于手臂的代码,而不是角色的仿射变换。这可能与您在每个轴上移动手臂的程度有关,或者您可能错误地颠倒了 X 和 Y。

【讨论】:

  • 就像我说的,问题出在未显示的代码中,但他显然不相信我。
  • ?我相信是那个代码。我只需要渲染图像 g2.drawImage(rightarm, rightarmtransform, null);我认为程序正在切换 x/y 位置进行平移,因为我测试过一次,它旋转了 90 度,当我尝试在 x 轴上平移它时,它在 y 轴上平移
  • 没关系。我只是有一个愚蠢的时刻。没事。我以为胳膊会掉下来,但没关系。很抱歉浪费你的时间哈哈
猜你喜欢
  • 1970-01-01
  • 2018-03-09
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 2021-10-22
  • 2013-10-09
  • 2015-06-23
  • 2014-04-20
相关资源
最近更新 更多