KBE_创建项目和基本常识
此笔记参考官方文档
第一个项目
资产库:是每一个项目文件夹的名称,使用KBE提供的生成工具生成一个最小资产库,其中包含了很多常用的工具,默认名server_assets:
res:放置一些资源(入地图资源,res/spaces目录下)以及当前项目的服务器配置(res/server目录下);
scripts:脚本的文件夹,所有脚本开发都在该文件夹下进行,引用自官方手册;
base: Baseapp上的脚本存放位置
bots: Bot机器人的脚本存放位置
cell: Cellapp上的脚本存放位置
common: 脚本开发中共用的一些模块的存放位置,如Functor、KBEDebug等工具模块
data: 存放数据的位置,比如策划配置好的表格等(一般是py文件,而非excel文件),可以在脚本开发时快速获取到对应的数据对象
db: DBMgr上的脚本存放位置
entity_defs: Entity的配置文件存放位置
interface: 第三方接口服务器的脚本存放位置
logger: 日志服务器的脚本
login: Loginapp的脚本存放位置
user_type: 用户自定义的数据类型的实现脚本的存放位置
entities.xml: Entity实体声明文件,用到的Entity需要在此进行声明,否则无法使用
第一个entity
创建一个entity的实体,它包含如下几个部分:
- entity 的声明({项目资产库}/scripts/entities.xml)
声明过后,引擎才知道它的存在。 - 配置,即def配置文件的编写({项目资产库}/scripts/entity_defs/FirstEntity.def)
该文件是一个entity的完整描述文件,从而让引擎及服务器各个组件知道这个entity有哪些能力(方法和属性) - python脚本的实现。每个entity最多有三个部分的实现(client/cell/base)
- ({项目资产库}/scripts/base/FirstEntity.py)如果有Baseapp上的功能需求,则需要有对应的base实现
- ({项目资产库}/scripts/cell/FirstEntity.py)如果有cellapp上的功能需求,则需要有对应的cell实现
- client部分一般在客户端上进行实现,不在服务端范围内
- 创建实体对象。在引擎端调用API来创建该实体对象,相当于实例化实体。
第一个Space
space空间是cell上的一个抽象概念,每个space相当于一个空间,它可以是一个场景,一个副本,一个房间等
不在同一个space的客户端无法互动,通讯。
创建一个space:
- entity声明({项目资产库/scripts/entities.xml})
在该文件下添加FirstSapce - def配置({项目资产库/scripts/entity_defs/FirstSpace.def})
- python实现({项目资产库/scripts/base/FirstSpace.py})
空间实体继承自:KBEngine.Space - cell部分的实现({项目资产库/scripts/cell/FirstSpace.py})
- 在baseapp就绪时创建空间({项目资产库/scripts/base/kbemain.py})
在kbemain.py中的onBaseAppReady函数中添加创建空间实体的语句
让entity进入space空间
这里我们让entity在客户端链接服务器并和entity关联时,就立马进入空间
{项目资产库/scripts/base/FirstEntity.py},添加onClientEnable回调函数
KBE_创建项目和基本常识的更多相关文章
- MVC Core 网站开发(Ninesky) 1、创建项目
又要开一个新项目了!说来惭愧,以前的东西每次都没写完,不是不想写完,主要是我每次看到新技术出来我都想尝试一下,看到.Net Core 手又痒了,开始学MVC Core. MVC Core最吸引我的有三 ...
- MVC5 网站开发之二 创建项目
昨天对项目的思路大致理了一下,今天先把解决方案建立起来.整个解决包含Ninesky.Web.Ninesky.Core,Ninesky.DataLibrary等3个项目.Ninesky.Web是web应 ...
- Maven自定义绑定插件目标:创建项目的源码jar
<build> <plugins> <!-- 自定义绑定,创建项目的源码jar --> <plugin> <groupId>org.apac ...
- Vs2012 创建项目失败 未找到与约束ContractName
刚开始使用vs2012的时候,创建项目失败,后来找到原因 ,是KB2840642V2的原因,于是 卸载之.vs正常
- C#程序员的春天之从零开始学习unity3D游戏开发入门教程二(创建项目及基本面板介绍)
一项目创建: 创建项目是开发的第一步. 运行untiy之后如果是第一次运行会弹出 我们这里随便创建一个项目. 二Untiy面板介绍: 三代码编辑器的切换: 这里我安装了vs2012. 到这里开发环境基 ...
- vs创建项目模板和项模板
原文地址:https://msdn.microsoft.com/zhcn/library/xkh1wxd8(v=vs.140).aspx 如何:创建项目模板 Visual Studio 2015 ...
- cocos2d-x创建项目
2.0之后的创建项目方法 第一步,首先 cd cocos2d-x-2.2.1/tools/project-creator/ 第二步, ./create_project.py -project Hell ...
- Django1.3 创建项目
经历了各种失败各种烦恼以后Django开发环境终于搭建好了! 系统环境:ubuntu12.04 Django版本1.3.1 Python版本 2.7.3 接下来就兴建一个项目练习一下 1.创 ...
- thinkphp学习简易教程(一) thinkphp创建项目
1.在本地服务器根目录下创建项目目录,如命名为app: 2.把thinkphp的压缩包解压到与项目同级目录下,如app是放在目录APP下面,即项目目录路径为'APP/app/',则thinkphp应解 ...
随机推荐
- Sleep示例分析
sleep让"当前线程"由“运行状态”进入到“休眠(阻塞)状态”,sleep结束,线程重新被唤醒时,它会由“阻塞状态”变成“就绪状态”,从而等待cpu的调度执行. 示例分析: pu ...
- RestTemplate中headers中添加Host不生效
在使用restTemplate访问内网接口时,不打算指host,支持ip访问,所以我们需要再header中指定host.但经调试,发现HttpURLConnection中Host无法覆盖.解决方案: ...
- bzoj 1898: [Zjoi2005]Swamp 沼泽鳄鱼【dp+矩阵快速幂】
注意到周期234的lcm只有12,也就是以12为周期,可以走的状态是一样的 所以先预处理出这12个状态的转移矩阵,乘起来,然后矩阵快速幂优化转移k/12次,然后剩下的次数暴力转移即可 #include ...
- 我理解的 js 异步成长总结
本文是自己的理解,如果有错误的地方,还请各路大神指出 首先说下我最常用的 Promise getHandlePickupQrPromise() { // 定义返回 Promise对象 // Promi ...
- [App Store Connect帮助]七、在 App Store 上发行(2.2)设定价格与销售范围:将您的 App 以预订形式发布
在首次将您的 App 发布至 App Store 前,您可以选择以预订形式提供该 App.在您的 App 发布以供下载之前,顾客可以查看您的产品页并订购您的 App.您的 App 一旦发布,顾客将会收 ...
- VS2010编译错: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403...的解决方法
最近拿到一个别人的工程,是使用VS.net创建的,而我的机器上只有vs2010,于是用自带的转换工具将它转换成vs2010的工程,转换之前我就很担心,怕转换完后会出问题,但是没有办法,我实在是 ...
- Unix\Linux | 总结笔记 | 邮件发送
实验:在本地实现不同用户收发邮件 #root发送邮件 #stu 收邮件 #stu 查看邮件 并回复邮件 #root 查看stu回复的邮件
- linux的SHELL编程
管道 | 特殊的重定向 前一个命令的输出作为后一个命令的输入; 管道连接的命令数没有限制; who|wc−l统计用户数ps |sort|more 按序显示当前进程名 字符:具有特定作用的特殊字符 ,& ...
- java使用正则表达式对注册页面进行验证
package regex; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Patt ...
- PHP + ORACLE 远程连接数据库环境配置
在ORACLE官网下载instantclient_11_2,放在D盘 把instantclient_11_2目录下的所有dll文件复制到C:\Windows\SysWOW64 和 D:\phpS ...