SDL学习(2)图形的处理
来源:互联网 发布:网页游戏修改软件 编辑:程序博客网 时间:2024/06/03 16:53
一
1;SDL_Surface*surface =SDL_GetWindowSurface(window); //和下面那一行用于贴图
SDL_Surface*qq1 =SDL_LoadBMP("qq1.bmp");
while(SDL_PollEvent(&event)){
if(event.type==SDL_QUIT) {
quit=true;
}
else if (event.type==SDL_MOUSEMOTION){
int. x=event.motion.x
int. y=event.motion.y
prinf("此时鼠标的坐标为%d,%d“,x,y);
//然后
SDL_FillRect(surface,NULL,0);//更新图片(清除掉上一次的图片
SDL_BlitSurface(qq1,NULL,surface,&rect);//画图
SDL_UpdateWindowSurface(window);*/
// 这一个方法主要在于初始点为 默认点而要调节初始点用下面的
2;
SDL_Rect rect;
rect.x=0; //三个用于设置坐标
rect.y=0;
rect. x=event.motion.x-(qq1 ->w/2);//(后面个减多少为自定义本段为设定在中间位置
rect. y=event.motion.y-(qq1 ->h/2);
这个用于定义图片的位置而要调整大小则用下面的
3; SDL_Init(SDL_INIT_VIDEO);
SDL_Window*window=SDL_CreateWindow("oxy",100,100,//创建一个窗口
800,700,SDL_WINDOW_SHOWN);
SDL_Renderer*rend =SDL_CreateRenderer(window,-1,SDL_RENDERER_ACCELERATED);
SDL_RenderClear(rend);//清屏
// SDL_Surface*surface =SDL_GetWindowSurface(window); //和下面那一行用于贴图
SDL_Surface*catSurface=SDL_LoadBMP("qq1.bmp");
SDL_Texture*qq1=SDL_CreateTextureFromSurface(rend,catSurface);
SDL_Rect rect;
rect.x=0; //三个用于设置坐标
rect.y=0;
rect.w=50000;//调节图片的宽度
rect.h=20000;//高度
SDL_Event event;
bool quit =false;
while(quit==false){
while(SDL_PollEvent(&event)){
if(event.type==SDL_QUIT) {
quit=true; //调节至可以关闭
}
else if (event.type==SDL_MOUSEMOTION){
rect.x=event.motion.x-(rect.w/2);
rect.y=event.motion.y-(rect.h/2);
// SDL_FillRect(surface,NULL,0);//更新图片(清除掉上一次的图片
// SDL_BlitSurface(qq1,NULL,surface,&rect);//画图
SDL_RenderClear(rend);
SDL_RenderCopy(rend,qq1,NULL,&rect);//贴图
SDL_UpdateWindowSurface(window);//更新窗口才可以显示图片
}
}
SDL_Delay(10); //防止电脑CPU过度的运行
SDL_RenderClear(rend);
SDL_RenderCopy(rend,qq1,NULL,&rect);
SDL_RenderPresent(rend);
}
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
3:自动移动位置
//先声明一些变量
bool moveright =true;
bool moveleft =true;
bool movedown =true;
bool moveup =true;
//下面这个函数为自动移动的函数
if (moveright==true){
rect.x++;
if(rect.x+rect.w>=800){
moveright=false;
}
}
else {
rect.x--;
if(rect.x<=0){
moveright=true;
}
}
if (movedown==true){
rect.y++;
if(rect.x+rect.h>=800){
movedown=false;
}
}
else {
rect.y--;
if(rect.y<=0){
movedown=true;
}
}
//PS这个函数有一个重要的地方就是自己加载进去的图片的长和宽一定要一样否则不会达到来回效果 rect.w=200;//大小一定要一样才能在后面的不会出现错误
rect.h=200;
- SDL学习(2)图形的处理
- SDL学习笔记四(事件处理)
- SDL学习(3)图像运动处理
- SDL解析——SDL视频处理(2)
- SDL库的学习笔记之四—事件处理
- (转载)sdl-linux下的图形库
- SDL学习之2
- SDL学习(一)
- SDL学习(二)
- SDL学习(三)
- JAVA学习(九)JAVA图形处理
- CUDA图形处理学习
- 音视频处理-SDL库-SDL的安装-宿主机
- C++ SDL学习之路 2nd —— 第一个显示图片的SDL程序
- SDL 2 游戏编程(四)按键处理
- SDL学习(一) SDL对于bmp的基本处…
- SDL解析——SDL事件处理(1)
- SDL图形入门
- hdu 1505 City Game
- Android遇到的问题及解决(持续更新中)
- 地理知识
- Sigma Function
- 网络层
- SDL学习(2)图形的处理
- 剑指offer-面试题8:旋转数组的最小数字
- oracle索引建立注意的地方
- 2016年数据中心IT技术的五大发展趋势
- 解决nginx负载均衡的session共享问题
- java 内存映射效率好高啊
- Ajax学习(2)
- 【SDUT2416】Fruit Ninja II——积分
- 线程学习(一)----后台线程