摘要:
在进行编写SDL程序时,会出现很多意外情况,比较常见的问题有:无法加载“SDL.h”,“No such file ordirectory” 这应该是最常见的一类问题,原因是你SDL安装的有问题,比如说你的SDL头文件没有放到指定的位置,会引起系统无法找到头文件,你可以这样测试一下: 在包含的sdl.h上右键,点“go to Header file”如果能够转到sdl.h这个头文件,证明你sdl安装没问题,如果不能则要看一看是不是头文件加载的不对,如果你是按教程的第一种方式安装的SDL,应该这样加载头文件:#include <sdl\SDL.h> 注意这里<>里的字符区分 阅读全文
摘要:
到目前为止,我们的程序还是静态的,只能显示图片,不能接收任何的按键、不能检测鼠标等。所有窗口程序基本上都是基于事件驱动的,当某个事件发生时,程序会做出相应的相应,这种方式和控制台程序有很大的不同,这种方式更加接近真实的世界. 那么什么是事件呢?事件可能是由使用者操作产生的,比如使用者按下一个键,松开一个键,或点击了鼠标等,也可能是硬件产生的比如时钟脉冲等。任何一个窗口程序都使用一个事件队列来保存这些事件,队列的一个特性便是先进先出,先进入队列的事件会被优先处理。如下图所示,事件在队尾入队,队头出队,先发生的事件先入队,出队的时候也会先出队。事件入队是由系统处理的,我们不用关心,我们关心的... 阅读全文
摘要:
视频子系统中构基本概念和常用数据结 视频子系统中基本概念: 1.坐标系统 SDL视频子系统的坐标系统,SDL坐标是以屏幕左上角作为坐标原点,x轴向右增长,y轴向下增长。象这样: SDL坐标系统 这和我们以前知道的笛卡尔坐标系不一样,大家要牢记这一点。再者,SDL中任意一个表面(包括显示表面)的左上角是坐标原点,任意一个表面都用一个矩形来表示大小。 2. 像素(Pixel) 屏幕上一个个光点称为像素,是屏幕显示的最小单位,我们所说的屏幕分辨率1024*768,就是指一屏有个768行,每行有1024个像素。如果只显示黑白色,一个像素只需要0,1即可表示,但大多数情况下,屏幕不只... 阅读全文
摘要:
到现在为止我们只创建了一个窗口,其他什么都没干,这次我们将在窗口里显示图片,这是视频子系统最常用的功能,显示图片。SDL视频子系统只能加载bmp格式的位图。调用函数是SDL_Surface *SDL_LoadBMP(const char *file);这个函数的参数是c语言的字符串,返回值是一个绘图表面。在SDL中有两种绘图表面,第一种是使用SDL_SetVideoMode函数生成的显示表面(或窗口),显示表面是唯一的,只能使用SDL_SetVideoMod生成,显示表面可以直接显示在屏幕上;除了显示表面,加载图片生成的表面,加载字体生成的表面,这些表面不能直接显示在屏幕上,这是这两种表面.. 阅读全文
摘要:
SDL视频子系统 在SDL中最为常用子系统就是视频子系统。这里说的视频不是指我们平常播放的电影等,而是指在屏幕上显示出来的东西,你需要在屏幕上显示图片、文字等那就必须使用视频子系统,否则什么都看不到,视频子系统支持:设置视频模式或者说创建视频窗口;支持直接的图像帧缓冲;支持Alpha像素混合;支持Blit位块传输(可以硬件加速);支持窗口管理;支持图形渲染。 要使用视频子系统首先要创建一个SDL窗口(或者说设置SDL的显示模式),我们可以使用: /* 功能:建立SDL显示表面 参数:int width 窗口宽度 单位象素 int height 窗口高度 单位象素 in... 阅读全文
摘要:
上一次我们建立起了SDL环境,接下来,我们谈一谈什么是SDL?如何起动和退出SDL. Simple DirectMedia Layer库,简称SDL,它是一个跨平台的多媒体库,以用于直接控制底层的多媒体硬件的接口。这些多媒体功能包括了视频、音频、键盘和鼠标(事件)、游戏摇杆等。当然,最为重要的是提供了2D图形帧缓冲(framebuffer)的接口,以及为OpenGL与各种操作系统之间提供了统一的标准接口以实现3D图形。也就是说我们通过这个图形库可以自己写游戏,播放电影、歌曲等等,哪些C语言基本库里无法完成的任务,我们可以通过SDL的库完成,只要按上一次的要求安装完了SDL,我们就可以自由... 阅读全文
摘要:
SDL安装C语言没有图形库,似乎编写C语言的程序就要面对那个黑黑的控制台窗口,这也是很多人对C语言提不起兴趣的原因,但我们可以使用第三方的图形库,比如说open GL,directX,SDL等等,其中SDL比较小巧,并且是开源的,适合入门者学习。有了图形库以后我们就可以编写界面丰富多彩的程序了,你会发现一片新的天地! SDL(Simple DirectMedia Layer)是一个自由的跨平台的多媒体开发包,适用于 游戏、游戏SDK、演示软件、模拟器、MPEG播放器和其他应用软件。 SDL图形库包括八个子系统:视频、音频、事件、光驱、文件读写、游戏杆、时间、进程。最经常使用的是前三个,每一.. 阅读全文