openbor吧 关注:3,755贴子:22,744

记录一下关于,某游戏对话框的解读

取消只看楼主收藏回复


data/level.txt 调用了data/level/lab.txt
data/level/lab.txt 调用了 spawn story alias level1
这个别名对应了data/story/level1.txt
里面的第一个通常为
_player 或者 Zombie 等。

story对应着 text 类型。
在场景中,被动态生成。

也就是说,在生成了,story之后,就会执行idle动画,就会调用talk函数
那么之后,就会更改story的动画属性为freespecial。
那么就会跳转到freespecial动画。
就会调用 sendDiaglogmsg函数。


看源码说明,这里是动态把 对应的内容画到了精灵屏幕或者对话框屏幕上面了。
未完。。。


IP属地:吉林1楼2018-05-08 16:18回复

    呵呵,我说的么,这个settextobj正常找不到说明,只能看源码了。
    很显然,看例子 第一个变量是3,4,5,6.看来这个第一个变量就是索引号了。
    也就是说,谁会去处理这些textobj呢?


    并没有找到太多的有用信息。
    那么感觉 这个settextobj 可能跟 drawstring是有点关系的。
    但是setextobj拥有对应的索引
    暂时不想更加深入到引擎内部了。


    IP属地:吉林4楼2018-05-09 16:25
    回复

      很显然,这个drawmethod 的原型是有必要知道的。


      IP属地:吉林5楼2018-05-09 16:31
      回复
        哈哈,终于搞定了。



        也就是说,只要使用settextobj 就会被在 update函数中被自动画到制定位置上面。


        IP属地:吉林6楼2018-05-10 09:57
        回复
          这说明什么,如果,并不清楚源码。
          就很难明白 globalvar,indexedvar,localvar
          几者之间的关系和用途,还有区别。




          哈哈。ok了。通过这么清晰的文件架构,
          我都知道怎么使用中间件 跟sdl沟通了。


          IP属地:吉林7楼2018-05-10 10:25
          回复



            在type.h里面看到的数据结构。
            sprite,screen
            呵呵,显然,这两个东西。
            将来就是要跟sdl进行配合的


            IP属地:吉林8楼2018-05-10 11:07
            回复

              呵呵,很好啊。这个引擎,就是告诉你,如何把四梁八柱,放到合适的位置,最终,配合把事情完成。


              IP属地:吉林9楼2018-05-10 11:12
              回复
                s_screen 是openbor的。
                videosurface 是SDL_surface,是sdl的。
                这里面就是写的,sul
                video_copy_screen
                getvideosurface 看来都是 openbor的作者 在 sdl库里面添加的 桥接函数。
                并不是sdl自带的。


                IP属地:吉林10楼2018-05-10 11:21
                回复



                  IP属地:吉林11楼2018-05-10 12:17
                  回复

                    实际运行效果是这样的。


                    IP属地:吉林12楼2018-05-10 12:19
                    回复

                      呵呵,动态生成人物的属性,这个很好。


                      IP属地:吉林13楼2018-05-10 12:48
                      回复
                        为什么要在这里谈谈,常量和变量的问题。
                        那是因为,大家都有这样的疑问:
                        《如何以最小的改动尽量不改变已有代码的情况下适应不断变更的需求?》
                        所以说,不论是是对话里的变量们,还是 char里的属性们,都应该是变量。
                        那么在哪里固定呢? 显然我觉得应该是场景里面。
                        在场景里,通过玩家的选择,把变量固定下来。
                        这就是说,为什么要求,场景也是可变的。
                        以不变应万变是玩家们的追求。
                        那么,游戏里一切皆可变,就是游戏制作者该思考的问题。


                        IP属地:吉林14楼2018-05-10 12:52
                        回复



                          看说明是,


                          IP属地:吉林15楼2018-05-10 13:27
                          回复
                            15楼不知道哪里去了





                            IP属地:吉林16楼2018-05-10 13:31
                            回复
                              不能再发了,连发2遍,就出不来。可能被限制了。


                              IP属地:吉林17楼2018-05-10 13:32
                              回复