#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。我认为在使用指向它的指针时会改变原始值,但是只有在函数内改变了值。
#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并更改了一些内容。还是有同样的问题。
感谢目前为止的帮助
答案 0 :(得分:4)
这两个陈述
float* boxXPtr= &texBoxX;
float* boxYPtr= &texBoxY;
导致新变量即时显示,这显然是阴影类成员。
boxXPtr= &texBoxX;
boxYPtr= &texBoxY;
是修复。