0

私は最近 flixel を手に入れました (私は以前にプログラミングしたことがありますが、しばらくしていませんでした)、問題に遭遇しました。マップを作成しようとしていますが、最終的には複数のマップが利用可能になります。

現在、最終的に配列に入る情報を含む .txt ファイルがあります。次に、配列から でマップに移動しloadmapます。このタスクを達成するための簡単な方法かもしれませんし、もっと良い方法かもしれません (flixel のすべての可能性を調べたわけではありません。意見がある場合は、私に知らせてください)。

前に言ったように、私は複数のマップでこれをやろうとしています。各 .t​​xt ファイルを使用してこれを行うこともでき[Embed(source = "")]ますが、これは面倒になる可能性があります。だから、ここに私の質問があります: 変数に基づいてファイルを埋め込む方法はありますか?

私の Map クラスは次のようになります。

public function Map(MapSet:String, TileSet:String) 
        {
            super(MapSet, TileSet);
            //more stuff
        }

今私は試しました:

[Embed(scource="data/MapSets/" + MapSet + ".txt",  mimeType = "application/octet-stream")]private var loadedMap:Class

そして、私は使用します:

map = new Map("Map1x1", "ForestTiles");
add(map);

これを別の方法で行う可能性はありますか?それとも、私は何か間違ったことをしていますか?すべての意見を歓迎します。

4

2 に答える 2

1

コードを使用するときにコードが何をするかを知っておくと有益です。

Embed はメタタグです。特定のファイルを .swf ファイルに含めるようにコンパイラに指示します。つまり、これは実行時に発生しません。

この埋め込みコードが「実行」されると、変数はまだ存在しません。そのため、コードが機能しません。

機能しなくても、解決策は有効です。コードを生成するのが面倒な場合は、これを行うプログラムを作成してください。指定されたディレクトリ内のすべての有効なファイルを検索し、すべての埋め込みタグを作成するプログラムを作成/使用します。コンパイラの前にこのプログラムを実行します。

于 2015-01-17T10:35:15.113 に答える
0

テキスト ファイルを埋め込んで文字列として使用するには、次のようにします。

// create source var TextSource
[Embed(source="textFile.txt",mimeType="application/octet-stream")]
private var TextSource:Class;

var myByteArray:ByteArray = new TextSource();
var myString:String = myByteArray.readUTFBytes(myByteArray.length);

// then use for your function
map = new Map("Map1x1", myString);
于 2015-01-17T21:57:22.383 に答える