因此,我正在爲我的遊戲設計類創建一個pacman克隆,它將在整個學期中完成一項任務。Java IO,從文件讀取並打印到2d字符陣列
目前我有一個文本文件,它是吃豆子迷宮
見下圖:
WWWWWWWWWWWWWWWWWWWWWWWWWWWW
W............WW............W
W.WWWW.WWWWW.WW.WWWWW.WWWW.W
W*WWWW.WWWWW.WW.WWWWW.WWWW*W
W.WWWW.WWWWW.WW.WWWWW.WWWW.W
W..........................W
W.WWWW.WW.WWWWWWWW.WW.WWWW.W
W.WWWW.WW.WWWWWWWW.WW.WWWW.W
W......WW....WW....WW......W
WWWWWW.WWWWW.WW.WWWWW.WWWWWW
WWWWWW.WWWWW.WW.WWWWW.WWWWWW
WWWWWW.WW..........WW.WWWWWW
WWWWWW.WW.WWWWWWWW.WW.WWWWWW
WWWWWW.WW.WWWWWWWW.WW.WWWWWW
..........WWWWWWWW..........
WWWWWW.WW.WWWWWWWW.WW.WWWWWW
WWWWWW.WW.WWWWWWWW.WW.WWWWWW
WWWWWW.WW..........WW.WWWWWW
WWWWWW.WW.WWWWWWWW.WW.WWWWWW
WWWWWW.WW.WWWWWWWW.WW.WWWWWW
W............WW............W
W.WWWW.WWWWW.WW.WWWWW.WWWW.W
W*WWWW.WWWWW.WW.WWWWW.WWWW*W
W...WW................WW...W
WWW.WW.WW.WWWWWWWW.WW.WW.WWW
WWW.WW.WW.WWWWWWWW.WW.WW.WWW
W......WW....WW....WW......W
W.WWWWWWWWWW.WW.WWWWWWWWWW.W
W.WWWWWWWWWW.WW.WWWWWWWWWW.W
W..........................W
WWWWWWWWWWWWWWWWWWWWWWWWWWWW
的想法是,這是從Java IO讀取器讀取,一行行包,然後用來填充一個二維數組,我想我可以使用一個循環來指定使用paint類與數組中的數據打印圖像的位置。
我現在的問題是油漆方法,它似乎根本沒有工作,但我無法找到它目前有什麼問題。任何人都可以將我指向正確的方向嗎?
(我的代碼格式已經搞砸了壓痕一點點這裏需要的,我也是新的Java IO包,我已經看到了異常處理的第一次!)
在此先感謝您的幫助!
//imports
import java.awt.*;
import java.io.*;
import javax.swing.*;
public class Maze extends JFrame
{
//V.Decleration
private static final Dimension WindowSize = new Dimension (600,600);
static char[][] Amaze = new char[28][31];
//default constructor
public Maze()
{
this.setTitle("Pacman");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension screensize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
int x = screensize.width/2 - WindowSize.width/2;
int y = screensize.height/2 - WindowSize.height/2;
setBounds(x, y, WindowSize.width, WindowSize.height);
setVisible(true);
}
public void paint (Graphics g)
{
String line = null;
try
{
BufferedReader reader = new BufferedReader(new FileReader("G:\\Game Design\\Pacman\\src\\Maze.txt"));
for (int i=0; i<=31; i++)
{
do
{
try
{
line=reader.readLine();
for (int y=0; y<=28; y++)
{
Amaze[y][i]=line.charAt(y);
}
}catch (IOException e) { }
}
while (line!= null);
try
{
reader.close();
} catch (IOException e) { }
}
} catch (FileNotFoundException e) {}
}
//main
public static void main (String [] args)
{
Maze maze = new Maze();
for (int i=0;i<=28;i++)
System.out.print(Amaze[i][31]);
}
}
打印所有'Exception's被抓到的'e.printStackTrace();'。例外情況一般不會被忽略。他們解釋出了什麼問題,例如在你的繪畫方法中。 – 2012-01-27 21:18:15
我不明白你爲什麼認爲你的繪畫方法會畫。你沒有調用任何實際繪製的方法。你只是讀一個文件並填充一個數組。你需要展示更多。 – AHungerArtist 2012-01-27 21:18:51
你們倆似乎都誤解了我的問題。 我很清楚,這段代碼不會打印任何東西,我只是試圖將數據從文本文件移動到當前的2d字符數組中。一旦我設法做到這一點,我可以繼續工作。 – Eogcloud 2012-01-27 21:25:56