我有一个模型、视图和管类,我不知道发生了什么。
import java.util.Random;
import java.util.LinkedList;
import java.util.ListIterator;
class Model
{
Bird bird;
Random r = new Random();
LinkedList<Tube> tubes;
Model() {
this.bird = new Bird();
this.tubes = new LinkedList<Tube>();
tubes.add(new Tube(r));
}
public void update() {
this.bird.update();
//this.tube.setPosition();
//this.tube.update();
ListIterator<Tube> tIterator = tubes.listIterator();
while (tIterator.hasNext()){
System.out.println("Another Tube");
}
}
public void onClick(int x, int y) {
this.bird.setDestination();
this.bird.flap();
}
}
下面的这个类是我得到错误的地方。
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.Image;
import javax.imageio.ImageIO;
import java.io.IOException;
import java.awt.Graphics;
import java.io.File;
class View extends JPanel {
Model model;
Image bird_image;
Image bird_image_flap;
Image tube_image;
Image tube_image_down;
View(Model m) throws IOException {
this.model = m;
this.bird_image = ImageIO.read(new File("bird1.png"));
this.bird_image_flap = ImageIO.read(new File("bird2.png"));
this.tube_image = ImageIO.read(new File("tube_up.png"));
this.tube_image_down = ImageIO.read(new File("tube_down.png"));
}
public void paintComponent(Graphics g) {
if(this.model.bird.flapped){
g.drawImage(this.bird_image_flap, this.model.bird.x, this.model.bird.y, null);
} else {
g.drawImage(this.bird_image, this.model.bird.x, this.model.bird.y, null);
}
if(this.model.tubes.isItUp){
g.drawImage(this.tube_image, this.model.tubes.tube_x, this.model.tubes.tube_y, null);
} else {
g.drawImage(this.tube_image_down, this.model.tubes.tube_x, this.model.tubes.tube_y - 400, null);
}
}
}
第 32 行下方有多个标记。一个是"管子无法解析或不是场"。另一个是"isItUp 无法解析或不是字段"我做错了什么?
问题是这条线,对吧? if(this.model.tubes.isItUp){"模型"变量上的字段"tubes"的类型是"LinkedList",所以我怀疑它有一个字段"isItUp"。 您尝试使用的"isItUp"字段在哪里? 它是在管子对象上吗? 如果是这样,那么你需要从列表中获取相关的实例(例如this.model.tubes.elementAt(0).isItUp)。