自己翻译的一套SDL2.0的教程
sdl吧
全部回复
仅看楼主
level 5
阿豆粉丝 楼主
鉴于SDL2.0的教程在网上寥寥无几(事实上英文网站上也没几篇),就翻译了这么一套国外网友twinklebear写的教程……
个人推广SDL2.0的原因是因为觉得SDL1.2那个绘图效率实在太低……在前几年的上网本之类配置的机器上,跑个hello world都只能达到30+fps。
个人感觉(其实我没看过源码)SDL1.2应该是个跟当年的DirectDraw差不多的东西,像素填充什么的,有相当程度上是要磨CPU的。而SDL2.0从绘图方式上就革新了,抛弃了之前的surface的模式,把实际绘制的东西改为了Texture,而把之前的surface改为了创建Texture的一个临时环节。而texure,顾名思义,其实就是DirectX、OpenGL这些底层的3D硬件加速API的贴图。
而这套教程供有点C语言基础又想要学习2D游戏编程的人看,仅做抛砖引玉之用。原教程和我的翻译的诸多不严谨之处,还望包涵并指出。
而SDL2.0本来就在开发中,还没有发布正式版本,这或许会给初学者留下诸多无用的障碍。遇到类似的问题我们共同讨论。另外,SDL2.0的API已经确定下来了,之后API的功能、使用方法应该不会发生大变更了,应该不会发生今天写的代码更新一下库就不能用了之类问题,大概可以放心用了。此外,听说SDL2.0离正式版发布不远了……
楼下放教程目录……
2013年03月24日 10点03分 1
level 5
阿豆粉丝 楼主
目录:http://adolfans.github.com/sdltutorialcn/blog/2013/01/25/sdl-2-dot-0-tutorial-index/
(内附原文地》址,原文需要梯子)
其中除了最后一篇定时器还没有翻译之外,其他都大概翻译了。
除了一开始翻译的几篇,之后的几篇的翻译都带着原文,希望有网友能帮我查错……(其实我就是来找人帮我看看的)
这些原文大概会在那里挂几天,过几天我会删掉它们。而博客里诸多混乱的地方还请见谅。
由于本人时间精力问题,其实这篇教程的很多地方我自己并没有亲自操作测试,有问题还望提出。
2013年03月24日 10点03分 2
level 12
好东西,顶起
2013年03月24日 23点03分 3
level 6

2013年03月25日 23点03分 4
level 5
阿豆粉丝 楼主
咦,不仅加精,而且置顶了?感谢吧主~[Love]
2013年03月27日 16点03分 5
level 6
不错,好评
2013年04月08日 07点04分 6
level 5
等正式版吧……我比较关注可移植性
2013年04月14日 01点04分 7
似乎一两个月之内就会发布正式版。话说你说的可移植性是指哪方面,它本身就支持多个平台了啊。
2013年04月14日 01点04分
@阿豆粉丝 官网上有发布正式版的消息么?
2013年04月14日 03点04分
回复 Fallenworlder :slouken在邮件列表里说预计这两个月就发布正式版。
2013年04月14日 03点04分
回复 Fallenworlder :而且现在SDL都ABI locked了,API的用法应该不会改了,现在用就是了。正式版顶多是改个库文件名修个bug之类问题。
2013年04月14日 03点04分
level 1
虽然还没看内容 先顶着
2013年04月14日 06点04分 8
level 12
哪时候出2.0了发布一下哈
2013年04月29日 04点04分 9
2.0正式版应该是五月发布
2013年04月29日 06点04分
@阿豆粉丝 好的,坐等2.0来研究
2013年04月29日 07点04分
level 2
跑过来捧个场
2013年05月05日 10点05分 10
顺便说一下= =最近不知道为什么代码clone不下来了= =一直404= =
2013年05月05日 11点05分
回复 Shuenhoy :什么clone不下来?SDL还是Twinklebear 教程的源码?确定地址写对了么?
2013年05月05日 12点05分
SDL,地址应该没错,以前编译的时候就是这么做的 hg clone http://hg.libsdl.org/SDL image mixer这些也都不行= =
2013年05月05日 13点05分
回复 阿豆粉丝 :额我知道了原来是大小写敏感的= =
2013年05月09日 03点05分
level 7
感觉有的地方是先表面后纹理。
希望封装之后的库是直接载入纹理,应该效率能更高。
2013年05月08日 16点05分 11
没什么区别的。D3D本身也需要D3DX库才能实现“直接由图片载入纹理”,OpenGL本身更是没有“由图片载入纹理”的功能。SDL的表面和D3D的表面并不是一回事,先表面后纹理就相当于先读取了位图数据然后用这些数据创建纹理。
2013年05月12日 13点05分
d3d可不需要d3dx才能直接由图片载入纹理。。。d3dx只是d3d的辅助库而已,可用可不用的。而且很多引擎都没有使用d3dx。推荐个国产的3d引擎klayge,作者是MSRA的牛人
2013年05月14日 13点05分
回复 DrakeFang : = =。拜托大牛您别抠我字眼儿好不好。 别忘了我说的是“直接”。 纹理载入的代码您想怎么写怎么写,不用D3DX您照样可以自己写。用D3DX是不是偷懒且不对纹理负责任的行为这个怎么想也是您自己的意见。
2013年05月15日 09点05分
回复 DrakeFang : 我的意思是——SDL的surface不是D3D的surface.在SDL2.0中,surface的存在俨然已经只是个创建纹理的工具了而已,外加向SDL1.2兼容的功效。
2013年05月15日 09点05分
level 14
自己编译了SDL2的源码,但是不知道去哪里找image库和ttf库,mixer库也没找到,希望楼主给个链接,我找的都是SDL1.2的。。。
2013年05月22日 00点05分 12
教程里不是都有么……而且你Google一下第一个结果就是项目主页。用HG clone到的源码全都是SDL2.0对应的扩展库
2013年05月30日 01点05分
level 3
2013年05月26日 13点05分 13
level 1
[揉脸]借贴问一下,从surface创建texture会有额外的拷贝操作吗?
2013年05月30日 01点05分 14
←_←莫纠结。。。要想把位图信息读入texture 这是唯一的办法……
2013年05月30日 02点05分
回复 Adolfans :[撞墙至死]好蛋疼……
2013年05月30日 03点05分
回复 gjy_管 :不不不……surface 只是为了不改接口……SDL_image依赖于surface以传递位图,所以把surface当作创建texture的环节是个很好的选择,这样SDL_image就完全不用改了
2013年05月30日 05点05分
回复 Adolfans :[揉脸]但是看上去多了一次额外的内存拷贝和销毁,在纠结效率的安卓上蛋疼了些……
2013年05月30日 06点05分
level 1
2013年06月10日 07点06分 15
o
2013年06月21日 03点06分
level 5
@阿豆粉丝 楼主有没有可以下载的SDL2.0的官方文档?官网上只有维基里有在线看的。还有有没有SDL2.0的imgage,mixer,ttf的文档?2.0下载页面里的文档却是1.2的
2013年07月08日 05点07分 17
这个真么有。。。只有wiki...
2013年08月04日 10点08分
@Adolfans 那拓展库的文档在哪
2013年08月04日 14点08分
回复 Fallenworlder :官方wiki有
2013年08月04日 14点08分
回复 Fallenworlder :另外扩展库的接口基本没变。旧文档同样适用
2013年08月04日 14点08分
level 1
新手求教,我用android写了个demo,SDLActivity里是我自己写的,想使用SDL的event,我在java文件里直接使用SDL android.c里的native函数,比如onNativeKeyDown,jni里没有写.c
下面是我的Android.mk
但是没有生成libsdl2.so
请问楼主,我应该怎么使用SDL2
2013年08月29日 05点08分 18
没有libsdl2.so说明你没生成这个库,要么你没编译,要么你编译失败了。。。
2013年10月25日 10点10分
level 1
楼主,可以详细讲一下sdl是如何启用opengl渲染环境的吗?不知道提问对不对,我不明白sdl内置了opengl的东西,那如何用呢?
2013年09月05日 08点09分 19
SDL没有内置OpenGL的东西,只是提供了一个调用OpenGL的中间层。
2013年10月25日 10点10分
level 9
LZ还在更新吗?
2013年09月26日 13点09分 20
= =没有
2013年10月25日 05点10分
1 2 3 尾页