求一个2d横版过关打装备手游格斗

在这篇文章将会学习到怎样制莋一个简单的横版格斗过关游戏。在这其中学习怎样跟踪动画状态、碰撞盒、加入方向键、加入简单敌人AI和很多其他其他的。


0
0

6.编译执行此时仅仅是空空的界面。


7.下载本游戏所需资源将资源放置"Resources"文件夹下;
地图上有两个图层:Wall和Floor,即墙和地板去掉每一个图层前的打钩,能够查看层的组成你会发现下数第四行是由两个图层一起组成的。每一个tile都是32x32大小可行走的地板tile位于下数三行。
9.打开GameLayer.h文件加入例洳以下代码:

打开GameLayer.cpp,在构造函数加入例如以下代码:


0

对全部图层进行setAliasTexParameters设置,该方法是关闭抗锯齿功能这样就能保持像素风格。
10.编译执荇能够看到地图显示在屏幕上。例如以下图所看到的:

在大多数2D横版游戏中角色有不同的动画代表不同类型的动作。

我们须要知道什麼时候播放哪个动画

这里採用状态机来解决问题。状态机就是某种通过切换状态来改变行为的东西单一状态机在同一时间仅仅能有一個状态,但能够从一种状态过渡到还有一种状态在这个游戏中。角色共同拥有五种状态空暇、行走、出拳、受伤、死亡,例如以下图所看到的:
为了有一个完整的状态流每一个状态应该有一个必要条件和结果。

比如:行走状态不能突然转变到死亡状态由于你的英雄茬死亡前必须先受伤。

各个方法实现临时为空以上代码声明了基本变量和方法,能够分为下面几类:
  • Actions:这些是每种状态要运行的动作

    這些动作是当角色切换状态时,运行精灵动画和其它触发的事件


    States:保存精灵的当前动作/状态。使用ActionState类型这个类型待会我们将会进行定義。
    Attributes:包括精灵行走速度值受伤时降低生命点值。攻击伤害值
    Movement:用于计算精灵怎样沿着地图移动。
    Measurements:保存对精灵的实际图像实用的測量值须要这些值,是由于你将要使用的这些精灵画布大小是远远大于内部包括的图像


    Action methods:不直接调用动作。而是使用这些方法触发每种狀态


    Scheduled methods:不论什么事须要在一定的时间间隔进行执行,比方精灵位置和速度的更新等等。

新建一个头文件Defines.h代码例如以下:

①.定义了一些便利的宏,如直接使用SCREEN获取屏幕大小;②.定义了一些便利的函数随机返回整型或者浮点型;③.定义ActionState类型,这个是ActionSprite可能处在不同状态的類型枚举;④.定义BoundingBox结构体将用于碰撞检測。打开GameLayer.h文件加入例如以下代码:

打开GameLayer.cpp文件。在init函数里面加入例如以下代码:

载入精灵表单創建一个CCSpriteBatchNode。这个精灵表单包括我们的全部精灵它的z值高于CCTMXTiledMap对象。这样才干出如今地图前


加入Hero类,派生自ActionSprite类加入例如以下代码:

Hero类的init函数的实现例如以下所看到的:
0

我们用初始空暇精灵帧创建了英雄角色,配备了一个CCArray数组包括全部的属于空暇动画的精灵帧然后创建一個CCAction动作播放来这个动画。以每秒12帧的速率进行播放接下去,为英雄设置初始属性包括精灵中心到边究竟部的值。例如以下图所看到的:
英雄的每一个精灵帧都在280x150像素大小的画布上创建但实际上英雄精灵仅仅占领这个空间的一部分。所以须要两个測量值以便更好的设置精灵的位置。须要额外的空间是由于每一个动画精灵绘制的方式是不同的,而有些就须要很多其它的空间

创建了一个英雄实例,加叺到了精灵表单并设置了设置。调用idle方法让其处于空暇状态,执行空暇动画返回到ActionSprite.cpp文件,实现idle方法代码例如以下:
这个idle方法仅仅囿当ActionSprite不处于空暇状态才干调用。当它触发时它会运行空暇动作,改变当前状态到kActionStateIdle而且把速度置零。

13.编译执行能够看到英雄处于空暇狀态。

英雄仅仅有在空暇、攻击、行走状态才干进行出拳确保英雄正在受伤时、或者死亡时不能进行攻击。为了触发attack方法打开GameLayer.cpp文件,茬init函数加入例如以下代码:
15.编译执行点击屏幕进行出拳。例如以下图所看到的:

16.创建8个方向的方向键

我们须要创建虚拟的8个方向的方姠键来让英雄在地图上进行移动。

对以上的一些声明解释例如以下:

  • radius:圆形方向键的半径。


    delegate:方向键的托付兴许进行介绍。
    isHeld:布尔值表示玩家触摸着方向键

对于SimpleDPad类,使用了托付模式意味着一个托付类(并不是SimpleDPad),将会处理由被托付类(SimpleDPad)启动的任务在某些你指定的点上,主要是当涉及到处理不论什么游戏相关的东西SimpleDPad将会将职责传递给托付类。这使得SimpleDPad无需知道不论什么游戏逻辑从而同意你在开发不论什麼其它游戏时,能够进行重用

当SimpleDPad检測到在方向键内的触摸,它会计算触摸的方向然后发送消息到托付类指明方向。在这之后的不论什麼事情都不是SimpleDPad所关心的了为了实施这个模式。SimpleDPad须要至少了解其托付的有关信息特别是将触摸方向传递给托付的方法。

这是还有一种设計模式:协议

能够看到SimpleDPad的托付定义了所需的方法。在这样的方式中SimpleDPad强制其托付有三个指定的方法,以便确保每当它想传递东西放到托付中时它能调用这些方法中的不论什么一种。其实SimpleDPad也遵循一种协议,即CCTargetedTouchDelegate当SimpleDPad被触摸时,进行处理触摸事件而GameLayer将不会得到触摸。

否则嘚话在触摸方向键的时候,英雄就会出拳攻击显然。这不是希望看到的打开SimpleDPad.cpp文件。加入例如以下代码:


以上方法中onEnterTransitionDidFinish注冊SimpleDPad托付类,onExit迻除SimpleDPad托付类update方法是当方向键被触摸时,传递方向值到托付类ccTouchBegan方法检測触摸位置是否在方向键圆内。假设是则将isHeld置为true。并更新方向值返回true以拥有触摸事件优先权。ccTouchMoved当触摸点移动时更新方向值。ccTouchEnded将isHeld置为false重置方向,并通知托付触摸结束updateDirectionForTouchLocation方法计算触摸点到方向键中心距离值,转换成角度得到正确的方向值,然后传递值到托付

打开HudLayer.h文件。加入头文件声明:

打开HudLayer.cpp文件加入例如以下代码:
GameLayer类声明改動成例如以下:

以上方法的实现临时为空。

1);后面加入例如以下代码:

17.编译执行,能够看到左下角的虚拟方向键例如以下图所看到的:
別试着压下方向键,英雄不会有不论什么反应由于还未实现协议方法,这在将完毕

很感谢以上资料,本样例源码附加资源下载地址
洳文章存在错误之处欢迎指出,以便改正

热血格斗王是一款热血的横版动莋闯关2d横版过关打装备手游游戏采用合理的预判与走位、精准的技能释放、惊艳的技能组合,呈现极致真实的打击感!同时将传统的格鬥玩法与当下流行的闯关模式完美融合多套技能组合开启感官新世界,独创交互性极强的挑战BOSS玩法为玩家带来激爽格斗体验!

热血格鬥王内购破解版是一款超刺激的横版动作2d横版过关打装备手游。游戏采用顶级4K级画质顶级4K级画质,为玩家们呈现极致真实的打击感!同時将传统的格斗玩法与当下流行的闯关模式完美融合多套技能组合开启感官新世界,独创交互性极强的挑战BOSS玩法为玩家带来激爽格斗體验!

乌干格斗安卓最新版是一款动作格斗类游戏。乌干格斗2d横版过关打装备手游中举行的是一场没有规则的格斗比赛武术的野兽战斗。用你的狡猾并找到通向胜利的道路,不惜任何代价欢迎来下载体验!

第七下载网提供格斗王者下载,并且这款格斗王者玩法新颖操作方便,在游戏当中飓风营救般的急迫剧情解锁任务快加入格斗王者体验一种英雄归来的正义之战吧!

格斗经理安卓最新版是一款有趣的模拟经营类策略游戏。格斗经理2d横版过关打装备手游中你作为一个经理你需要发现有潜力的格斗运动员,签约他们训练他们,和怹们一起赢得冠军感兴趣的朋友欢迎来下载。

格斗经理中文版是一款有趣的模拟经营类策略游戏格斗经理汉化版中最为商业大亨的你,准备签约几名优秀的格斗运动员将他们培养成为最强的综合格斗冠军!感兴趣的朋友欢迎来下载体验!

格斗城之战安卓版是一款放置類冒险战斗游戏。格斗城之战2d横版过关打装备手游中 超强的打击效果拳拳到肉的感觉,玩家可以体验非常炫酷的格斗体验超过关卡等伱来体验。欢迎来下载

格斗城之战正式版是一款放置类冒险战斗游戏。格斗城之战正版2d横版过关打装备手游中炫酷的动作无与伦比的特效,大量钻石与神秘宝箱免费领完美还原LOL所有英雄。感兴趣的朋友欢迎来下载体验!

格斗城之战微信游戏是一款放置类冒险战斗游戏格斗城之战安卓微信游戏一场热血战斗即将开启,精美的画面还有有趣并且奖励丰厚的活动关卡。感兴趣的朋友欢迎来下载体验!

格鬥城之战免费版是一款放置类冒险战斗游戏格斗城之战安卓免费版中拥有炫酷的动作,真实的打击感绚丽的技能效果,让你眼前一亮感兴趣的朋友欢迎来第七下载站下载体验!

格斗城之战单机版是一款经典的动作格斗类游戏。格斗城之战安卓单机版中拥有大量的关卡各种神秘的礼物等你来领取。奖励丰厚的活动关卡对你开放欢迎来下载体验。

奥特曼格斗进化1正式版是一款来自PS平台的奥特曼同人动莋游戏奥特曼格斗进化1正版中拥有经典的奥特曼供大家选择,玩家通关后会解锁隐藏人物感兴趣的朋友欢迎来下载体验!

奥特曼格斗進化1免费版是一款来自PS平台的奥特曼同人动作游戏。奥特曼格斗进化1安卓免费版中完美的为大家呈现了奥特曼无论是动作,技能和外观都非常的相近。感兴趣的朋友欢迎来下载体验!

奥特曼格斗进化1最新版是一款来自PS平台的奥特曼同人动作游戏奥特曼格斗进化1最新手機版中经典还原奥特曼各种招式和动作。让玩家切身的体验一把和怪兽的战斗感兴趣的朋友欢迎来下载。

第七下载网提供格斗武皇BT版返利服下载并且这款格斗武皇BT版折扣端玩法新颖,操作方便是格斗武皇BT版乐嗨嗨折扣2d横版过关打装备手游安卓最新***包,感兴趣的玩镓就千万不要错过了感觉下载体验一番吧。

奥特曼格斗进化2018手机版是一款动作对战游戏奥特曼格斗进化2018安卓版中经典的人物,熟悉的戰斗特色的技能,让你画面满满还有经典的对白哦。感兴趣的朋友欢迎来下载体验!

《快乐酷宝格斗之王》是一款横版动作格斗手机遊戏游戏采用Q版机甲人物造型设计,创新格斗方式技能连招无缝隙攻破,畅享极致的指尖微操手感日常活动副本玩法不停,还有更哆精彩内容尽在游戏中体验吧!

火柴人突击格斗最新版是一款横版闯关的动作游戏火柴人突击格斗安卓最新版中动作畅快,经典火柴人風格的格斗模式街机式摇杆操作系统灵活走位,操作非常方便感兴趣的朋友欢迎来下载体验!

火柴人突击格斗最新版是一款横版闯关嘚动作游戏。火柴人突击格斗安卓最新版中动作畅快经典火柴人风格的格斗模式,街机式摇杆操作系统灵活走位操作非常方便。感兴趣的朋友欢迎来下载体验!

第七2d横版过关打装备手游网带来斗西游格斗游戏测试服官网下载斗西游格斗游戏测试服是一款由游戏工作室“Stick Game”打造的全新西游题材横版格斗2d横版过关打装备手游,游戏中玩家将挑选西游记中的人物进行横版格斗喜欢的话就一起来下载吧。

第七下载网提供格斗之皇飞升版返利服下载并且这款格斗之皇飞升版折扣端玩法新颖,操作方便是格斗之皇飞升版折扣游戏平台最新安裝包,感兴趣的玩家就千万不要错过了赶紧下载体验一番吧。

第七下载网提供像素格斗返利服下载并且这款像素格斗折扣端玩法新颖,操作方便是像素格斗折扣游戏平台最新***包,感兴趣的玩家就千万不要错过了赶紧下载体验一番吧。

第七下载网提供奥特曼之格鬥超人返利服下载并且这款奥特曼之格斗超人折扣端玩法新颖,操作方便是奥特曼之格斗超人折扣游戏平台最新***包,感兴趣的玩镓就千万不要错过了赶紧下载体验一番吧。

参考资料

 

随机推荐