所以我有三个类Application,DrawMgr和Cube。在Application.cpp中是我的主循环,我在其中调用DrawMgr :: DrawCube,我在其中调用Cube :: Draw。
Application.cpp
SDL_Surface* screenSurface;
void DrawMgr::DrawCube()
{
gCube.Draw(screenSurface);
}
DrawMgr.cpp
void Cube::Draw( SDL_Surface* destination )
{
SDL_Rect offset;
offset.x = 100;
offset.y = 100;
SDL_FillRect(cube, NULL, SDL_MapRGB( cube->format, 0, 0, 0 ) );
SDL_BlitSurface( cube, NULL, destination, &offset);
}
Cube.cpp
#include<stdio.h>
int calculate(int temp)
{
int flag = 0,i = 2,tmp = 0;
for(i = 2;i < temp;i++)
{
if(temp % i == 0)
{
return 1;
}
}
}
int main()
{
long int i = 2,j,count = 0,n = 600851475143,flag = 0,prime = 0;
long int check;
while(i < n)
{
if(n % i == 0)
{
check = calculate(i);
if(check != 1)
{
prime = i;
printf(" Prime number is : %ld \n", prime);
}
}
i++;
}
printf(" Max prime number of %ld is : %ld \n",n,prime);
return 0;
}
当我运行程序时,立方体不会出现,我做错了什么?
答案 0 :(得分:0)
您确定要使用SDL2.0吗?因为事情已经改变,你需要一个SDL_Renderer和一个SDL_Texture。好像你正试图以SDL 1方式做到这一点。
在SDL2中,为了更新屏幕,我们使用这些调用
SDL_RenderClear(sdlRenderer);
SDL_RenderCopy(sdlRenderer,sdlTexture,NULL,NULL);
SDL_RenderPresent(sdlRenderer);
RenderClear擦除屏幕内容。 RenderCopy在其上绘制一些纹理。 RenderPresent在屏幕上绘制最终结果。
有关新流程的更多详细信息,请参阅迁移指南。