cocos2dx3.2开发 RPG《Flighting》(一)基本介绍

时间:2023-02-07 23:28:58

前言:

上次写了一个消灭星星,很多人都回复了我,并且提出了宝贵的意见,先感谢大家啦~上几个月我发现了一个很好玩的游戏——《BattleHeart》,心里面想着,这么好的游戏要是可以联机跟好朋友一起玩(就像CS那样)那就爽歪歪了,于是就动手开始模仿这款游戏,并且为其加入网络模块。可惜,因为对多人网络游戏开发并不熟悉,虽然最后还是开发出来了,但是效果却差强人意。不过在开发过程中学到了很多新的知识和网络游戏用到的技术(例如boost::asio搭建服务器,网络游戏同步等),也算是一个不错的经历了。

由于网络版比较复杂,这里写的只是单机版的教程。。以后可能还会提供我写的一个用boost::asio搭建的服务器/客户端框架,不过这里先不涉及到网络模块方面的。

一、原版《BattleHeart》简介

在这里贴上几张《BattleHeart》的图片,让大家有个美好的期盼,哈哈。

cocos2dx3.2开发 RPG《Flighting》(一)基本介绍

cocos2dx3.2开发 RPG《Flighting》(一)基本介绍

二、山寨版《Flighting》

接下来就是我的山寨作品,大家做好心理准备啊。。。

cocos2dx3.2开发 RPG《Flighting》(一)基本介绍

cocos2dx3.2开发 RPG《Flighting》(一)基本介绍

只能怪美工咯,对不对,不过美工也是我担任的。。。


三、项目结构简介

说了那么多废话,现在开始讲我们的项目吧。

1)总体:

cocos2dx3.2开发 RPG《Flighting》(一)基本介绍


2)Data:个人习惯把一些默认的数据放在一个文件里面管理

cocos2dx3.2开发 RPG《Flighting》(一)基本介绍

3)Entity:实体类,主要包括Bullet(子弹类) Hero(英雄) Monster(怪物)Role(角色类,英雄和怪物类的父类)SkillBox(技能框)

cocos2dx3.2开发 RPG《Flighting》(一)基本介绍

4)SKillSelector :负责技能效果的选择

cocos2dx3.2开发 RPG《Flighting》(一)基本介绍

5)Util:主要是负责数据的录入(从Excel表转换成Json再录入到对象)

cocos2dx3.2开发 RPG《Flighting》(一)基本介绍

6)View:各个场景(Battle:战斗场景,Choose:选人场景,MenuView:开始菜单,PauseView:暂停画面)

cocos2dx3.2开发 RPG《Flighting》(一)基本介绍

7)AppDelegate:程序入口

这里,我用到的是1280x720的素材,而且默认的帧数改为45帧,所以AppDelegate的修改如下:

bool AppDelegate::applicationDidFinishLaunching() {
// initialize director
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
glview = GLView::create("Flighting1.2");
director->setOpenGLView(glview);
}

glview->setFrameSize(1280,720);
glview->setFrameZoomFactor(0.6f);
glview->setDesignResolutionSize(1280,720,kResolutionExactFit);

// turn on display FPS
director->setDisplayStats(true);

// set FPS. the default value is 1.0/60 if you don't call this
director->setAnimationInterval(1.0 / 45);

// create a scene. it's an autorelease object
auto scene = MenuScene::create();

// run
director->runWithScene(scene);

//engine->executeScriptFile("src/main.lua");

return true;
}

简介就先到此为止。


我的csdn地址:http://blog.csdn.net/hezijian22

邮箱地址:578690286@qq.com

如有问题或指教,欢迎与我交流,谢谢。