<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>大坡3D软件开发</title><link>http://blog.csdn.net/caimouse/</link><description>关注3D软件技术</description><dc:language>zh-CN</dc:language><lastUpdateTime>Mon, 21 Jul 2008 00:28:00 GMT</lastUpdateTime><ttl>60</ttl><item><dc:creator>蔡军生</dc:creator><title>第二人生的源码分析(108)脚本的语法分析（1） </title><link>http://blog.csdn.net/caimouse/archive/2008/07/21/2681951.aspx</link><pubDate>Mon, 21 Jul 2008 00:22:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/07/21/2681951.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2681951.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/07/21/2681951.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2681951.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2681951</trackback:ping><description>当玩家书写一个脚本时，如果写错了脚本，那么肯定运行不了。现在就来分析怎么样确保脚本是正确的问题，如果不正确就需要显示出来那里不正确。脚本是否正确，其实是根据脚本的语法来判断的。那么又怎么样来构造语法分析的程序呢？在第二人生里是通过使用程序bison.exe来创建的。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2681951.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>蔡军生</dc:creator><title>第二人生的源码分析(107)脚本的词法分析（5） </title><link>http://blog.csdn.net/caimouse/archive/2008/07/17/2668545.aspx</link><pubDate>Thu, 17 Jul 2008 22:32:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/07/17/2668545.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2668545.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/07/17/2668545.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2668545.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2668545</trackback:ping><description>前面分析词法分析的代码生成，并且生成可编译的C＋＋文件，那么它是怎么调用这个词法分析文件的呢？&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2668545.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>蔡军生</dc:creator><title>第二人生的源码分析(106)脚本的词法分析（4）</title><link>http://blog.csdn.net/caimouse/archive/2008/07/15/2656911.aspx</link><pubDate>Tue, 15 Jul 2008 23:35:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/07/15/2656911.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2656911.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/07/15/2656911.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2656911.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2656911</trackback:ping><description>前面介绍了flex文件的格式，那么flex程序又把这个文件生成怎么样的文件呢？下面就来仔细分析这个文件，由于flex程序生成C++的文件格式，那么就需要C++的编译器才可以编译了。它的代码如下：&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2656911.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>蔡军生</dc:creator><title>第二人生的源码分析(105)脚本的词法分析（3）</title><link>http://blog.csdn.net/caimouse/archive/2008/07/13/2646260.aspx</link><pubDate>Sun, 13 Jul 2008 21:20:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/07/13/2646260.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2646260.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/07/13/2646260.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2646260.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2646260</trackback:ping><description>下面来分析flex文件的最后一部份，就是辅助代码部份，这部份代码是原封不动地拷贝到生成的文件里。它的代码如下：&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2646260.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>蔡军生</dc:creator><title>第二人生的源码分析(104)脚本的词法分析（2）</title><link>http://blog.csdn.net/caimouse/archive/2008/07/11/2641011.aspx</link><pubDate>Fri, 11 Jul 2008 22:25:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/07/11/2641011.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2641011.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/07/11/2641011.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2641011.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2641011</trackback:ping><description>接着上一次，再来分析flex文件的下一部份：规则部份。它们由一连串带有代码的正则表达式组成，当匹配相对应的正则表达式时，这些代码就会被运行。下面就一段规则的代码：&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2641011.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>蔡军生</dc:creator><title>第二人生的源码分析(103)脚本的词法分析（1）</title><link>http://blog.csdn.net/caimouse/archive/2008/07/10/2636149.aspx</link><pubDate>Thu, 10 Jul 2008 22:32:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/07/10/2636149.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2636149.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/07/10/2636149.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2636149.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2636149</trackback:ping><description>从前面的脚本可以看到它的代码，也理解它的意思了，但是它是怎么样执行的呢？又是怎么样变成可执行的脚本呢？下面就来分析这部份相关的代码。要了解脚本执行，就得把脚本中的每一个单词识别出来，如下：&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2636149.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>第二人生的源码分析(102)脚本的构造</title><link>http://blog.csdn.net/caimouse/archive/2008/07/07/2622906.aspx</link><pubDate>Mon, 07 Jul 2008 22:10:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/07/07/2622906.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2622906.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/07/07/2622906.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2622906.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2622906</trackback:ping><description>前面我们学习怎么样打开窗口来创建脚本，接着下来就需要知道这些脚本是做什么用的，这样最终才会按它的语义来正确地执行起来。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2622906.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>第二人生的源码分析(101)脚本的初步知识</title><link>http://blog.csdn.net/caimouse/archive/2008/07/04/2612792.aspx</link><pubDate>Fri, 04 Jul 2008 20:00:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/07/04/2612792.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2612792.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/07/04/2612792.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2612792.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2612792</trackback:ping><description>哲学里说，世界是永远在运动的。那么在现实中人们对软件的需求是永远在变化的，为了对付这种不断变化的需求，有什么好方法吗？难道还是像过去一样，每一个需求都是发布一个版本来解决？随着市场竞争的激烈化，满足每一个用户个性化需求，就需要考虑一种办法让用户自己去改变的游戏世界里的东西了。在第二人生里，就引入了脚本语言来解决不同用户的需求的变化，而不必重新发布新程序。有了脚本系统之后，用户想创建一个飞机在游戏里飞来飞去，就非常简单了，只要写几行脚本代码，就可以控制飞机移动了。比如还可以创建一些物体，当不同的用户来点击它时，就弹出不同的欢迎标语，这样更加具有人性化的表现。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2612792.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>第二人生的源码分析(100)雷达地图详细显示</title><link>http://blog.csdn.net/caimouse/archive/2008/07/02/2606468.aspx</link><pubDate>Wed, 02 Jul 2008 21:00:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/07/02/2606468.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2606468.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/07/02/2606468.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2606468.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2606468</trackback:ping><description>前面已经介绍雷达地图的类声明，现在就来仔细分析一下雷达地图是怎么样显示出来的。雷达地图显示函数LLNetMap::draw代码如下：&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2606468.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>第二人生的源码分析(九十九)雷达地图的实现</title><link>http://blog.csdn.net/caimouse/archive/2008/07/01/2603340.aspx</link><pubDate>Tue, 01 Jul 2008 21:30:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/07/01/2603340.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2603340.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/07/01/2603340.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2603340.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2603340</trackback:ping><description>无论是在2D的游戏里，还是在3D的游戏里，雷达地图的实现，都是比较基本的功能了。因为随着游戏世界里越来越大，参加的玩家也越来越多，需要一个大体的地图来让玩家方便地看到全局的概貌。比如在打对战的游戏里，更加需要了解别人在那里战斗了。有了雷达地图之后，就可以让玩家更加方便地了解全局地图上发生的事情，也方便玩家相互查找，也让玩家不会走迷路。下面就来了解第二生里的怎么样实现雷达地图的实现，它的显示界面如下：&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2603340.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>第二人生的源码分析(九十八)LLIconCtrl实现图标按钮显示</title><link>http://blog.csdn.net/caimouse/archive/2008/06/30/2599568.aspx</link><pubDate>Mon, 30 Jun 2008 21:17:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/06/30/2599568.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2599568.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/06/30/2599568.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2599568.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2599568</trackback:ping><description>在前面已经介绍过文字按键的实现，这里主要实现一个图标按钮的实现，如下图里右下角显示的喇叭显示和向上选择的按钮，都是图标显示类型的按钮。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2599568.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>第二人生的源码分析(九十七)LLSlider实现音量滑动条</title><link>http://blog.csdn.net/caimouse/archive/2008/06/22/2576935.aspx</link><pubDate>Sun, 22 Jun 2008 23:16:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/06/22/2576935.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2576935.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/06/22/2576935.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2576935.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2576935</trackback:ping><description>由于第二人生是多媒体的程序，因此它有音乐播放和语言聊天，那么就得使用到一种滑动条来调整音量的大小，如下图所示：&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2576935.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>第二人生的源码分析(九十六)LLMenuItemGL实现菜单的显示</title><link>http://blog.csdn.net/caimouse/archive/2008/06/20/2570967.aspx</link><pubDate>Fri, 20 Jun 2008 23:12:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/06/20/2570967.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2570967.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/06/20/2570967.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2570967.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2570967</trackback:ping><description>在第二生里，菜单是缺少不了的。菜单提供了简单层次关系的一种表达方式，方便表达复杂的层次关系，并且方便写说明书，方便售后服务人员的描述，方便培训。因此，在一个程序没有菜单，往往带来很多不方便的地方。登录界面的菜单如下图：&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2570967.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>第二人生的源码分析(九十五)LLCheckBoxCtrl类实现复选按钮</title><link>http://blog.csdn.net/caimouse/archive/2008/06/19/2567220.aspx</link><pubDate>Thu, 19 Jun 2008 23:35:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/06/19/2567220.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2567220.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/06/19/2567220.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2567220.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2567220</trackback:ping><description>在第二人生的登录界面里，可以看到输入密码的下面有一个复选按钮，如下图所示：&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2567220.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>第二人生的源码分析(九十四)LLTextBox类实现文本显示</title><link>http://blog.csdn.net/caimouse/archive/2008/06/18/2562994.aspx</link><pubDate>Wed, 18 Jun 2008 23:04:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2008/06/18/2562994.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/2562994.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2008/06/18/2562994.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/2562994.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2562994</trackback:ping><description>在登录的画面里，可以看到程序的版本显示，那么它是怎么样显示出来的呢？现在就来分析显示这个版本号的代码，其实它是由静态文本显示框LLTextBox来显示的。比如在登录时创建版本显示的代码如下：&lt;img src ="http://blog.csdn.net/caimouse/aggbug/2562994.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>