SFML多房间游戏设计,如何组织程序?

时间:2018-02-23 15:29:42

标签: c++ game-engine sfml

使用c ++和sfml制作游戏时,如何组织多个级别?在我的游戏中会有多个房间,我打算通过更改sf::View来改变房间,但我不想要一个无组织的冗长的main.cpp,所以我是否要让每个房间/级别成为一个单独的功能?或者创建一个管理当前房间/级别的课程,然后相应地切换房间?什么是在sfml游戏中组织多个关卡的最佳方式?谢谢。

2 个答案:

答案 0 :(得分:1)

创建游戏我真的很鼓励你阅读有关游戏设计和SFML游戏架构的书籍。 https://www.sfml-dev.org/learn.php。游戏不是一个简单而快速的程序,必须得到一个非常好的概念。花点时间,测试SFML并了解你的环境,否则你会浪费时间。

答案 1 :(得分:0)

我决定使用枚举类,感谢链接和建议domsson。我的枚举类和switch语句如下所示:

int windowWidth = 5000;//width of window
int windowHeight = 5000;//height of window
sf::View leveltwo(sf::FloatRect(x, y, 5000, 5000));
sf::View start(sf::FloatRect(0, 0, 2500, 1500));
sf::RenderWindow window(sf::VideoMode(windowWidth, windowHeight ), "Awesome Game" );


enum Levels{
    StartRoom, LevelTwo
};
Levels room = StartRoom;
void WhatRoom(int TheLevel){
    switch (room){
        case StartRoom:
            window.setView(start);
            if (TheLevel == 2){
                room = LevelTwo;
            }

        case LevelTwo:
            window.setView(leveltwo);

    }
};

这非常有效。