找回密码
 赶紧注册吧

QQ登录

只需一步,快速开始

查看: 2838|回复: 0
打印 上一主题 下一主题

最后仍是感激各位始终以来的支撑 [复制链接]

注意:1、各网友务必提高交友安全意识,不要轻易参加非天府交友网官方举办的见面交友活动,以防酒托,饭托或引发其他危险;请详细阅读《天府交友网服务条款》和《免责申明》!

Rank: 3Rank: 3

升级  79.33%

跳转到指定楼层
楼主
发表于 2011-10-24 03:20:55 |只看该作者 |倒序浏览
相关的主题文章:

  
   也可吃稀黄荷包蛋
  
   她也常常为此受到****们的群殴
  
   除了草料
  
   10、11、12、狗狗
  
   1.帅有个屁用
  
GCC for Win32 开发环境介绍(5)
第四章 跨平台图像显示库――SDL
第一节 与SDL第一次密切接触
SDL,也就是 Simple DirectMedia Layer 是一个针对 声音,键盘,鼠标,遥杆,通过OpenGL的3D以及2D处理的底层跨平台函数库。她主要支持的平台有Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, 和QNX. 。当然,还有一些非官方的支持平台。
总体来说,SDL对图像的处感性能还是不错的,而且能在基础不修正代码的情形下,能支撑多平台的编译。这点确实是十分不错的。如果你想开发什么跨平台的游戏之类的,SDL确切是一个不错的抉择。其次,SDL是用C写的,所以也可以得到很多其余语言的支持,主要有Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby, 和 Smalltalk
SDL的官方网站是
SDL的使用概览
在正式应用中SDL的易用性也是不言而喻的。通过一些简略的代码便可能编写出图形的显示程序。而且,SDL的编程思维也是很轻易懂得的。
SDL的程序代码重要有四局部组成。她们分辨是 初始化阶段,程序运行阶段,事件期待与处置阶段,资源开释阶段。
初始化阶段,主要完成程序的初始化工作。如SDL的函数初始化,还有程序本身的一些初始化操作,如窗口的树立,背风景的设置,等等。程序运行阶段,主要实现程序中所需要的媒体载入,和显示等,比方窗口的初始化内容的刷新等。事件等待与处理阶段,主要是用于等待窗口 键盘 摇杆 鼠标等事件然后更具程序所设定的进行相干的操作处理。资源释放阶段,主要用于释放程序中所用到的系统资源,如image图片资源的释放等。
这四个阶段的代码是无比容易实现,而且有必定的格局和方式。所以,绝对来说固然SDL的功效强盛,但是代码的编写也还是比拟清楚和简便的。
SDL库的编译与安装
SDL的装置分为两种,一种为从源码编译出库,而后安装。另一种是直接使用官网上为咱们编译好的SDL库。下面我逐一先容不同的安装方法。
我们先来看看从源码编译安装的进程。
我们要从SDL的官方网站下载 SDL-1.2.x.tar.gz 。然后从MinGW的官方网站高低载MSYS-1.0.10.exe和msysDTK-1.0.1.exe。第一个为SDL的源代码,第二个和第三个为MinGW的POSIX接口。假如你筹备在Cygwin下编译,那么第二,第三个包就不须要下载安装了。
解紧缩源码包到一个目录下,然后开启你的SH,切换到你SDL源代码所保留的目录下。然后输入如下的一组命令。
$./configure
$make
上面两条指令就让你的GCC编译出了SDL。如果你使用的是MinGW,那么可以将include,lib,bin目录复制出来。这里我假设我们复制到 $(SDL) 目录中。如果你使用的是Cygwin,那么你需要输入如下命令让Cygwin主动安装。
$make install
当然,MinGW也是可以通过这种方式安装的。这样,SDL将安装入MinGW的MSYS安装目录中。
你也可以从官方网站上下载已经编译好的开发库。所要是SDL的开发库 SDL-devel-1.2.x-mingw32.tar.gz。将开发包里的货色解压缩到 $(SDL)目录中。
通过以上两种方式,我们就已经将SDL的开发环境正常安装到我们的机器上了。
当然,最后别忘却把SDL.dll这个文件复制到体系目录下,或者放在环境变量PATH所指向的一个目录中,亦或是你主程序所在的目录下。这样你的SDL程序才能够畸形运行。
一个简单的SDL例子
下面给出一个SDL例子程序的源代码,以及他的Makefile文件,我们可以从Makefile文件中很直观的看到编译程序所需要的参数。
下面是C的例子代码
//main.c
#include <stdio.h>
#include <stdlib.h>
#include <SDL.h>
int main(int argc, char *argv[]){
SDL_Surface *screen;
SDL_Event event;
int isRun=1;
SDL_Init(SDL_INIT_VIDEO);
screen=SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);
SDL_Flip(screen);
while(isRun){
SDL_WaitEvent(&event);
switch (event.type){
case SDL_QUIT:
isRun=0;
break;
}
}
SDL_FreeSurface(screen);
return(0);
}
下面是Makefile文件。
#Makefile
SDL_INCLUDE=$(SDL)/include
SDL_LIB=$(SDL)/lib/
all:
gcc -I$(SDL_INCLUDE) -c main.c -o main.o
gcc -L$(SDL_LIB) -o main main.o -lmingw32 -lSDLmain -lSDL
你所双击运行你所编译出来的程序,你将会看到一个相似于如下图所示的窗口。
上面那组代码的构造就是一个比较典范的SDL的代码格式。
初始化阶段
SDL_Surface *screen;
SDL_Event event;
int isRun=1;
SDL_Init(SDL_INIT_VIDEO);
程序运行阶段
screen=SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);
SDL_Flip(screen);
事件等待与处理阶段
while(isRun){
SDL_WaitEvent(&event);
switch (event.type){
case SDL_QUIT:
isRun=0;
break;
}
}
资源释放阶段
SDL_FreeSurface(screen);
至此,我们有关SDL库的简单介绍就到这里了。其实,SDL还有很多东西。我们将在后面的章节具体介绍SDL的神气功能。
文外音:
感到自从上一篇文章至今已经从前良久了。实在最近感觉蛮忙的吧。但我也不晓得本人忙点什么。不外这些日子所阅历的事情也良多,感悟也许多。然而,心境却被这些事件弄的很不好。兴许正像我所说的,光来到世界,世界却由于黑暗不来接收光,反而弃绝光。可如今作为一个一般人的我又能怎么样呢?争夺我所爱的?仍是等候所爱的?我向来不爱好跟人争,总以为该是我的,总会是我的,不该是我的怎么尽力也是无用的。可是现在我却感到也许我错了吧。呵呵,不游戏,不吸烟,不饮酒的我看来真的只合适搞搞技巧什么的吧。
最后还是感激各位始终以来的支持。同时,如果你有任何的问题和倡议都可以提出来。为了您能及时正确的取得回复,请到
NERVE软件开发组(NDT)NERVE Development Team北斗星君(黄庠魁)
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏0

使用道具 举报

※为保护您的个人隐私,防止被恶意盗用,在论坛中不得留下手机、QQ、邮箱等联系方式,否则将被屏蔽!,若有需要,请发送站内消息
您需要登录后才可以回帖 登录 | 赶紧注册吧

关于我们|网站地图|帮助中心|商务合作|法律声明|诚聘英才|联系我们| 时尚 娱乐 成都婚庆公司 网站制作天府星空
Copyright © 2010-2011 天府交友(Www.Tflove.Com)版权所有