Eclipse 基本平台
我一直在尝试制作一个基本的平台游戏,但我无法继续,除非我能够阅读游戏1面板的外部文本文档以获取地图。我将txt文档包括在与其他项目和Game1Panel相同的文件夹中,但没有任何更改。当我使用终端打开Game1时,它只会显示一个黑屏。。如何让Game1Panel中的bufferedreader在Eclipse中读取外部txt文档/Eclipse 基本平台,eclipse,bufferedreader,Eclipse,Bufferedreader,我一直在尝试制作一个基本的平台游戏,但我无法继续,除非我能够阅读游戏1面板的外部文本文档以获取地图。我将txt文档包括在与其他项目和Game1Panel相同的文件夹中,但没有任何更改。当我使用终端打开Game1时,它只会显示一个黑屏。。如何让Game1Panel中的bufferedreader在Eclipse中读取外部txt文档/ import javax.swing.JPanel; import java.awt.*; import java.awt.image.*; import java
import javax.swing.JPanel;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
public class Game1Panel extends JPanel implements Runnable {
public static final int WIDTH = 400;
public static final int HEIGHT = 400;
private Thread thread;
private boolean running;
private BufferedImage image;
private Graphics2D g;
private int FPS = 30;
private int targetTime = 1000 / FPS;
private TileMap1 tileMap;
public Game1Panel () {
super();
setPreferredSize(new Dimension(WIDTH, HEIGHT));
setFocusable(true);
requestFocus();
}
public void addNotify() {
super.addNotify();
if(thread == null) {
thread = new Thread(this);
thread.start();
}
}
public void run() {
init();
long startTime;
long urdTime;
long waitTime;
while(running) {
startTime = System.nanoTime();
update();
render();
draw();
urdTime = (System.nanoTime() - startTime) / 1000000;
waitTime = targetTime - urdTime;
try{
Thread.sleep(waitTime);
}
catch(Exception e) {
}
}
}
private void init() {
running = true;
image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
g = (Graphics2D) image.getGraphics();
tileMap = new TileMap1("TestMap.txt", 32);
}
private void update() {
tileMap.update();
}
private void render() {
tileMap.draw(g);
}
private void draw() {
Graphics g2 = getGraphics();
g2.drawImage(image, 0, 0, null);
g2.dispose();
}
}
}Do new Files.getAbsolutePath以查看程序在何处查找该文件,以及该文件是否确实存在。此外,调试的第一条规则是不要在出现问题的try块之后执行catchException{}。我在哪里向TileMap1构造函数中添加新文件。getAbsolutePath?在哪里定义了?在哪里尝试从文件中读取。
import java.io.*;
import java.awt.*;
public class TileMap1 {
private int x;
private int y;
private int tileSize;
private int[][] map;
private int mapWidth;
private int mapHeight;
public TileMap1(String s, int tileSize) {
this.tileSize = tileSize;
try {
BufferedReader br = new BufferedReader(new FileReader(s));
mapWidth = Integer.parseInt(br.readLine());
mapHeight = Integer.parseInt(br.readLine());
map = new int[mapHeight][mapWidth];
String delimiters = " ";
for(int row = 0; row < mapHeight; row++) {
String line = br.readLine();
String[] tokens = line.split(delimiters);
for(int col = 0; row < mapWidth; col++) {
map[row][col] = Integer.parseInt(tokens[col]);
}
}
}
catch(Exception e) {}
}
public void update() {
}
public void draw(Graphics2D g) {
for(int row = 0; row < mapHeight; row++) {
for(int col = 0; col < mapWidth; col++) {
int rc = map[row][col];
if(rc == 0) {
g.setColor(Color.BLACK);
}
if(rc == 1) {
g.setColor(Color.WHITE);
}
g.fillRect(x + col * tileSize, y + row * tileSize, tileSize, tileSize);
}
}
}