x 和 y 轴与像素之间的关系 Java
Relation between x and y axes and pixels in Java
我正在 Java 制作游戏 Breakout,我有一个小问题:
if(ballLocation.y >= 430){ //baseline
if((ballLocation.x >= batLocation.x) && (ballLocation.x <= (batLocation.x + width))){ //determining whether or not the ball is touching the bat by establishing a range of values
directionY = -2; //changing the direction of the ball so that it appears to be bouncing off when it hits the bat
}
}
如果我用球棒将球击向左侧,则 if 语句为真,但出于某种原因,如果它进一步向右击中,则为假,即使我可以看到球正在击中球棒。所以我认为唯一的问题可能是将 width
变量添加到 batLocation.x
,因为 batLocation.x
是 x
轴上的单位,而 width
是图像的宽度(因为蝙蝠和球都是 png 文件,而不只是由游戏绘制)以像素为单位(即 10
)。
所以我认为我的代码不起作用的最可能原因是因为我做了一个错误的假设并假设如果我将宽度(以像素为单位)添加到起始 x
点,我将当 x
轴上的 1 个像素可能不等于 1 个单位时获取蝙蝠的长度。
原来是这样吗? 1 像素不等于 x 或 y 轴上的一个单位吗?如果不是,那么如果我的球棒宽度为 10 像素,那么它的宽度是 x
的多少个单位?
我拿到了最新版本的JDK8.
实际上并没有内置的 x 轴和 y 轴,除非您在绘制时除外,并且始终以像素为单位。 x 和 y 的单位是什么?绘制时,是否使用这些值作为屏幕位置?如果是这样,请尝试 RealSkeptic 的建议;否则,单位是您定义的单位。
我正在 Java 制作游戏 Breakout,我有一个小问题:
if(ballLocation.y >= 430){ //baseline
if((ballLocation.x >= batLocation.x) && (ballLocation.x <= (batLocation.x + width))){ //determining whether or not the ball is touching the bat by establishing a range of values
directionY = -2; //changing the direction of the ball so that it appears to be bouncing off when it hits the bat
}
}
如果我用球棒将球击向左侧,则 if 语句为真,但出于某种原因,如果它进一步向右击中,则为假,即使我可以看到球正在击中球棒。所以我认为唯一的问题可能是将 width
变量添加到 batLocation.x
,因为 batLocation.x
是 x
轴上的单位,而 width
是图像的宽度(因为蝙蝠和球都是 png 文件,而不只是由游戏绘制)以像素为单位(即 10
)。
所以我认为我的代码不起作用的最可能原因是因为我做了一个错误的假设并假设如果我将宽度(以像素为单位)添加到起始 x
点,我将当 x
轴上的 1 个像素可能不等于 1 个单位时获取蝙蝠的长度。
原来是这样吗? 1 像素不等于 x 或 y 轴上的一个单位吗?如果不是,那么如果我的球棒宽度为 10 像素,那么它的宽度是 x
的多少个单位?
我拿到了最新版本的JDK8.
实际上并没有内置的 x 轴和 y 轴,除非您在绘制时除外,并且始终以像素为单位。 x 和 y 的单位是什么?绘制时,是否使用这些值作为屏幕位置?如果是这样,请尝试 RealSkeptic 的建议;否则,单位是您定义的单位。