嗯,我很心疼花的钱。。。
摇杆是单点触摸的,滑动就是移动,点击就是攻击。就像快播的单手模式,你懂得。。
倾斜效果就是rotateby的,沿x轴转了好像30度左右
因为当时时间赶,好多地方不理想,比如摇杆和虚拟键盘的手感不太好,大地图之后的场景元素太单一,回合制战斗过于简单,由于没有旅店,所以每次战斗完都会加满血。我有时间就修改一下,尽量让它更好一些,我很喜欢这个游戏的音乐。这个游戏的原版就是steam的evoland,因为我没有原版的3d模型,所以参加的2d游戏比赛。另外我还用了重装机兵的音乐,推荐大家听一下。谢谢前面朋友的回复。
作者你这个游戏仿的是pc上的进化是吧
嗯,是PC上的Evoland,图片和音乐大多都来自于原版
这种demo确实不能拿去比赛
为什么呢?
毕竟是模仿的,参加比赛最好用原创素材和原创的想法。你这个DEMO只能体现你的开发能力。
提供源码吗
我当时有想过。不过好多做flappybird的,大家都没有美工,选择2d游戏这个题目也是因为不需要美工,可以直接ps处理一点网上的素材,所以我天真的以为比编码能力呢。。。
源码都是体力活,哪部分有疑问可以问我。。
可以看下源码吗,拜托
当时熬通宵赶工,源码可读性完全没法保证,而且41个类,没有一行注释。。。我打算整理一下,不过快考试了,暂时没有时间。。。
没什么技术,就是用的各种API而已。用到的都是很简单的东西,cocos2d-x的初学者完全会用的。。。
说一下基本思路吧:
1、开箱子之后会发生一些事件,这时候需要回调函数,因为我是C++写的,没办法做到脚本语言中“反射”的功能,所以是用std::map做的,map的key是字符串,保存在tiled地图中,map的value是一个函数指针,这样就可以模拟一下“反射”了。
2、颜色的切换就是单纯的replaceScene,不过要保证切换前地图的改动(如割掉的草)能够在新切换的场景中得到延续,类似存档和读档。
3、虚拟键盘和摇杆的切换。两者继承了OperatorBase抽象基类,所以可以随时切换。
4、存档。地图的改动保存在一个单例DataService中,切换场景时,将改动写入临时文件,再次切换回来时记得及时恢复,这样保证数据的持久化。存档时,将临时文件复制到存档文件。万一存档前死亡,清空DataService中的内容,忽略临时文件的内容。
5、GameManager单例类保存栈顶场景的角色、地图、提示框等元素的指针,方便开箱子后的处理还有其他模块的逻辑。(例如回合制战斗模块只需要一行addChild就可以加入场景,它只需要检测GameManager的Player是否在行走,就可以决定是否触发战斗),这样减少各模块的耦合。
暂时想到了这一些,我必须承认,代码真的没有上面这几句话好懂。。。
如果感兴趣的话可以自己试着敲一下,有什么疑问问我就好了,大学狗除了考试都有时间。
刚才提示 “考(和谐)试” 是敏感词。。。如果和谐我再发发一遍。。。
就是保存游戏这块不敢确定,其他的也能想个七七八八.现在知道了,谢了,回答这么详细.
好长时间了,突然想到一个问题请教一下,主角和怪物的碰撞检测是怎么做的,貌似把这个操作放在定时器里时时刻刻去检测对cpu压力太大了.
哦 这个啊 ,我玩过原版,所以你这个会进化到3D嘛 哈哈
做的挺不错的。
简单的游戏一屏幕没几个精灵,放在 update 里挨个判断是没什么压力的吧。当精灵多了到影响到了性能,再去考虑优化也不迟。
比如你可以只判断角色是否和周围少量的几个怪物发生碰撞,但如何知道哪些怪物在角色周围呢,如果怪物很多挨个遍历一便也很慢,这个时候你可以试试四叉树:
http://wxsr.blogbus.com/logs/60788934.html
这个优化只是在有大规模数量的时候才好用,如果你只有很少的对象,那就是杀鸡用牛刀啦~
谢谢,一直被这个问题困扰