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

前言:

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

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

一、原版《BattleHeart》简介

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

二、山寨版《Flighting》

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

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

三、项目结构简介

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

1)总体:

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

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

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

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

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

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

邮箱地址:[email protected]

如有问题或指教,请于我交流,谢谢。

时间: 2024-11-03 21:19:07

cocos2dx3.2开发 RPG《Flighting》(一)基本介绍的相关文章

cocos2dx3.2开发 RPG《Flighting》(十五)最后的总结说明,以及源码分享

一.前言 这次的Flighting系列教程一口气写了2天,到这里就要结束了.接下来我说明补充一下一些前面没有提到,但是我觉得有必要讲一下的. 二.正文 1.怪物的出场 前面已经说了一个个的XXXMessageUtil,其实StateMessageUtil是比较特别的.首先我们先看看StateMessage的Excel表(关卡) 前面的字段大家可以参透参透,我主要讲一讲monster字段 monster字段表示这个关卡的怪物对队列,用"|"隔开 class StageMessage{ p

cocos2dx3.2开发 RPG《Flighting》(九)必不可少的子弹

一.前言 上一节我们讲完了攻击,其实也只是攻击者一方一厢情愿地播放自己的攻击动画罢了,被攻击的那一方根本不知道发生了什么,攻击者和被攻击者还没有联系起来. 所以,我们就引入了子弹这个东东. 二.正文 一开始我在开发的时候想到用物理引擎,后来想了想还是算了,一是难控制,二是可能会遇到一些问题(例如两个人之间可能会发生碰撞..) 所以还是将错就错,直接用update函数解决问题吧. 子弹,顾名思义,就是子弹啊. class Role; class Bullet : public Node{ publ

cocos2dx3.2开发 RPG《Flighting》(三)从Excel表中加载需要的数据

一.前言 在一个游戏里面,需要用到的数据一般都是由游戏策划提供的(这里的策划还是由我自己担任啦哈哈).什么是需要用到的数据?例如我创建一个角色A,A有他自己的攻击力,防御力,速度等,再创建一个角色B,B也有自己的攻击力,防御力,速度等.每个角色都有一些基础属性,但是对应不同的角色,属性的值有可能不同.我们不可能在代码里面把这些数据写死.最好的办法是从一个文件(通常是Excel表格)中读入数据,这样就方便管理和修改. 二.正文 1.Excel <Flighting>游戏里面用到了4个Excel表

cocos2dx3.2开发 RPG《Flighting》(十)为角色加上血量条

一.前言 先说明一下,Role类其实是有很多属性的 protected: /*与战斗相关的数据*/ int m_id; //id Role* m_attackTarget; Role** m_attackTargetPtr;//攻击目标 Point m_desPoint;//目标位置 ROLE_STAT en_stat; //当前状态 FlightLayer* m_layer; //父控件 int m_speed; //移动速度 int m_initSpeed; int m_attackDist

cocos2dx3.2开发 RPG《Flighting》(七)回到战斗场景,更新角色的叠放次序

一.前言 至此,我们的战斗场景关于角色移动已经讲得七七八八了.不过还是有一些问题需要注意注意. 二.正文 在第五节里面我们讲了FlightLayer里面有一个很重要的容器m_rolesArray,并且说道其初始化是由以下两个函数负责的. void FlightLayer::initTeam(const HeroMessage& h1,const HeroMessage& h2,const HeroMessage& h3){ Hero* hero1 = Hero::create(h1

cocos2dx3.2开发 RPG《Flighting》(八)开始战斗

一.前言 前面我们已经基本学会了怎么让角色走起路来而且也做了很多的优化.下面是时候开始战斗了.不过还是不要急,我们先暂时不引入英雄和怪物这两个类(毕竟只要是Role就可以打架,哪怕是英雄打英雄) 二.正文 先大致说一下整个思路: 1.选择角色并且可以拉出一条导航线出来(之前已经做了) 2.判断导航线的终点,如果终点刚好是在一个Role的身上,那么..嘻嘻就打他了. 3.角色移动到目标身边 4.角色播放攻击动画 5.被打的人播放被打的动画 1.2两步之前已经基本做了,这里只需要做一点点修改. vo

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报开源框架 图像: 1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.      下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,

iOS开发拓展篇-XMPP简单介绍

iOS开发拓展篇-XMPP简单介绍 一.即时通讯简单介绍 1.简单说明 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容 有许多的IM系统,如AOL IM.Yahoo IM. MSN以及QQ,它们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议 协议用来说明信息在网络上如何传输,如果有了统一的传输协议,那么应当可以实现各个IM之间的直接通讯,为了创建即时通讯的统一标准,目前已

iOS开发多线程篇—多线程简单介绍

iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcode,系统就会分别启动2个进程 通过“活动监视器”可以查看Mac系统中所开启的进程 2.什么是线程 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程) 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行 比如使用酷狗播放音乐.使用迅雷下载电影,都需要在线程中执行 3.线程