# SimpleBrickGame **Repository Path**: codessheng/SimpleBrickGame ## Basic Information - **Project Name**: SimpleBrickGame - **Description**: 使用cocos制作的一个简单的打砖块游戏。包含客户端和服务器。 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2017-09-10 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SimpleBrickGame 使用cocos制作的一个简单的打砖块游戏。包含客户端和服务器。 ## 目录结构 ### brick - 游戏目录 Classes - 游戏逻辑代码。 proj.android/jni - 主要是Android.mk的编译文件和代码中使用到的两个第三方库。libtest.so库内包含socket、epoll的操作。ibprotobuf.so库是google的protobuf的实现库。两个库文件都是使用NDK重新编译生成的。两个库的源码在libproto-test目录中,使用者可以根据自己的电脑环境重新编译。 Resources - 游戏的资源文件。包含字体文件、图片、语言包。 ### libproto-test -第三方库源文件目录 jni/proto - protobuf的源文件 jni/test - libtest.so库的源文件 Android.mk - 编译生成两个库的规则文件 ## 关联项目 ### 游戏服务端 git clone https://git.oschina.net/codessheng/ProtosockBase.git cd ProtosockBase && make ./serdir/server 运行服务端程序 ### libtest库 git clone https://github.com/weingithub/simplechatroom.git cd simplechatroom && make test make install ## 项目说明 1. 项目中使用了protobuf协议应用于客户端与服务器之间的通信。使用者在使用时,需要重新生成proto文件对应的相应语言的实现文件。 2. 我本机使用的是cocos2d-x -3.11,cocos相关的代码我并没有拷贝上来,没有必要,白占空间,使用者可以自行根据目录结构,将本项目的代码拷贝到cocos工程中的相对应目录. 3. 这是我第一次接触cocos之后的一个测试项目,所以有很多很拙劣的实现方法,比如碰撞检测,比如精灵的布局,比如场景与数据层之间的通信等,所以希望各位能体谅并且指导完善一下,在这里先说声谢谢。作品完成的很粗糙,主要是为了熟悉客户端与服务端之间的通信,所以强制性的将打砖块游戏进行了连网,从而设置了一套通信体系以及数据结构。 4. 项目中借助模板类和protobuf的反射特性,实现了消息的注册和派发,理解上可能有点难度,因为写的有点绕。 5. 读者可能会好奇,为何libproto-test目录中的Android.mk文件内,编译生成libtest.so时没有mysqlutil.cpp文件。在这里我做下说明,主要是有两点考虑:第一,这个库文件是在客户端中使用,而客户端不需要使用到mysql的一些操作;第二,如果要用到mysql,又要NDK编译libmysql,太过麻烦。