c++ - SDL 不在游戏窗口上渲染屏幕
问题描述
我正在努力使用 SDL 在游戏窗口上渲染一个正方形。我有两个文件,SZ_Player.h,和SZ.Player.cpp,然后当然是main。我也通过执行“SZ_Player examplePlayer”初始化了 SZ_Player,并通过执行“include”SZ_Player.h 将其包含在内。
我不确定为什么它没有出现,我在下面有代码的图片:
SZ_Player.h
#ifndef playerFile
#define playerFile
#include <iostream>
#include "SDL.h"
class SZ_Player
{
public:
SZ_Player();
~SZ_Player();
void Init();
void Update();
void Input();
void Render(SDL_Renderer* pRenderer);
SDL_Rect player;
int x, y, height, width, R, G, B;
};
#endif
SZ_Player.cpp
#include "SZ_Player.h"
SZ_Player::SZ_Player()
{
}
SZ_Player::~SZ_Player()
{
}
void SZ_Player::Init()
{
player.x = 70;
player.y = 70;
player.w = 100;
player.h = 100;
R = 255;
G = 255;
B = 255;
}
void SZ_Player::Update()
{
}
void SZ_Player::Input()
{
}
void SZ_Player::Render(SDL_Renderer* pRenderer)
{
SDL_SetRenderDrawColor(pRenderer, R, G, B, 255);
SDL_RenderDrawRect(pRenderer, &player);
}
主文件
#include <iostream>
#include "SDL.h"
#include "SDL_image.h"
#include "SDL_mixer.h"
using namespace std;
#include "SZ_timer.h"
SZ_Timer aTimer;
const int DELTA_TIME = 10;
bool done = false;
#include "SZ_Player.h"
SZ_Player examplePlayer;
int main(int argc, char *argv[])
{
if (SDL_Init(SDL_INIT_EVERYTHING) < 0);
// Creates the game window
SDL_Window* game_window = SDL_CreateWindow("Rise", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE);
// Creates the game render to draw on the game window.
SDL_Renderer* game_renderer = SDL_CreateRenderer(game_window, 0, 0);
// Game Loop
while (!done)
{
aTimer.resetTicksTimer();
SDL_SetRenderDrawColor(game_renderer, 0, 0, 20, SDL_ALPHA_OPAQUE);
SDL_RenderClear(game_renderer);
examplePlayer.Render(game_renderer);
SDL_RenderPresent(game_renderer);
// If less time has passed than allocated block, wait difference
if (aTimer.getTicks() < DELTA_TIME)
{
SDL_Delay(DELTA_TIME - aTimer.getTicks());
}
}
SDL_Quit();
// Exits program
return 0;
}
解决方案
推荐阅读
- json - 解码 JSON - nil 结果,没有错误
- java - 数组的抽象?
- git - 我无法在 VSCode 中进行更改
- java - java.sql.DriverManager 未准备好进行测试
- angular - 谁能帮我用这段代码获得 100% 的代码覆盖率?简单地检查函数是否被调用也可以
- excel - 将非空行导出到单个 CSV 文件中
- html - 如何对齐气泡消息顶部的文本
- javascript - 如何从 javascript 中的本地 .csv 文件中读取以填充字符串数组?
- c++ - 大写单个字母而不是整个句子
- regex - jq 1.6/oniguruma 5.9.6 抛出“Regex failure: invalid pattern in look-behind”错误