gpt4 book ai didi

Java,如何在屏幕上绘制矩形变量

转载 作者:行者123 更新时间:2023-12-02 07:21:36 25 4
gpt4 key购买 nike

我编写了一个简单的Java游戏,屏幕上有两个矩形,其中一个矩形移动,另一个保持静止,移动的矩形随着键盘箭头输入而移动,并且可以向上、向下、向左或向右移动。我遇到的问题是在屏幕上绘制矩形,我的变量设置如下:

  float buckyPositionX = 0;
float buckyPositionY = 0;
float shiftX = buckyPositionX + 320;//keeps user in the middle of the screem
float shiftY = buckyPositionY + 160;//the numbers are half of the screen size
//my two rectangles are shown under here
Float rectOne = new Rectangle2D.Float(shiftX, shiftY,90,90);
Float rectTwo = new Rectangle2D.Float(500 + buckyPositionX, 330 + buckyPositionY, 210, 150);

在我的渲染方法(它包含我想要绘制到屏幕上的所有内容)下,我告诉 Java 绘制我的两个矩形:

    public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException{
//draws the two rectangles on the screen
g.fillRect(rectOne.getX(), rectOne.getY(), rectOne.getWidth(), rectOne.getHeight());
g.fillRect(rectTwo.getX(), rectTwo.getY(), rectTwo.getWidth(), rectTwo.getHeight());

}

但是我在 fillRect 下收到以下错误:

This method fillRect(float,float,float,float) in the type graphics is 
not applicable for the arguments (double,double,double,double)

这让我感到困惑,因为根据我的理解,fillRect 中提供的信息应该是 float ,而一切都是 float ,那么为什么它总是给我这个错误?

最佳答案

这似乎是双值:

rectOne.getX(), rectOne.getY(), rectOne.getWidth(), rectOne.getHeight()

The methods return doubles. See here API

因为你设置了浮点值,所以只需使用这个:

    g.fillRect((float)rectOne.getX(), (float)rectOne.getY(), (float)rectOne.getWidth(), (float)rectOne.getHeight());
g.fillRect((float)rectTwo.getX(), (float)rectTwo.getY(), (float)rectTwo.getWidth(), (float)rectTwo.getHeight());

关于Java,如何在屏幕上绘制矩形变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14148353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com