Giter Club home page Giter Club logo

quickframework's Introduction

CocosCreator 快速开发轻量级游戏框架

项目说明

本项目基于 cocos creator 3.7.2版本 以Asset Bundle为基础的大厅+子游戏示例 提供一个轻量级的游戏开发框架,让你的开发更加简单

示例地址

2.4.x 版本

3.7.x 版本

示例安装包请进群下载

注意:服务器配置低,进入时,可能时间比较长

cocos creator 升级

引擎修正插件可直接对 3.7.2 ~ 3.8.0 版本 项目中示例工程可自行按自己项目进行裁剪

升级步骤

1,升级后使用一次【引擎修正】插件

2,重新构建项目

完整工程拉取

进入tools 目录先执行 npm install 安装依赖

然后在tools目录下执行 npm run main

详细文档

更为详细的文档,请在本项目的doc中查看,由于个人原因,文档会逐步完成中,也同时欢迎进入我们的交流群中讨论,相互学习 同时也希望有更多的人参与,一起让creator的开发更加的简单。

关于QuickFramework

  • Q : 为什么使用单场景?

    • 保证视图在切换场景时正常弹出
    • 如下情况,如多场景情况下,A场景->B场景,A场景上请求网络数据希望在B场景上弹出,当收到网络返回时 还需要检查当前是否在B场景中,如果不在则压入到显示队列中,等进入B场景,检查当前是否有显示视图队列 如果有显示的视图,依次弹出,但如果采用单场景化,无须关心在哪一个场景,收到网络回复直接弹出。
    • 保护界面状态
    • 还是在多场景下,在切换场景时,必定会先把场景上所有视图关闭,清除数据,但若有需要在A场景下显示的 界面也希望在B场景下显示,此时场景的过渡,会先关闭界面,进入B场景时显示,但如果场景上有ListView类 似的控件,也希望在切换场景时,显示之前玩家操作显示的位置,那么必定会花费额外的工作去保存玩家在A场景 上操作界面的相关信息,再进入B场景时,恢复玩家对界面操作的所有状态,但如果只是单场景,可以模拟一个 场景的切换动作,直接隐藏掉界面,进入B场景,直接显示,无须保存界面的状态。
  • Q : 项目为什么不推荐使用在预置体中直接挂载脚本?

    • 方便重构
    • 如下情况,当你发现目录结构不合理,或者文件名取名有误时,但此时已经在预置上挂载了过多的组件,还有 些项目的子游戏是在不同的svn版本管理下,在开发时,并不会放入全量的代码进入开发,如果如果此时改名或 移动目录,可能会造成文件的uuid发生变化,Creator上只会显示该脚本为Misson状态,并不会显示之前挂载 的是哪一个脚本,若项目足够大,一个脚本的uuid变化,可能会造成大量预置体重新设置挂载脚本,提高了 维护的成本
  • Q : 为什么项目都采用预置体+UIView组件绑定方式?

    • 1,统一化管理,工厂式创建,方便实现统一的动画效果,一个公司的界面显示动画,可能大多数情况下是统一风格,如果我们要实现统一定制化 动画,只需要在UIView中统一处理,直接显示通过UIManager.open()方式调用
    • 2,把内存及资源的管理交到管理器处理,减少开发者对何时释放资源,何时加载资源的烦恼,只关注自己的 业务逻辑处理,无须关注资源的加载与释放
    • 3,接口统一,方便后期对界面的打开次数统计,以提供数据给运营人员,查看该模块的受欢迎程度
  • Q : 项目主要核心模块为什么都在管理器Manager上?

    • 提高可读性,新手上手快,拿到代码只能从Manager上直接了解整个项目的结构模块,尽量避免全局变量满天飞的情况 后面框架的使用者也可直接把全局的通过数据直接挂载到Manager中使用,减少全局变量的污染。
  • Q : 项目为什么推荐万事尽量保留类型?*

    • 个人观点,项目采用VSCode + Creator + typescript 方式进行开发,而typescript VSCode 都是Microsoft 公司 的产品,Microsoft公司在JavaScript 基础上加上了type,就是为了解决弱语言类型无类型化,可读性差,
    • 1,您可以清楚你的实际来自哪一个类型,跟继承的关系
    • 2,编辑友好加上VSCode的智能代码提示跟静态语法检查,让你在开发时,减少错误
    • 3,代码更严谨,可在传入参数中限制传入的类型,类型的检查交给VSCode处理
    • 4,方便重构,如果当你发现某个文件放置位置不对,可直接在VSCode中拖动到你想要的位置,VSCode会自动的更正你托动 代码所有引用的位置,或者对API 类名等修改操作,VSCode也会自动更改所有引用此类型的地方,降低重构的成本
    • 5,最后说一句,没有人比VSCode 更懂TypeScript ,TypeScript的重点在Type,无论什么情况,尽量保留类型。

框架定位

本框架主要为轻量级游戏打造的一个基础框架雏形,可适用于休闲类,小游戏类,棋牌类,文字游戏类等轻或中度型游戏的开发, 功能还在完善中,后面优化及功能的扩展继续进行中

分支说明

2.4.7 分支为 creator 版本在>=2.4.7版本以上使用,为2.4.x的对外分支

3.7.2 分支为 creator 版本在>=3.7.2版本以上使用,为3.x的对外分支

其它分支为开发中的分支,请不要轻易使用

如果您觉得我们的开源框架对你有所帮助,请扫下方二维码进群讨论

输入图片说明

quickframework's People

Contributors

dawrfcv avatar smallp avatar xzflove avatar zhengfasheng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quickframework's Issues

这个在 android下无法正常加载子游戏

1.最新的这个2.4版本,我测试下,web和微信小游戏 都能正常打开 运行;

2.但是在 android 真机下 无法加载子游戏:真机下 大厅都是正常能加载的,子游戏one和two都不能正常加载
(我的环境是:android 26、NDK 为android-ndk-r21b、SDK为Android studio 4里面集成的)

很奇怪,我就提个issue吧。

测试发现,有2个问题:A热更新不起作用 B打包没有移除GameTwo

测试发现:

A. 子游戏功能都正常加载,但是热更新不起作用
apk在真机能够正常测试,后来我把工程里面的大厅prefab修改了点文字内容,然后修改了 “热更新工具”的 大厅版本号为10(上次的为1),然后“生成”,然后 “部署”,按道理 重启游戏后 能够自动更新内容吗? 可是我这里没有更新成功;
后面测试了2个子游戏 修改内容,并按正常流程步骤发布 热更新包,依旧无法在 真机和模拟器 里面更新,还是老的内容和代码

B. gameone 和 gametwo都打包在游戏apk包里了
Quick-debug.apk\assets\assets\ 中 gameOne和gameTwo都在包里面,
已经配置过这2个bundle为Android的bundle了,其次在 \packages\config\games.json也配置了如下的内容:
{ "packageUrl":"http://192.168.0.10/hotupdate", "forceIncludeAllGameToApk": false, "games":[ { "id" : "0" , "name" : "大厅" , "dir" : "" , "version" : "1" , "includeApk" : true }, { "id" : "1" , "name" : "游戏1" , "dir" : "gameOne" , "version" : "1" , "includeApk" : true }, { "id" : "2" , "name" : "游戏2" , "dir" : "gameTwo" , "version" : "1" , "includeApk" : false } ] }
貌似不生效

这2个问题,我是仔细测试过了,生怕出错,所以多测试编译了几次,结果错误依旧,希望大神不吝赐教,感谢感谢!

大佬,请问这个 如何能支持 类似于小游戏的支持呢?以及有几个疑问

大佬,请问这个 如何能支持 类似于小游戏的支持呢?

1.现在的2.4 分支很棒,但是我测试了下,web是能够正常预览的,而微信小游戏是 不能加载 子游戏 的,提示jsb错误;
而如果我们比如做很多小游戏集合就 不好操作了,请问 这个如何处理呢?感谢!

2.现在的 2.4 分支 已经有 官方内置bundle支持了,那个 给引擎打补丁包的操作还需要来一次吗?

  1. 热更新引擎我 刚测试了下,有几次生成不了,可能是我的操作不对吗?热更新的 mainfest存储目录 是不能更改的吗(比如 热更新的资源 都可以放在 项目目录下的某个文件夹下,这样会不会更完美)?
    个人意见哈!~

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.