Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法在JPanel上跟踪矩形(如第三人称)?_Java_Swing_Jpanel_Game Physics - Fatal编程技术网

Java 有没有办法在JPanel上跟踪矩形(如第三人称)?

Java 有没有办法在JPanel上跟踪矩形(如第三人称)?,java,swing,jpanel,game-physics,Java,Swing,Jpanel,Game Physics,我用JPanels和图形绘制方法制作了一些2D游戏。对于我目前正在开发的游戏,我希望能够从鸟瞰图(有点像早期的口袋妖怪游戏,当你移动相机时,相机会跟踪你)跟踪玩家行走,但无需硬编码(当我行走时,包括背景在内的所有其他功能的x和y值都会朝相反的方向移动)。是否有其他方法可以做到这一点,或者我需要硬编码?使用图形。翻译(x,y)其中x和y位置是相机或播放机的位置。这将把图形上下文的原点转换为点x,y。使用图形。转换(x,y)其中x和y位置是相机或播放机的位置。这将把图形上下文的原点转换为点x,y“还

我用JPanels和图形绘制方法制作了一些2D游戏。对于我目前正在开发的游戏,我希望能够从鸟瞰图(有点像早期的口袋妖怪游戏,当你移动相机时,相机会跟踪你)跟踪玩家行走,但无需硬编码(当我行走时,包括背景在内的所有其他功能的x和y值都会朝相反的方向移动)。是否有其他方法可以做到这一点,或者我需要硬编码?

使用
图形。翻译(x,y)
其中x和y位置是相机或播放机的位置。这将把图形上下文的原点转换为点x,y。

使用
图形。转换(x,y)
其中x和y位置是相机或播放机的位置。这将把图形上下文的原点转换为点x,y

“还有其他方法可以做到这一点吗…”使用一个
仿射Transform
@luxMiner谢谢你的链接,我将仔细看看我如何实现它。我所说的硬代码的意思是,当我向上移动时,面板上的所有其他对象都向下移动,以创建被跟踪的外观。(基本上是让你不移动,你周围的一切都在移动以产生移动的错觉:)“还有其他方法吗..”。。“使用
AffineTransform
@LuxxMiner谢谢你的链接,我将仔细看看如何实现它。我所说的硬代码就是编码,当我向上移动时,面板上的所有其他对象都向下移动,以创建被跟踪的外观。(基本上是让你不移动,你周围的一切都在移动以产生移动的错觉:)啊,是的,如果我重新缩放图像,这将非常有效:),这也意味着除了玩家和图形之外,我不必触摸任何值。非常感谢。@MorganBlem请注意,对于(x,y),假设您的相机坐标为负值(这是标准做法,它使旋转和其他事情在将来变得更容易)。只要抬起头。@MitchWeaver假设x和y为负是什么?@MorganBlem如果你有一个相机类,最好的做法是将你的相机位置设置为负玩家位置。当你向右移动时,世界应该“向左移动”。想想看。:)如果你没有单独的相机类,你可以传递消极的玩家位置来进行翻译。哦,是的,我知道:)非常感谢你的帮助。啊,是的,如果我重新缩放图像,这将非常有效:),这也意味着我不必触摸除玩家和图形以外的任何值。非常感谢。@MorganBlem请注意,对于(x,y),假设您的相机坐标为负值(这是标准做法,它使旋转和其他事情在将来变得更容易)。只要抬起头。@MitchWeaver假设x和y为负是什么?@MorganBlem如果你有一个相机类,最好的做法是将你的相机位置设置为负玩家位置。当你向右移动时,世界应该“向左移动”。想想看。:)如果你没有单独的相机类,你可以通过消极的球员位置来翻译。哦,是的,我知道:)非常感谢你的帮助。