Java游戏-绘制建筑物的最简单方法

Java游戏-绘制建筑物的最简单方法,java,events,user-interface,rectangles,Java,Events,User Interface,Rectangles,这是我第一次做JavaGUI的东西,我有几个问题。我正在做一个简单的侧滚游戏——具体地说,是计划出来的。窗口将是800x800 游戏滚动时会画出建筑物(每40像素左右)。我想我将制作一个900px的黑色矩形,然后在不同的像素高度设置它的副本(以改变新建筑的高度)。然后,矩形的底部将自动剪裁 (1)这样行吗? 在屋顶上方的天空中,我将有目标飞过,可以点击并击落以获得点数。我在想我应该制作一个目标的图像图标,然后在屏幕上画出它的移动。但我认为很难跟踪目标坐标,然后用鼠标点击坐标,然后检查它们是否匹配

这是我第一次做JavaGUI的东西,我有几个问题。我正在做一个简单的侧滚游戏——具体地说,是计划出来的。窗口将是800x800

游戏滚动时会画出建筑物(每40像素左右)。我想我将制作一个900px的黑色矩形,然后在不同的像素高度设置它的副本(以改变新建筑的高度)。然后,矩形的底部将自动剪裁

(1)这样行吗?

在屋顶上方的天空中,我将有目标飞过,可以点击并击落以获得点数。我在想我应该制作一个目标的图像图标,然后在屏幕上画出它的移动。但我认为很难跟踪目标坐标,然后用鼠标点击坐标,然后检查它们是否匹配

(2)有没有简单的方法来判断目标是否被点击击中(没有很多坐标和数学)?

还有滑板运动员在屋顶上从左到右滑冰。我想我应该在他身后放一个隐藏的长方形,然后看看它是否与给定的长方形屋顶相交,告诉他什么时候着陆。但问题是在他进入屋顶之前他们不会相交。我希望他就在屋顶上

我怎样才能知道滑板运动员何时刚好在屋顶上方(没有大量坐标数学)?

游戏滚动时会画出建筑物(每40像素左右)。我想我将制作一个900px的黑色矩形,然后在不同的像素高度设置它的副本(以改变新建筑的高度)。然后,矩形的底部将自动剪裁

那很好,底部会被剪掉

在屋顶上方的天空中,我将有目标飞过,可以点击并击落以获得点数。我在想我应该制作一个目标的图像图标,然后在屏幕上画出它的移动。但我认为很难跟踪目标坐标,然后用鼠标点击坐标,然后检查它们是否匹配

我想不出比这更简单的方法了。检查矩形区域是否命中并不太难:

if(mouseX >= targetX && mouseX < targetX+targetWidth &&
        mouseY >= targetY && mouseY < targetY+targetHeight){
    // is a hit
}
if(mouseX>=targetX&&mouseX=targetY&&mouseY
为了更好地进行碰撞检测,您可以在目标精灵上设置一个隐藏的遮罩颜色(如果您没有使用遮罩,则检查alpha是否为0)。如果鼠标单击目标图像区域内的非遮罩像素,则点击成功。用于检查鼠标事件查找MouseListener或MouseAdapter

还有滑板运动员在屋顶上从左到右滑冰。我想我应该在他身后放一个隐藏的长方形,然后看看它是否与给定的长方形屋顶相交,告诉他什么时候着陆。但问题是在他进入屋顶之前他们不会相交。我希望他就在屋顶上

您不应该需要不可见的矩形。滑板者图像应该有宽度和高度,您应该有可用的宽度和高度。图像是从左上角绘制的,因此滑板运动员的底部是他绘制的Y位置加上图像高度。您希望阻止该值超出屋顶边界

游戏滚动时会画出建筑物(每40像素左右)。我想我将制作一个900px的黑色矩形,然后在不同的像素高度设置它的副本(以改变新建筑的高度)。然后,矩形的底部将自动剪裁

那很好,底部会被剪掉

在屋顶上方的天空中,我将有目标飞过,可以点击并击落以获得点数。我在想我应该制作一个目标的图像图标,然后在屏幕上画出它的移动。但我认为很难跟踪目标坐标,然后用鼠标点击坐标,然后检查它们是否匹配

我想不出比这更简单的方法了。检查矩形区域是否命中并不太难:

if(mouseX >= targetX && mouseX < targetX+targetWidth &&
        mouseY >= targetY && mouseY < targetY+targetHeight){
    // is a hit
}
if(mouseX>=targetX&&mouseX=targetY&&mouseY
为了更好地进行碰撞检测,您可以在目标精灵上设置一个隐藏的遮罩颜色(如果您没有使用遮罩,则检查alpha是否为0)。如果鼠标单击目标图像区域内的非遮罩像素,则点击成功。用于检查鼠标事件查找MouseListener或MouseAdapter

还有滑板运动员在屋顶上从左到右滑冰。我想我应该在他身后放一个隐藏的长方形,然后看看它是否与给定的长方形屋顶相交,告诉他什么时候着陆。但问题是在他进入屋顶之前他们不会相交。我希望他就在屋顶上


您不应该需要不可见的矩形。滑板者图像应该有宽度和高度,您应该有可用的宽度和高度。图像是从左上角绘制的,因此滑板运动员的底部是他绘制的Y位置加上图像高度。您希望阻止该值超出屋顶边界。

800x800是愚蠢的,许多屏幕,尤其是笔记本电脑或笔记本电脑屏幕,要么更小,要么正好达到确切的高度。使其更小或可配置。800x800是愚蠢的,许多屏幕,尤其是笔记本电脑或笔记本电脑屏幕,要么更小,要么正好高。使其更小或可配置。