-2
#include "box.h"
box::box()
{
boxX= 50.0f;
boxY= 50.0f;
box.setSize(Vector2f(boxX, boxY));
box.setFillColor(Color::Red);
}
box::~box()
{
}
void box::Update(RectangleShape plr)
{
*boxXPtr= 550.0f;
*boxYPtr= 550.0f;
box.setSize(Vector2f(boxX, boxY));
}
void box::Draw(RenderWindow & window)
{
window.draw(box);
}
更新機能が実行されても、表示されるボックスは50x50です。私は元の値がポインタを使用するときに変更されたと考えていましたが、値は関数に関係なく変更されています。C++関数内の元の変数の値を変更するにはどうすればよいですか?
#ifndef BOXP_H
#define BOXP_H
#include<SFML\Graphics.hpp>
using namespace sf;
class BoxP
{
public:
BoxP();
~BoxP();
protected:
RectangleShape box;
float boxX;
float boxY;
float* boxXPtr= &texBoxX;
float* boxYPtr= &texBoxY;
};
#endif
私は基本クラスの.hを含めていくつかのものを変更しました。それでも同じ問題があります。これまでの援助のための
おかげ
あなたの 'box.h'ファイルを表示してください。 –
'textBoxX'と' texBoxY'とは何ですか?クラス宣言も表示できますか? – HatsuPointerKun
ここで、 'boxXPtr'と' boxYPtr'は 'box :: Update()'と呼ばれていますが、どこにあるのでしょうか?見える?なぜ 'Box'のコンストラクタは同じ名前の新しいローカル変数を作成し、すぐにそれを破棄するのですか? –