TOP

【FOL】第一周
2017-10-10 12:05:46 】 浏览:9126
Tags:FOL 第一

本来打算按计划做下去的,发现原来那个sprite虽然功能强大,但是对我想要做的东西来说,冗余似乎有些多,决定自己写一个。

之前做了一段时间的h5游戏,用的是panda.js,发现这个引擎封装的还不错,代码很简洁,决定借鉴着来写自己的delphi game sprite。

这周成果:

1、设计了一个gamesystem类,用来对游戏状态控制、场景创建与销毁、鼠标消息(touch)、键盘消息等等进行一个统一的调度。调用方法:

    game.createscene(scenename);

    game.renderscene(sceneobj, mousedata);

{
    "key": "fol.module.home",
    "objs": [
        {
            "type": "ui.simpleimage",
            "name": "homewnd",
            "prop_image": "home_img_bg",
            "prop_rect": "x:0 y:0 w:960 h:393",
            "prop_zorder": 0,
            "prop_align": "alClient"
        },
        {
            "type": "ui.simpleimage",
            "name": "homewnd.msg.bg",
            "prop_image": "home_img_msgbg",
            "prop_rect": "x:0 y:393 w:960 h:40",
            "prop_zorder": 0,
            "prop_align": "alBottom",
            "objs": [
                {
                    "type": "ui.simpletext",
                    "name": "homewnd.scrollmsg",
                    "prop_rect": "x:20 y:10",
                    "prop_zorder": 0,
                    "prop_fontname": "Tahoma9b",
                    "prop_fontsize": 18,
                    "prop_fontcolor": "#FF989898",
                    "prop_text": ""
                }
           ]
       }
    ]
}

 

2、实现了一个GUI系统的雏形,实现按照ui配置文件加载ui资源,支持嵌套ui、静态图片、静态文本、按钮。调用方法:

    function createContainer(const pvParent: TFOLSceneObj; const pvName, pvRectSet: string): TFOLUIObj;
    function createSimpleImage(const pvParent: TFOLSceneObj; const pvName, pvRectSet, pvImageName: string): TFOLSimpleImage;
    function createSimpleText(const pvParent: TFOLSceneObj; const pvName, pvPointSet, pvText: string): TFOLSimpleText;
    function createButton(const pvParent: TFOLSceneObj; const pvName, pvRectSet, pvImageName: string; const pvMsgcode: Integer; const pvText: string = ''): TFOLButton;
    function createRichText(const pvParent: TFOLSceneObj; const pvName, pvRectSet, pvText: string): TFOLRichText;

   sprite.createSimpleImage(...);

   sprite.createSimpleText(...);

   sprite.createSimpleButton(...);

代码和调用方式用起来还是很爽的。

 

3、实现了按钮点击事件的触发。

4、完成了图片工具的并图功能。

5、完成了图片工具的图片转配置功能。

 

基本上按现在的功能,只要通过配置,就可以实现一个游戏的所有界面功能了。当然前提是不用一些比如radiobutton、checkbox、richtext、list之类尚未实现的控件。

 

接下去应该会把我之前设计的整个游戏的所有界面配置起来,先看着爽一下。为了尽快看到效果,暂时应该会先封装个临时的类来写各种交互,后期等lua系统接入后,再移到lua去做。

然后,就是最难啃的那块了,战斗系统。

 

估计接下去的一段日子会特别忙了,不一定有时间再做这个了,慢慢来吧。

 

最后,说说做FOL的原因吧。

1、算起来,也做了有4-5年的游戏了,写脚本、写服务端逻辑、写客户端代码、设计等等几乎做游戏的活都干过,就萌生了自己一个人搞一个游戏的想法。

2、从毕业到现在,用delphi用了10几年了,中间虽然工作原因,c++、c#、java、js、oc等等都用过做项目,但是一直难以彻底放弃delphi。最近xe搞的蛮不错的,起码跨平台这块帮助我把第一个pxl demo(不是basic,而是那个小松鼠demo)在手机上运行起来,让我有一些小小的感动。所以决定就用delphi来写游戏,希望今后这个项目能让广大delphi爱好者多一个有趣的选择吧。

3、在游戏行业混迹几年,发现市面充斥着太多自己不喜欢的游戏了。做FOL就是决定做一个自己喜欢,完全由自己设计并实现的游戏。

 

嗯,有兴趣的朋友欢迎交流。


【FOL】第一周 https://www.cppentry.com/bencandy.php?fid=86&id=130092

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇TImage保存图片到Stream及从Strea.. 下一篇Delphi 10.1 Berlin UTF8String T..