调整图像大小SDL/c++
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集成,这将允许你使用视频卡的纹理功能来重新缩放精灵。
不是NULL,你可以传递一个新的矩形与你需要的大小。SDL_BlitSurface(子弹,NULL, screen, &
int SDL_BlitSurface(SDL_Surface *src, SDL_Rect * srrect, SDL_Surface *dst, SDL_Rect * dstret);
"矩形的宽度和高度决定了复制矩形的大小。只有位置在直域中被使用(宽度和高度被忽略)。"
它解释了它是如何工作的:
http://www.libsdl.org/docs/html/sdlblitsurface.html相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- Mix_Init和Mix_OpenAudio SDL之间的区别是什么
- SDL 窗口不会弹出
- SDL 操纵杆按钮按下/C++
- VSCode IntelliSense无法识别SDL框架的SDL_image扩展库
- C++/SDL "initial value of reference to a non-const must be an lvalue"
- SDL 映像:无法打开映像,仅显示错误消息
- 如何在 3D OpenGL 场景上绘制 SDL 2D 矩形?
- "Undefined symbols for architecture x86_64" 在 SDL 2 (macOS) 中
- 为什么 SDL 在 Mac 上比 Linux 慢得多?
- 在 OSX 上打开 SDL 窗口时不要打开终端窗口
- SDL + OpenGL ES 2.0 使用着色器显示纹理
- SDL GPU 为什么将两个图像分成两个单独的循环更快?
- 在 cmake 中找不到 SDL 库
- SDL/C++: 如何平滑但随机地移动矩形?
- 如何与 SDL 库链接?
- 为什么我的C++代码不呈现 SDL 矩形?
- 为什么要在初始化SDL之前在SDL中声明指针
- C++/SDL 如何覆盖数组?
- 在 SDL 中水平减小静态图像进度条