jupiter-ocean
v1.0.6
Published
nothing but what I need.
Downloads
39
Readme
Jupiter-Ocean
1.介绍
本项目是记录使用typescript
开发游戏时所使用的部分结构、函数的合集。
2.使用
npm install jupiter-ocean
3.模块使用
GameTask
- 自定义结构上新增一个
tasks(taskList|taskRecord...)
属性,结构为:TaskRecord<T>
用于存储任务列表。 - 自定义一个检查点枚举,用于不同地方的检查点触发不同任务。
- 为
每个
检查点绑定一个方法,用于处理检查点触发时任务的更新,调用bindTaskCheckFunc
方法绑定。
/** 任务检查点方法 */
export type TaskCheckFunc = (task: ITask, ...args: any[]) => Promise<{
task: ITask,
/** 本次添加值 */
addVal: number,
/** 本次设置值 */
setVal: number
}>;
/**
* 绑定任务检查点函数(需要先绑定再检查)
* @param checkPoint 任务检查点
* @param func 检查点函数
*/
export function bindTaskCheckFunc(checkPoint: number, func: TaskCheckFunc) {
GameTaskCheckFuncRecord[checkPoint] = func;
}
- 在需要的位置添加任务,调用
addTask
方法添加。 - 在游戏各个指定的检查点位置,调用
checkTask
方法检查任务。 - 在任务过期、任务领奖等位置调用
setTaskStage
方法更新任务状态或者调用delTask
方法删除任务。 - 任务管理器设计如下:
GameActivity
- 自定义结构上新增一个
activities(activityList|activityRecord...)
属性,结构为:ActivityRecord<T>
用于存储活动列表。 - 建议活动根据
configId区间
进行类型区分,方便管理。 - 根据
类型区间
,活动阶段
绑定若干方法,用于处理不同阶段不同类型区间的活动,调用bindActivityFunc
方法绑定。
/**
* 绑定状态处理函数
* @param func 函数
* @param stage 阶段
* @param configIDSection 配置ID区间
*/
export function bindActivityStageFunc(func: ActivityStageHandler, stage: ActivityStage, configIDSection: ConfigIDSection){
// ...
}
- 在需要的位置添加活动,调用
addActivity
方法添加。 - 在游戏中的登录、整点等位置调用
checkActivitys
方法检查所有活动。活动会调用对应阶段对应类型区间的处理函数进行处理。 - 活动的状态机如下: