SDL,好东西!(ZT)

文章介绍了实现实景聊天室可使用的技术SDL。它具有跨平台、简单、支持多语言调用等优点,还拥有超100个可用开放源码库。相比微软DirectX、Win32 GDI等,SDL更适合开发者实现小理想,是不错的选择。
文章来源:http://www.hongliang.net/index.php?page=7
 
 当我每天每夜都在冥思苦想该使用什么技术如何实现我的实景聊天室的梦想时,刘杉告诉了我,那不会是一个梦,梦已经变成了现实。
 
 那就是,使用SDL!!!!!!!!!
 
 SDL是Simple Directmedia Library的缩写,第一个字母非常重要,simple。
 
 优点:
 
 1、跨平台。太棒了。如果使用微软的DirectX,那么就限制在了微软的平台之上。而SDL已经封装了狠多,并且抽象到了与平台无关的程度,这个简直可以用amazing来形容。
 
 2、简单。如果学习DirectX,那还要具备或多或少的COM技术。天啊,我是个笨人,COM对我来说太难了,我曾经也试图学习过它,可是我一看见那些IUNKNOWN::xxxx就头疼。。。现在好了,SDL是完全C函数库,而且使用起来简单,又不用去学COM和DirectX,对于我那小小的理想来说,Win32 GDI都是足够的,更何况SDL,所以SDL的功能对我来说肯定是够用的。
 
 
 为什么我不用Win32 GDI呢?呵呵,狠简单,没前途,而且我也不善于那方面。我看过笨笨自己做的一个效果图,狠不错,不过要是使用Win32 GDI的话,难免又要跟MFC之类的打交道,我现在可真是不想再去搞这方面的东西了。
 
 3、支持的语言多。虽然SDL是用C写的,但是以下语言都可以调用SDL库做开发:
 Ada
 C#
 Eiffel
 Erlang
 Euphoria
 Guile
 Java
 Lisp
 Lua
 ML
 SDLML
 OCamlSDL
 Objective C
 SDLOBJC
 Pascal
 JEDI-SDL
 Perl
 PHP
 Pike
 Pliant
 Python
 Ruby
 RUDL
 
 4、基于SDL的可用开放源码库有100多个!你看哪个好就可以用哪个,相当爽了。当然了,我刚开始的时候是不会使用那些库的,如果将来做成了,想完善、美化,可以考虑使用那些库。有些库还是狠不错的,比如3D的、字体的。
 
 
 SDL,我看准你了!
 
 http://www.libsdl.org
 
 BTW: 最nb的语言还是C,啥玩意都不行,hia~~hia~~~
先展示下效果 https://pan.quark.cn/s/5061241daffd 在使用Apache HttpClient库发起HTTP请求的过程中,有可能遇到`HttpClient`返回`response`为`null`的现象,这通常暗示着请求未能成功执行或部分资源未能得到妥善处理。 在本文中,我们将详细研究该问题的成因以及应对策略。 我们需要掌握`HttpClient`的运作机制。 `HttpClient`是一个功能强大的Java库,用于发送HTTP请求并接收响应。 它提供了丰富的API,能够处理多种HTTP方法(例如GET、POST等),支持重试机制、连接池管理以及自定义请求头等特性。 然而,一旦`response`对象为`null`,可能涉及以下几种情形:1. **连接故障**:网络连接未成功建立或在请求期间中断。 需要检查网络配置,确保服务器地址准确且可访问。 2. **超时配置**:若请求超时,`HttpClient`可能不会返回`response`。 应检查连接和读取超时设置,并根据实际需求进行适当调整。 3. **服务器故障**:服务器可能返回了错误状态码(如500内部服务器错误),`HttpClient`无法解析该响应。 建议查看服务器日志以获取更多详细信息。 4. **资源管理**:在某些情况下,如果请求的响应实体未被正确关闭,可能导致连接被提前释放,进而使后续的`response`对象为`null`。 在使用`HttpClient 3.x`版本时,必须手动调用`HttpMethod.releaseConnection()`来释放连接。 而在`HttpClient 4.x`及以上版本中,推荐采用`EntityUtils.consumeQuietly(respons...
SFML(Simple and Fast Multimedia Library)和SDL(Simple DirectMedia Layer)都是跨平台的多媒体开发库,常用于游戏开发和其他多媒体应用,两者各有优劣,难以简单判断哪个更好,需要根据具体需求进行选择,其对比如下: - **功能特性层面**:SFML在2D图形渲染和音频方面功能更高级、特性更多;而SDL的音频功能较为基础,2D图形渲染能力也不如SFML,但SDL能提供硬件的低级访问,可使开发者更灵活地操作硬件[^2] [^3]。 - **易用性角度**:对于使用C++的开发者,SFML使用C++及面向对象的方式提供接口,会更加易于使用;SDL提供的接口更加底层,适合有一定开发经验、希望对底层有更多控制的开发者 [^3]。 - **稳定性和成熟度方面**:SDL更为成熟、稳定,被广泛使用,在很多小型项目和教育目的的游戏开发课程中被推荐作为起点;SFML则可能存在较多bug [^1] [^3]。 综上所述,如果开发者追求高级的图形和音频功能、偏好使用C++以及面向对象编程,且对稳定性要求不是极高,那么SFML是不错的选择;如果开发者需要更底层的控制、对效率有要求、希望使用一个成熟稳定的库,或者是初学者希望从基础学起,SDL可能更合适。 ```python # 简单示例代码,仅作示意 # 假设使用SDL进行窗口创建 import sdl2 import sdl2.ext sdl2.ext.init() window = sdl2.ext.Window("SDL Window", size=(800, 600)) window.show() # 主循环 running = True while running: events = sdl2.ext.get_events() for event in events: if event.type == sdl2.SDL_QUIT: running = False break sdl2.ext.quit() # 假设使用SFML进行窗口创建(仅python - pysfml - cpython包示例) import sfml as sf window = sf.RenderWindow(sf.VideoMode(800, 600), "SFML Window") while window.is_open: for event in window.events: if type(event) is sf.CloseEvent: window.close() window.clear() window.display() ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值