本来打算按计划做下去的,发现原来那个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】第一周的更多相关文章

  1. 第一周 总结笔记 / 斯坦福-Machine Learning-Andrew Ng

    课程主页:https://www.coursera.org/learn/machine-learning/home/welcome 收集再多的资料也没用,关键是要自己理解总结,做笔记就是一个归纳总结的 ...

  2. Surprise团队第一周项目总结

    Surprise团队第一周项目总结 团队项目 基本内容 五子棋(Gobang)的开发与应用 利用Android Studio设计一款五子棋游戏,并丰富其内涵 预期目标 实现人人模式:2个用户可以在同一 ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  4. 20145206邹京儒《Java程序设计》第一周学习总结

    20145206 <Java程序设计>第1周学习总结 教材学习内容总结 1.三大平台:Java SE.Java EE与Java ME.Java SE是各应用平台的基础,分为四个主要的部分: ...

  5. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337《JAVA程序设计》第一周学习总结

    # 20145337 <Java程序设计>第1周学习总结 ## 教材学习内容总结 第一章 -Java最早是Sun公司撰写Star7应用程序的程序语言 -根据应用领域不同,有Java SE. ...

  8. Linux内核设计第一周 ——从汇编语言出发理解计算机工作原理

    Linux内核设计第一周 ——从汇编语言出发理解计算机工作原理 作者:宋宸宁(20135315) 一.实验过程 图1 编写songchenning5315.c文件 图2 将c文件汇编成32位机器语言 ...

  9. 20135328信息安全系统设计基础第一周学习总结(Linux应用)

    学习计时:共xxx小时 读书: 代码: 作业: 博客: 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用Linux中用户管理命令/ ...

  10. 20145208 《Java程序设计》第一周学习总结

    20145208 <Java程序设计>第X周学习总结 教材学习内容总结 这几天我学习java的基础内容,这几天我学习了java的基础内容,从教材上面我了解到了java是一种程序语言,但他又 ...

随机推荐

  1. Atitit 图像金字塔原理与概率 attilax的理解总结qb23

    Atitit 图像金字塔原理与概率 attilax的理解总结qb23 1.1. 高斯金字塔  (  Gaussianpyramid): 拉普拉斯金字塔 (Laplacianpyramid):1 1.2 ...

  2. Atitit  循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate).

    Atitit  循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate). 1.1. 循环算是最基础的概念, 凡是重复执行一段代码, 都可以称之为循环. ...

  3. instanceof, typeof, & Object.prototype.toString

    /** * * @authors Your Name (you@example.org) * @date 2016-11-18 09:31:23 * @version $Id$ */instanceo ...

  4. Html与CSS快速入门01-基础概念

    Web前端技术一直是自己的薄弱环节,经常为了调节一个简单的样式花费大量的时间.最近趁着在做前端部分的开发,果断把这部分知识成体系的恶补一下.内容相对都比较简单,很类似工具手册的学习,但目标是熟练掌握. ...

  5. 使用BCP导出导入数据

    bcp 实用工具可以在 Microsoft SQL Server 实例和用户指定格式的数据文件间大容量复制数据. 使用 bcp 实用工具可以将大量新行导入 SQL Server 表,或将表数据导出到数 ...

  6. SVN更改登录用户

    如果装了TortoiseSVN: Settings -> Saved Data -> Authentication Data -> clear.即可清除保存的上个用户登录信息:当再次 ...

  7. s2sh框架搭建(辅助工具:MyEclipse)及解决一些遇到的问题

    1.新建一个web project 2.首先生成Hibernate Facet 3.Hibernate Facet 安装步骤 4.然后是spring facet安装步骤 5.最后是struts fac ...

  8. 解决firefox和IE9对icon font字体的跨域访问问题

    何为跨域访问,为什么会有跨域限制?一切还得从浏览器的同源策略说起. 同源策略:是浏览器最核心也是最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能会受到影响,可以说Web是构建在同源策略基础 ...

  9. JavaScript闭包(一)——实现

    闭包的官方的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 通俗点的说法是: 从理论角度:所有的函数.因为它们都在创建的时候就将上层上下文 ...

  10. PetaPojo —— JAVA版的PetaPoco

    背景 由于工作的一些原因,需要从C#转成JAVA.之前PetaPoco用得真是非常舒服,在学习JAVA的过程中熟悉了一下JAVA的数据组件: MyBatis 非常流行,代码生成也很成熟,性能也很好.但 ...