随笔 - 96  文章 - 255  trackbacks - 0
<2008年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

E-mail:zbln426@163.com QQ:85132383 长期寻找对战略游戏感兴趣的合作伙伴。

常用链接

留言簿(21)

随笔分类

随笔档案

SDL相关网站

我的个人网页

我的小游戏

资源下载

搜索

  •  

积分与排名

  • 积分 - 488868
  • 排名 - 37

最新评论

阅读排行榜

评论排行榜

简单的说,不能。光标属于操作系统的GUI元素@笑傲暖壶
确实是,不知道是那个网站被黑了还是自己就想这么搞,算了,瞎了我的氪金狗眼,相信国内网站,以后我东西还是直接往sf上放吧。
好,谢谢,我有空试试。
意思是盗版得不彻底:P
我在Linux下尝试过midi也失败可,可能是系统默认的组件中不支持midi吧。
给我发邮件zbln426@163.com
改变了字体文件,显示的文字一定会改变字体的。:)
谢谢。呵呵,这种看起来小的知识点,很多书上都没提到,但是其实很实用。
呵呵,我的失误,忘记flip了。
for ( int i = 0; i < 4; i++ ) {
screen.fillColor(0xFF, 0xFF, 0xFF);
sprite.blit(atX[i], atY[i], fromX[i], fromY[i], IMG_WIDTH, IMG_HEIGHT,2,2);
screen.flip();
}
每次画图前先清屏哈。最后一个循环改成:
for ( int i = 0; i < 4; i++ ) {
screen.fillColor(0xFF, 0xFF, 0xFF);
sprite.blit(atX[i], atY[i], fromX[i], fromY[i], IMG_WIDTH, IMG_HEIGHT,2,2);
}
试试
是我写错了,谢谢提醒。教程里面的源代码还很不成熟,更进一步的代码请在“mySDL_GameEngine”中察看。
增加delta_x和delta_y的值。
LGPL也可以静态编连的,只要一并公开源代码就可以了。:)
你可以找找《Focus On SDL》这本书上有没你要的资料。
http://fleetlong.c.lunqun.com/read-htm-tid-4034.html
在Linux下也有很多IDE是不需要写Makefile的哈。
我的意思其实就是,一般情况下,不需要设置成硬件渲染。我认为SDL软件渲染实际是把任务交给了x11,至于x11最终是通过什么途径渲染不是很重要,而且我认为x11实际上是调用了nv的驱动,所以,虽然没有在SDL中设置成硬件渲染,但是并不意味着就没调用显卡。当然,都是我的猜测,具体情况,可能得问问SDL作者本人。
我的认识是这样的,只要x11启动了nv的驱动,硬件加速实际上是打开的,只是被封装到了x11内部,我们通过SDL软件渲染调用了封装后的x11接口,实际作用的时候是启动了硬件加速。这样应该比我们直接调用硬件接口更加安装简单易用。如何绕过这个设定,估计只有问问SDL的作者了,我在fqa里是没找到。
谢谢。你说得很对,当初在开始写本节教程的时候还没有把SDL几种surface的关系整理清晰。在后面的SurfaceClass中,我设置了一个BaseSurface作为Picture和Text两种面的父类,这个面就使用了虚析构函数了。更新的代码在“mySDL_GameEngine”,请不吝赐教,万分感谢。
感谢您的指教,我对C++标准库的了解还是不多啊,其实我一直就觉得这样的功能标准库应该提供的,之前一直没有google到。
应该是不可以。因为SDL是为游戏设计的库,这个GUI是所有键盘鼠标事件的接口。多窗口就混乱了。另外,涉及到多线程的时候也只能允许一个线程作为当前窗口来接受信号。
我QQ公布出来的,85132383,最近在Linux下时间比较多,还是发邮件方便一些哈。我还是问你,你用什么方法“复制”和“清空”surface的?
我是这么理解的:blit行为的结果是描述了surface之间的关系,但是不会产生新的surface,也不会对源surface有什么改变。之所以blit之后把源面flit出来,会看到blit行为的效果,应该是因为将blit行为绑定到源面的效果。另外,你说的这个问题貌似跟blit联系不大,关键是你是怎么复制surface的?
我个人比较看重的是自动补全功能。Code::Blocks还是不如VC完善的。(*iterator)这种东东辨别不出来是对象啊。
可惜是商业软件,要么找key,要么破解。
SDL_iconv_t 和SDL_iconv_open是什么东东啊?呵呵,iconv是GNU项目的一部分,可不是SDLlib的一部分哦。 :)
我装的Express版的,没有ATL和MFC库,你得拜托装了完整版vs2005.net的朋友给你找个配置文件哈。
嘿嘿,请问阁下推荐的是?
命令可以在“命令与提示符”(Windows)或者在shell(Linux)中直接使用。当然,前提是路径PATH能找到相关命令。在批处理文件(Windows, *.bat)或者shell脚本中可以指定寻找命令的PATH。*.po文件是msginit命令得到的。
没看明白你的意思。指的是窗口位置?不知道SDL里面有没有控制窗口出现在屏幕什么位置的函数。
传说中,VC6对C++标准支持不好——当然,实际上我个人还没遇到特别严重的情况——因为我用的C++还很初级:) 这个要怪只能怪M$自己,自己搞了太多概念,太多自己的标准。
我用的是Express Edition,没有MFC这些。估计你还是要参考下程序的布局文件(manifest),看看需要的dll以及应该放在什么位置。
没有和SurfaceClass.cpp一起编译?
版本或者兼容性的问题吧,这个估计你只有去问问Sam Lantinga了(SDL作者,slouken@devolution.com),以我以往的经验,他会热心的帮助你的。
播放视频的函数是有的,视频编辑就不知道了。点阵汉字我也没试过,这些你都可以问问Sam Lantinga本人。
用了SDL_ttf,需要链接libsdl_ttf.a
gcc a.c -lSDL -lSDL_ttf
另外,你倒数第二个“}”的位置错了。应该在TTF_Quit()后面。
MinGW的标准输出(std::cout & std::cerr)是在一个叫stdout.txt的文本文件中。
感谢楼上的,这两天地震没时间试,找到个链接等几天来看。http://forum.ubuntu.org.cn/viewtopic.php?t=13225&sid=99a94bc36e3f28b983d6ea8d6b36c112
一直在官方升级的xp和2k3基本上不需要vc80和vc90的dll,Vista就更不需要了。但是问题是有多少人能在官方升级的。:)珍惜生命,拒绝盗版^^
恩,谢谢支持。任重而道远啊……
我试过可以呀。SDL_mixer所带的dll文件里面就包含smpeg.dll。
估计缺失某些资源文件吧,比如字体或者图片什么的。你编译为Console看看有什么异常抛出吧。我编译的是Windows版本的,就看不到异常信息了。
re: StringData[未登录] lf426 2008-04-24 11:41
请参考这篇教程“SDL入门教程(十):1、多语言支持,Win32下的GetText ”,GetText for Windows的主页上,Developer files包含了libintl.h和libintl.lib;libiconv的问题请参考“SDL入门教程(十):3、字符集之间的转换,win32下的libiconv ”,是在SourceForge上下载的,已经为win32编译好了。纯粹从源代码进行编译我还没有试过。:)
如果是没找到图片文件,会异常抛错,不会显示黑色的窗口。你说的现象,可能是其他地方有问题。
atexit()的效果相当于在main()终止的时候执行,无论是正常退出,比如return 0,或者异常退出,比如exit (-1)或者其他异常的情况下,只要main()结束了,atexit()就会调用,放在main()的任何位置理论上都是可以的。
不过后面的章节我使用对象来管理SDL的装载与退出了,就用不上atexit()了。
VC2005必须打SP1补丁。
呵呵,本人水平有限哈。数据结构和算法还在学习中,STL的那些容器还没有完全体会在不同情况下使用的优势和劣势。
问题的解决[未登录] lf426 2008-03-02 23:22
其他关心的朋友请参考“SDL入门教程(五):7、鼠标事件演示,代码重用 ”。
补充1 lf426 2008-02-15 18:15
补充一个问题:当把一个surface blit 到另外一个surface上的时候,引起后者像素数据变化了吗?或者说,源surface的数据“画”到了目的surface上了吗?我的试验结果是,如果在blit后释放源surface,程序会出现问题。这至少说明blit不是真正的“画”图。
补充1[未登录] lf426 2008-02-11 17:58
我发现如果SDL_DOUBLEBUF位标被成功启用,则一定采用SDL_HWSURFACE,即使指定了使用SDL_SWSURFACE。