私はsfmlを使用しているC++の小さなゲームに取り組んでいます。 TABボタンを押すと、画面の右側に4つのボタンがある小さなメニューが表示されます。私はclass Button
を作成し、クラスにはsf::Text
という属性があります。ここで私はメニューを描画するために使用するコードです。リストイテレータのsf :: Text属性を取得できません
このコードを実行する前に、すべてのボタンが別の機能で作成されています。 rectInGameMenu
はちょうど長方形で、うまくいきます。 win.draw(*currentButton);
は正常に動作しますが、期待されるボタンのテキストはありません。だから私はGetButtonText()
を使うとプログラムがクラッシュする。これでボタンにテキストを描くことができます。私はメモリ内のその場所を読み取ることができないというエラーが表示されます(違反は0x550030BDにあります)。フランス語で申し訳ありませんが、私はフランス語でVisual Studioを使用しています。私は本当にこの問題を解決するために何ができるのか分かりません。私はちょっと研究しましたが、同じ問題を抱えている人はいませんでした...私はこの問題を数日間は受けましたが、私はそれを解決するために何ができるのか本当に分かりません。これを行うより良い方法があれば、私に教えてください。
EDIT:
ここでは、私は私のボタンを作成するコードは次のとおりです。
Button aButton;
aButton = Button(10, "Ressources/Fonts/font.ttf");
aButton.SetButtonText("Button Text");
aButton.setSize(Vector2f(246, 60));
aButton.setFillColor(Color(22, 235, 65));
aButton.setPosition(773, 120);
aButton.GetButtonText().setPosition(240, 30);
rightSideMenuButtons.push_back(aButton);
これは、ゲームウィンドウが作成されたときに呼び出される関数です。
Button::Button(int inFontSize, string inFontButton)
{
fontSize = inFontSize;
fontButton.loadFromFile(inFontButton);
}
void Button::SetButtonText(string inButtonText)
{
buttonText.setString(inButtonText);
buttonText.setFont(fontButton);
buttonText.setCharacterSize(fontSize);
buttonText.setColor(Color(255, 255, 255));
}
これらの関数によって使用されているメソッドです。今ここに私は私のclass Button
に使用私の方法があります。 buttonText
はText
属性です。 fontButton
はFont
属性です。これはあなたに少し助けてくれることを願っています。
ありがとう、私は今夜帰宅するときにそれを試してみます。そして、はい、私はおそらく英語バージョンhahahahaに切り替えるでしょう! – Matduss
フォントが正しく読み込まれていること、テキストに色が付いていること、文字列がありますが、それでも良いことは確認しました。もう少し研究を重ねるうちに、これがポインターの問題である可能性が高いことがわかりました。私は解決策を探し続けるか、あるいは自分のやり方を変えるだけです。 – Matduss
何が間違っているか把握するためにコードをもう少し必要とします – Treycos