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应解 ...
随机推荐
- ubuntu16.04下使用python3开发时,安装pip3与scrapy,升级pip3
1)安装pip3: sudo apt-get install python3-pip 2)安装scrapy sudo pip3 install scrapy 若出现版本过低问题: pip3 insta ...
- cardboard sdk for unity 系统分析 - 对像与类
一.cardboard通过monobehavior派生的脚本组件与UNITY3D联系起来: 二.相关的类及其关系如下图:
- PCB Redis的安装使用
记录一下Redis的安装与基本使用 一.Redis简介 Redis(REmote DIctionary Server)远程字典服务器,免费开源,是一个高性能的(Key/Value)分布式内存数据库.其 ...
- centos 7更换阿里源
转自 https://blog.csdn.net/jameshadoop/article/details/54881295 centos7 修改yum源为阿里源,某下网络下速度比较快 首先是到yum源 ...
- SpringMVC之HttpMessageConverter
http://blog.csdn.net/zmx729618/article/details/53034420 HttpMessageConverter接口: T read(Class<? ex ...
- [CF1109F]Sasha and Algorithm of Silence's Sounds
题意 有一个\(n*m\)的网格,每个格子有一个数,为\(1\)~\(n * m\)的排列 一个区间\((1<=l<=r<=n*m)\)是好的,当且仅当:数值在该区间内的格子,构成一 ...
- [POI2008]激光发射器SZK
Description 多边形相邻边垂直,边长为整数,边平行坐标轴.要在多边形的点上放一些激光发射器和接收器.满足下列要求: 1发射器和接收器不能放置在同一点: 2发射器发出激光可以沿壁反射,最终到达 ...
- [Usaco2003 Open]Lost Cows
Description N (2 <= N <= 8,000) cows have unique brands in the range 1..N. In a spectacular di ...
- ACM_平面、空间分割问题(递推dp)
折线分割平面 Time Limit: 2000/1000ms (Java/Others) Problem Description: 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要 ...
- orcl 11g 创建表空间
Oracle11g创建表空间语句 在plsql工具中执行以下语句,可建立Oracle表空间. /*分为四步 *//*第1步:创建临时表空间 */create temporary tablespa ...