初学者尝试通过游戏编程学习继承
Beginner trying to learn inheritance with game programming
我正在为我正在制作的SFML游戏制作一个框架,但我在继承方面遇到了问题。我以为我知道怎么做,但似乎不对。我希望我的main基本上只调用GameLoop,就这样。在我的GameLoop类中,我有制作窗口和运行游戏的方法。然后我希望我的GamePlayScreen类能够真正处理游戏逻辑,但由于某种原因,我不知道如何从GameLoop继承。我正在看一个视频,那个家伙正在使用C#,这就是为什么我在转换它时遇到问题https://www.youtube.com/watch?v=WhbeqOOSDEo&索引=2&list=PLfTDIoEcaNroztBVGPA0aU3NbOauRVIe3。
GameLoop.h
#pragma once
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <string>
class GameLoop
{
public:
GameLoop(int width, int height, std::string title);
virtual void Run();
virtual void LoadContent();
virtual void Initialize();
virtual void Update();
virtual void Render();
sf::RenderWindow window;
};
GameLoop.cpp
#include "GameLoop.h"
GameLoop::GameLoop(int width, int height, std::string title)
{
window = sf::RenderWindow(sf::VideoMode(width, height), title, sf::Style::Default);
}
void GameLoop::Run()
{
LoadContent();
Initialize();
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
Update();
window.clear();
Render();
window.display();
}
}
void GameLoop::LoadContent()
{
}
void GameLoop::Initialize()
{
}
void GameLoop::Update()
{
}
void GameLoop::Render()
{
}
GamePlayScreen.h
#pragma once
#include "GameLoop.h"
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
class GamePlayScreen : public GameLoop
{
public:
GamePlayScreen();
void Initialize();
};
GamePlayScreen.cpp
#include "GamePlayScreen.h"
GamePlayScreen::GameLoop(800, 600, "Game");
{
}
void GamePlayScreen::Initialize()
{
GameLoop game(800, 600, "Game");
}
当您"新建"类时,将自动调用构造函数。只需在GamePlayScreen中创建一个匹配的构造函数,系统就会首先调用派生的构造函数,但签名必须匹配。
class GamePlayScreen : public GameLoop
{
public:
GamePlayScreen();
GamePlayScreen(int width, int height, std::string title);
void Initialize();
};
也许这不是一个真正的答案,但我不能发表评论。正如我所看到的,主要主题是关于"处理多个屏幕"。因此,您可以查看本教程:https://github.com/SFML/SFML/wiki/Tutorial:-管理不同的屏幕
相关文章:
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 模板元编程:如何将参数包组合成新的参数包
- Qt Q串行端口未编程设备未关闭
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 模板元编程 - 尝试实现维度分析
- 我是 c++ 的新手.学习基本知识后,我想做井字游戏.对于印刷板,我在下面写代码,但它显示错误
- 我是编程新手
- 使用类、私有、公共、构造函数、函数、整数和字符串对进一步学习进行编程
- 我正在学习编程,我遇到了看和说序列.我尝试用c ++编写代码
- DirectX/C++3D引擎编程:现在学习,还是等待DirectX 12
- 我正在使用Xcode进行c ++编程和学习。为什么我不能在一个项目中放置许多具有 MAIN 功能的单独源文件?
- 有哪些学习动画编程的好资源
- 编译来自学习现代 3D 图形编程的失败代码 函数___tmainCRTStartup中引用未解析的外部符号_main
- 正在学习《编程原理与使用C++的实践》第4章中的演练.Bjarne Stroustrup
- 在学习C#之前,必须先学习OOP(C++上的面向对象编程)
- 套接字编程学习
- 在哪里学习硬件编程
- 我正在学习c++服务器编程,但线程不工作
- 初学者尝试通过游戏编程学习继承