退出和播放按钮注册不好

问题描述

所以一直在尝试我的退出和播放按钮工作,但由于某些奇怪的原因,他们也没有按照我想要的方式做出反应。当我将一个更改为 else if and if only 语句时,它们要么退出,要么再次更改它们,然后都开始游戏。尽管它们是如何被选择和按下的,但它们表现得就像是同一个按钮而不是个体。

这是我的头文件

A

这里是cpp文件

console.log(foo(b)); // compiler error!
// -----------> ~
// Argument of type 'B' is not assignable to parameter of type 'A'.

举个例子,我的意思是这两个按钮都开始游戏,但如果我把它改成这样:

#pragma once
#include <memory>
#include "State.h"
#include "Game.h"
#include <SFML/Graphics.hpp>

class MainMenu : public Engine::State
{
public:
    enum behavior
    {
        HOVERED,norMAL
    };
private:
    std::shared_ptr<Context> context;
    sf::Text gameTitle;
    sf::Text playButton;
    sf::Text exitButton;
    void hover(sf::RenderWindow& window,sf::Event event);

    //checking certain conditions if it is true or false
    bool isPlayButtonSelected;
    bool isPlayButtonpressed;
    bool isExitButtonSelected;
    bool isExitButtonpressed;

public:
    
    MainMenu(std::shared_ptr<Context>& context);
    ~MainMenu();

    
    void Init() override;

    void Processinput() override;
    void Update(sf::Time deltaTime) override;
    void Draw() override;

};

他们都将退出而不是开始游戏。我一直在搞乱一个 if 和另一个 else 或两者都好像 if 语句。尽管进行了更改和测试,但没有一个按钮单独运行,也没有按应有的方式运行。很好奇如何解决这个问题?

不确定是否应该提供所有标题和 cpp 文件获取更多上下文。

解决方法

我不确定我是否理解您的问题,但在您的示例中,似乎 isExitButtonPressed 最后总是正确的。 您在开始时将其设置为 false,然后在 if 语句中将其设置为 true,该语句始终满足条件,表明您事先将 isExitButtonPressed 设置为 false!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...