【发布时间】:2014-04-23 08:51:13
【问题描述】:
我正在使用 SDL 用 C++ 制作游戏,我想使用 SDL_FillRect() 渲染粒子。 我已经玩了几个小时的代码,但无论我做什么,粒子都没有绘制。 这是我的渲染函数中的代码(我确定我实际上是在调用该函数):
void Particle::Render()
{
SDL_Rect rect;
rect.x = x;
rect.y = y;
//rect.w = Particle::Particle_Size;
//rect.h = Particle::Particle_Size;
rect.w = 8;
rect.h = 8;
surface = SDL_CreateRGBSurface(SDL_SWSURFACE,8,8,32,0,0,0,0);
if(SDL_FillRect(surface,&rect,SDL_MapRGB(surface->format,0,0,0)) != 0) printf("Error");
//SDL_RenderCopy(renderer,texture,NULL,&rect);
}
控制台没有打印“错误”,所以 SDL_FillRect() 是成功的。但是,没有矩形被绘制到屏幕上。 我尝试使用传入该表面的 SDL_CreateTextureFromSurface() 创建纹理,然后使用 SDL_RenderCopy,它在上面的函数中被注释掉,但在我注释掉它之前它起作用了。我想使用 SDL_FillRect 所以我可以有彩色纹理。
我错过了什么吗?
【问题讨论】:
标签: c++ graphics sdl render particle-system