cocos2d-x 如何制作一个类马里奥的横版平台动作游戏 1 献给所有对动作游戏有爱的朋友,cocos2d-x一个类

  次阅读 作者:智能小宝 来源:互联网 2015-09-28 14:39 我要评论(0)

cocos2d-x 如何制作一个类马里奥的横版平台动作游戏 1 献给所有对动作游戏有爱的朋友,cocos2d-x一个类

本文翻译自国外著名IOS源码教学商业网站raywenderlich 的IOS

Game Start Kits三件套之一的Platformer Game/平台动作游戏的前奏曲,另一个是Beat'Em up Game/横版格斗游戏,作者是国外著名游戏开发专家Jake

Gundersen,曾参与开发过SFC时代的洛克人X系列。

原文网址:

http://www.raywenderlich.com/15230/how-to-make-a-platform-game-like-super-mario-brothers-part-1

开篇之前先怀旧一番吧!

还记得超级马里奥的青青草地蓝天白云吗?还记得曾让人爱恨交加又不屈不挠让人不忍放弃的洛克人ZERO吗,我们燃起小宇宙一招龙炎刃击败最终Boss的场面是曾多么热血澎湃!这些感动一代人的游戏陪伴了我们80后儿时整整一个时代。横版平台动作游戏,作为FC时代最早的游戏类型,以美丽精致的游戏画面,曲折有趣的关卡设计,丰富流畅的动作设定深深地俘获住了众玩家的芳心,让玩家过足了在游戏世界里冒险探索的瘾。这个悬崖怎么跳过去?这个机关怎么破解?这个洞里是不是还有隐藏宝物?下一关是啥样的?最终Boss到底是谁该怎么打?无数的问题让玩家欲罢不能。现在IOS时代这种游戏的光环已经渐渐褪散了,代之以没剧情没关卡只有背景无限滚动的无脑跑酷模式。这样的快餐游戏我已经不想再说什么了,一句话,任何所谓的创新类型都无法超越经典,大家是不是已经燃起想学习的Cosmos了?那么请看下面吧!

本教程所需要的美术资源:resources 源码见文章未尾

创建一个简单易用的2D物理引擎:

并非所有的2D游戏都需要像小鸟那样复杂的物理引擎,如超级马里奥,洛克人索尼克这种其实只需要着重模拟重力环境和平台碰撞,以及行走时的动力和摩擦力即可,关键一点就是能模拟运动,即在重力环境下的走,跑,跳和下落,模拟的好的话动作会非常流畅和自然,否则就非常生硬,此外就是碰撞检测。

我们的主角是一只可爱的考拉(树袋熊),在你下面要实现的简单物理引擎里,你的考拉有这几个物理变量:当前速度(velocity),运动加速度(acceleration)和当前位置(position)以及其他。你将利用这些变量实现下面的算法:

1.玩家启用了跳跃和和移动操作了吗?

2.如果是就给考拉一个跳跃或移动的力

3.同时时刻不停地给考拉加以重力

4.计算出各种力作用下的考拉速度

5.根据计算出的速度计算出考拉当前位置,并更新

6.检查考拉与墙和地等其他物体的碰撞

7.如果发生了碰撞,就通过将考拉移回碰撞发生前的位置来解决,直至碰撞不再发生,如果与怪物发生了碰撞,则可怜的考拉要承受伤害

你在每帧都要做这些操作,在游戏世界里,重力是一直都稳定存在的把考拉向下拉向地面,但是在碰撞解决步骤里又会把考拉向上推至地面顶。

加载TMXTiledMap:假设大家对Tiled map editor工具已经非常熟悉,让我们打开下载的资源目录里的level1.tmx,就会看到:你会发现地图有三个层,分别是:

hazards: 这个层包含了一些objects我们的小考拉碰到了就会受伤-_-

walls:本层包含的tiles是考拉不能穿过的,也就是墙壁,地面这些物体

background: 本层是背景图,只是些装饰用的,如山呀云呀树之类,不会起到碰撞反应

终于可以coding了,让我们先建立一个GameLevelLayer的类,就是游戏层啦,具体代码我就不全贴了,可以参考源码,头文件类似这个样子:class GameLevelLayer : public cocos2d::CCLayer

{

public:

GameLevelLayer(void);

~GameLevelLayer(void);

CREATE_FUNC(GameLevelLayer);

bool init();

static cocos2d::CCScene* scene();

protected:

cocos2d::CCTMXTiledMap *map;

};下面我们在init里加入地图,如下://加载一个蓝色背景当装饰

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...