class dynamic
{
public:
dynamic();
void value();
void move();
sf::RectangleShape rs;
};
dynamic::dynamic()
{
rs.setSize(sf::Vector2f(200,200));
rs.setFillColor(sf::Color::Red);
rs.setPosition(300, 300)
};
void dynamic::move()
{
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
{
spr.move(0, 1);
value();
}
}
void dynamic::value()
{
return spr.getposition.y
}
----------------不同势类---------------如何访问动态变量
class context : public dynamic {
public:
void valueWrite();
};
void context::valueWrite(){
std::cout << spr.getposition.y;
}
----------------游戏类---------------
class Game {
public:
Game();
void draw();
void update();
void loop();
sf::RenderWindow window;
context m_context;
dynamic m_dynamic;
};
game::game(): window(sf::VideoMode(800, 600), "SFML window")
{
}
void game::loop()
{
while (window.isOpen())
{
update();
draw();
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
{
window.close();
}
}
}
}
void game::draw()
{
window.clear();
m_dynamic.render(window);
window.display();
}
void game::update()
{
m_dynamic.move();
m_context.valueWrite();
}
当我运行的主要这个程序,我spr位置加时也一样。 控制台= 300 300 300 300 300 .........
我想写类方面
如何解决这个问题的当前值。
我不清楚你在问什么。你期望'm_context'和'm_dynamic'能够共享相同的状态吗? – NathanOliver
是的,当我按下向下键spr位置改变。但是每次valueWrite函数都是一样的。我想改变这个位置函数的值。对不起,我的英语不好。我希望你能理解我 – caatayk