トップ レベルの最大スプライト数は 100 スプライトです。ランダムを使用してベクトル位置を生成すると、スプライト間でオーバーラップが発生することがあります。
これに対抗するために、事前に定義された位置をいくつか保存します。
質問
だから私の質問は、これらを保管する最良の方法は何でしょうか. 最初は配列に保存するつもりでしたが、テキストファイルに保存してゲームの開始時に読み込む方が良いと思います。
初心者なので、どなたかアドバイスいただけると助かります。
どうもありがとう
はい、それらを CSV (カンマ区切り値) テキスト ファイルに保存するか、必要に応じてデータベースを使用しますが、前者をお勧めします。あなたの状況では、データベースストレージはやり過ぎのように聞こえます。起動時に、値を配列にロードします。そうしないと、値を取得するたびにゲームが遅くなります。永続ストレージ用のテキスト ファイルと、使用用の配列が必要なだけです。
これで問題が解決することを願っています!
スプライトの位置が重なっているかどうかだけチェックしてみませんか?スプライトが頻繁にオーバーラップしない場合、これはあまり多くの計算を追加せず、固定位置テンプレートよりもランダム性を高めます。
スプライトを使用してエンティティのクラスで行うことは、public Rectangle を追加することです。おそらく、すでに長方形を使用して画面に描画しています。これを public にすることで、エンティティを生成するクラスでこのようなことを行うことができます。
if (addSprite)
{
Entity newEntity = new Entity(random position);
foreach (Entity e in entityList)
{
if (newEntity.rectangle(Intersects(newEntity.rectangle))
{
//give a new position to newEntity and run this loop again
}
else
{
entityList.add(newEntity);
}
}