[英]Resize image SDL/c++
我有一张图片,我想按比例缩小它,而不是原来的尺寸。
SDL_Rect bulletRect;
bulletRect.x = 10;
bulletRect.y = 10;
bulletRect.w = 10;
bulletRect.h = 10;
SDL_Surface *bullet = IMG_Load("/Users/tonymichaelsen/Documents/documents/Xcode-projects/c++/c++/bullet.png");
Uint32 colorKeyBullet = SDL_MapRGB(bullet->format, 255, 255, 255);
SDL_SetColorKey(bullet, SDL_SRCCOLORKEY, colorKeyBullet);
盲区:
if (drawBullet) //bool set to true in key event
{
SDL_BlitSurface(bullet, NULL, screen, &bulletRect);
}
SDL_Flip(screen);
唯一更改的是当我更改项目符号(图像)的x,y值时。 当我更改w,h时,它不变,并且颜色键无效。
怎么了?
SDL_BlitSurface
不执行缩放,它要求目标大小等于源大小。
您可能需要研究SDL-OpenGL集成,这将使您可以使用视频卡的纹理处理功能来调整Sprite的大小。
可以使用所需大小的新rect代替NULL。 SDL_BlitSurface(bullet,NULL,screen,&bulletRect);
int SDL_BlitSurface(SDL_Surface * src,SDL_Rect * srcrect,SDL_Surface * dst,SDL_Rect * dstrect);
“ srcrect中的宽度和高度确定复制的矩形的大小。dstrect中仅使用位置(宽度和高度被忽略)。”
这里说明了它是如何工作的:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.