2012-02-02 14 views
1

ここはばかげた質問です。あなたはplaynゲーム内のファイルを読み込むにはどうすればよいplaynのファイルから読む

?私は通常、標準的なJavaプログラムで行うように私は、ファイルやスキャナを使用してみました:

void readFromFile(){ 

    int x; 
    int y; 
    int pixel; 
    int[][] board; 

    try{ 

     Scanner scan = new Scanner(new File(in)); 

     x = scan.nextInt(); 
     y = scan.nextInt(); 
     pixel = scan.nextInt(); 
     Point start = new Point(scan.nextInt(), scan.nextInt()); 
     Point dir = new Point(scan.nextInt(), scan.nextInt()); 
     Point end = new Point(scan.nextInt(), scan.nextInt()); 
     int antRoads = scan.nextInt(); 

     board = new int[x][y]; 

     for (int i = 0; i < y; i++){ 
      for (int j = 0; j < x; j++){ 
       board[i][j] = scan.nextInt(); 
      } 
     } 


     lev = new Level(board, start, dir, end, antRoads, pixel, x, y); 


    } catch(FileNotFoundException e){ 
     System.out.println(e); 
    } 
} 

私はFile.canRead()、canWrite()と実行することができます()をテストし、それらはすべてfalseが返さ。

私はassetMannager()を使用することが出来るのです。のgetText()か何か?それが事実なら誰かがそれがどのように機能するか教えてもらえますか? (または何で、どのようにResourceCallback作品?)

することは私の目標は、単に標準的な画像フォルダのような通常のテキスト形式のマップで埋め「マップ」という名前のフォルダを持っていることです。

よろしく、 Torgeir

答えて

5

ゲームはJavaScriptにコンパイルされ、(HTML5バックエンドを使用した場合)、ブラウザ内で実行されているので、あなたは、PlayNゲームで通常のファイルI/Oを行うことができない、とブラウザがノーをサポートしていますファイルI/O(少なくともこれらの目的に必要な汎用ファイルI/Oではありません)。

ブラウザは、バイトストリームやバイナリI/O(これは最終的には到着するかもしれませんが、すべてのブラウザでサポートされるまでに時間がかかります)という考え方もサポートしていません。

ですから、データファイルを読むためにAssetManager.getTextを使用する必要があります。必要ならばJSONでエンコードし、デコードにはPlayN.json()を使用するか、独自のカスタム文字列ベースのフォーマットを使用できます。

HTML5バックエンドを使用してデプロイする予定がない場合は、 "LevelReader"インターフェースを作成し、そのインターフェースをAndroidまたはiOSバックエンドに実装し、それらのプラットフォームでネイティブのファイル入出力機能を使用できます。

関連する問題