2017-02-03 6 views
0

私はPCとAndroidの両方で動作させる予定のC++でゲームをプログラミングしています。私は私のゲームで使用しているいくつかの画像とテキストファイルを持っています。 ifstreamまたはfopenでこれらのファイルを開くことができる場所はどこですか?資産フォルダにそれらを格納することを既に実験しており、NDK AssetManagerを使用してロードすることができます。アセットフォルダの主な問題は、ifstreamは圧縮されていることやその性質のためにそこに格納されているファイルを実際に開くことができないことです。ほとんどの場合、それは問題ありませんが、私は本質的なライブラリをいくつか持っていて、使用されているファイルへのパスしか受け付けません。さらに、PCやアンドロイド上でファイルをロードするために(ほぼ)同じコードを使用するのが良いでしょう。fopenで開くことができるようにアンドロイド上にリソースを保存する方法

T.L.D.R .:ゲームのリソースは、どこでifstreamで開くことができますか?私はどこか外部記憶装置やその種のものを使うことができると読んでいますが、私は別の解決法を好むでしょう。

答えて

1

これらのファイルはifstreamまたはfopenで開くことができますか?あなたのアプリ(例えば、assets/)でそれらをパッケージ化する必要があるだろう

、その後、internal storage(例えば、getFilesDir())上のファイルにコピーします。あなたのアプリにパッケージ化されるものは、fopen()と一緒に使用することができ、そうでない場合には通常のファイルとして使用できません。

+0

ありがとう、これは最も有望なもののようです。私はあなたの答えを受け入れたものとしてマークしますが、私は思っていることがいくつかあります。 1.)これは資産を内部ストレージに入れる唯一の方法ですか?アンドロイドスタジオに資産を置く場所はありません。アプリが実行されると自動的に内部ストレージに入れられますか?そして、2)これが唯一の方法であれば、アプリを実行するたびに、またはインストール直後に資産を内部ストレージにコピーする必要がありますか? –

+0

@AnonymousPerson:「私の資産を入れることができるアンドロイドスタジオには場所がありません。アプリを実行すると自動的に内部ストレージに入れられますか?」 - 正しい。 「アプリを実行するたびに、またはインストール直後に、資産を内部ストレージにコピーする必要がありますか?」 - アプリケーションが実行されるたびにではありません。ファイルが存在する場合はそのままにしてください。そうでない場合は、アセットからコピーします。コピーが実行される主な時間は、インストール後に最初に実行されますが、ユーザーが設定を介してアプリのデータを消去した場合にも発生します。 – CommonsWare

+0

さて、それはすべて私の質問です。どうもありがとうございました!私はそれを働かせることができました、そして、私はそれに非常に満足しています。 –

関連する問題