@小牛_牛sky @铃铛兮 怎样使一张SDL_Texture*类型图片放到另一张SDL_Texture*类型上,我怎样都解决不了,永远只会显示后放上去的图片,第一张会被第二张覆盖,我只好留一点空隙给第一张图片才能使他们一起显示,如何使一张图片加载在另一张上面
#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <SDL2/SDL_ttf.h>
SDL_Renderer* Renderer = NULL;
SDL_Texture* Texture = NULL;
SDL_Texture* Texturebackground = NULL;
TTF_Font* Font = NULL;
SDL_Surface* Surface = NULL;
SDL_Surface* background = NULL;
SDL_Window* Window = NULL;
int Destroy(void);
int Init(void)
{
SDL_Init(SDL_INIT_EVERYTHING);
TTF_Init();
Window = SDL_CreateWindow("tfinger test",
SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED,
100,100,SDL_WINDOW_SHOWN);
Renderer = SDL_CreateRenderer(Window,-1,SDL_RENDERER_ACCELERATED);
if (Renderer == NULL)
{
Destroy();
return 0;
}
Font = TTF_OpenFont("/system/fonts/DroidSansFallback.ttf",20);
if (Font == NULL)
{
Destroy();
return 0;
}
return 0;
}
int printtext(int x, int y, const char* text)
{
SDL_Color Color;
Color.r = 0xff;
Color.g = 0;
Color.b = 0;
Color.a = 0;
Surface = TTF_RenderUTF8_Blended(Font,text,Color);
if (Surface == NULL)
{
Destroy();
return 0;
}
TTF_CloseFont(Font);
Texture = SDL_CreateTextureFromSurface(Renderer,Surface);
if (Texture == NULL)
{
Destroy();
return 0;
}
SDL_RenderClear(Renderer);
TTF_Quit();
SDL_Rect Rect;
Rect.x = x;
Rect.y = y;
Rect.w = Surface->w;
Rect.h = Surface->h;
SDL_RenderCopy(Renderer,Texture,NULL,&Rect);
return 0;
}
SDL_Surface* Background(void)
{
IMG_Init(IMG_INIT_JPG);
background = IMG_Load("background.jpg");
Texturebackground = SDL_CreateTextureFromSurface(Renderer,background);
SDL_RenderCopy(Renderer,Texturebackground,0,0);
IMG_Quit();
return background;
}
/*SDL_Color* Color(int i)
{
SDL_Color Red {0xff,0,0};
return &Red;
}*/
int Destroy(void)
{
SDL_DestroyRenderer(Renderer);
SDL_FreeSurface(Surface);
SDL_FreeSurface(background);
SDL_DestroyWindow(Window);
SDL_DestroyTexture(Texture);
SDL_Quit();
return 0;
}
int main (int