gpt4 book ai didi

c++ - sfml 从另一个类中抽取

转载 作者:行者123 更新时间:2023-11-30 02:47:40 26 4
gpt4 key购买 nike

我正在尝试使用 sfml 在 C++ 中制作我的第一个乒乓球游戏,但我遇到了一些问题当我尝试调用 window.draw() 函数时,我认为我的代码将解释得最多。

这是我的游戏.h

#pragma once
#include <SFML/Graphics.hpp>

class Game
{
public:
Game();
void run();
private:
void processEvents();
void update();
void render();
sf::RenderWindow mWindow;
};

我的游戏.cpp

#pragma once
#include "Game.h"
#include "Paddle.h"

Game::Game()
: mWindow(sf::VideoMode(640,480), "Pong")
{

}

void Game::run()
{
while (mWindow.isOpen())
{
processEvents();
update();
render();
}
}

void Game::processEvents()
{
sf::Event event;
while(mWindow.pollEvent(event))
{
if(event.type == sf::Event::Closed)
mWindow.close();
}
}

void Game::render()
{
mWindow.clear();
mWindow.draw(Paddle::player1);
mWindow.display();
}

void Game::update()
{

}

我的 Paddle.h 和 paddle.cpp

#pragma once
#include <SFML/Graphics.hpp>
class Paddle
{
public:
Paddle(int width, int height);
sf::RectangleShape player1(sf::Vector2f(int width,int height));
sf::RectangleShape player2(sf::Vector2f(int width,int height));
private:

};

我的桨.h

#include "Paddle.h"


Paddle::Paddle(int width,int height)
{

}

我的 main.cpp

#include "Game.h"
#include "Paddle.h"
int main()
{
Game game;
Paddle player1(10,60);
Paddle player2(10,60);
game.run();
}

这就是我的全部代码。问题是我不知道如何在我的 Game.cpp 中绘制 Racket 我想我应该使用某种指针或引用参数。当我这样做时:

void Game::render()
{
mWindow.clear();
mWindow.draw(Paddle::player1);
mWindow.display();
}

我得到一个错误。我该如何解决这个问题?

最佳答案

你需要类似的东西

class Game
{
public:
Game(Paddle & p1, Paddle & p2);
...
private:
...
Paddle & mP1;
Paddle & mP2;
};

Game::Game(Paddle & p1, Paddle & p2)
: mWindow(sf::VideoMode(640,480), "Pong"),
mP1(p1), mP2(p2)
{
}

void Game::render()
{
mWindow.clear();
mWindow.draw(mP1);
mWindow.display();
}

int main()
{
Paddle player1(10,60);
Paddle player2(10,60);
Game game(player1, player1);
game.run();
}

关于c++ - sfml 从另一个类中抽取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22578419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com