まず第一に、私が「SFML および/または C++ のパフォーマンスの問題」タイプの質問をしているとは思わないでください。私が取り組んできたこのマップ エディターのパフォーマンスには満足していません。99% の確率で、私が間違っていると確信しています。
現在、マップ上にタイルを配置する方法は、基本的に、マップ上のすべてのタイルをループして、マウスがその上にあるかどうかを確認する機能があります。この関数を、単にタイトルが付けられた別の関数内で呼び出しますhandleMouseClick()
タイルを配置するたびにクリックするだけであれば、これは十分に機能しますが、絵筆のようなものがあります。マップ上に 500 個のタイルしかない場合でも、画面上ですばやくドラッグするとタイルがスキップされます。5000 以上のタイルを含むマップを作成できるようにする必要がありますが、まあまあのパフォーマンスを提供する余裕はありません。
コードに目を通し、不要なコピーを作成していないことを確認しました。パフォーマンスを向上させる最善の方法は、マウスがどのタイルを変更しているかを確認する方法を変更することだと確信しています。
私が持っている唯一のアイデアは、マップを「チャンク」にして、マウスが入っている「チャンク」のタイルをチェックすることです.