gpt4 book ai didi

Java 图形不从玩家类中绘制 getX() 和 getY()

转载 作者:行者123 更新时间:2023-12-01 12:38:40 24 4
gpt4 key购买 nike

好吧,我没什么可说的,但基本上我有一个 Player 类,然后在 GFX 类中我用它绘制 Player他的 getX()getY() 所以 player.getX()

正如你所看到的,我制作了 getter 和 setter,但现在它不会在 GFX 中绘制,它只会给我错误。

    package com.shiny21.players;

public class PlayerR {

int x = 10;
int y = 10;

public PlayerR(int x, int y){
this.x = x;
this.y = y;
setX(10);
setY(10);

}

public void init(){

}

public int getX() {
return x;
}

public void setX(int x) {
this.x = x;
}

public int getY() {
return y;
}

public void setY(int y) {
this.y = y;
}



}

package com.shiny21.graphics;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JPanel;
import javax.swing.Timer;

import com.shiny21.players.PlayerR;

public class GFX extends JPanel implements ActionListener{

PlayerR red;

public GFX(){

PlayerR red = new PlayerR(getX(), getY());

this.setFocusable(true);
this.requestFocus();

setBackground(Color.BLACK);

Timer timer = new Timer(1000 / 60, this);
timer.start();
}

public void step(){
System.out.println(":p");
repaint();
}

public void paintComponent(Graphics g){
super.paintComponent(g);

g.setColor(Color.BLUE);
g.fillRect(50, 50, 4, 4);

g.setColor(Color.RED);
g.fillRect(red.getX(), red.getY(), 4, 4);


}


public void actionPerformed(ActionEvent ae) {
step();
}
}

最佳答案

您发布错误日志后,我将编辑答案。现在我要指出一两件事:

<小时/>
public PlayerR(int x, int y){
this.x = x;
this.y = y;
setX(10);
setY(10);

}

为什么要直接分配变量,然后使用它各自的 setter 方法?它应该只是:

public PlayerR(int x, int y){
this.x = x;
this.y = y;
}
<小时/>

另外:

 PlayerR red = new PlayerR(getX(), getY());

应该是red = new PlayerR(getX(), getY());

由于 PlayerR red; 已全局声明。

关于Java 图形不从玩家类中绘制 getX() 和 getY(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25334038/

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