使用cocos2d-x轻微山寨DNF,第一部分:准备工作
来源:互联网 发布:c语言spawning cl.exe 编辑:程序博客网 时间:2024/04/29 20:17
第一步,先抠图,到网上随便找了个鬼剑天空套的gif图,解成png如下图
可惜这套图里没有主角受伤和死亡的动作,无所谓啦,英明神武的主角很NB的就是。
第二步,把这些图用texturepacker打包
但在这步前,要记住这写个png的编号,我特意把他们先拆分成文件夹就是这个目的。
1-8是1号攻击动作,9-20是2号攻击动作,21-30是3号攻击动作,待机是31-36号动作,奔跑是37-44号动作。
走路那个动作忒鸡肋了,就不做了,没啥用。
分完动作以后就该用Texturepacker打包了。这里需要普及一下知识,为何要用TP打包。OpenGL有个神奇的特性,它的数据结构存储的图片只能是2的幂次方,也就是说,129*127大小的图片,实际占用的内存空间是256*128,但很多的图片都是非常不规则的,例如这套鬼剑的PNG,297*185,非常神奇的尺寸,如果单独每张存,就是512*256,非常占地方,TP把所有的图片打包到一张图片上,尽可能让图片的使用率最高,防止宝贵的内存浪费。
TP打包很简单,把文件夹往TP工作区一拖,选择文件名,然后publish就行
打完包后的图片,
解释下这三个文件,最下面那个是TP的资源文件,有点类似与PSD,总之以后想编辑,打开它就行。
swordMan.png,是合并后的文件,尺寸是令人happy的1024*1024,很紧凑。
swordMan.plist,则是描述这些图分别是合并前的图片集,里面写了一大堆路径,大家要是好奇打开看看就了解了。
/*
注意,这是最土鳖的一种实现方式,真实的DNF的实现机制远比这复杂的多,为了实现换装系统,DNF将所有能换装的部分全部拆碎,然后用类似与xml的文件存储对应的动作坐标,大家有兴趣可以看看这个网站,http://bbs.exrpg.com/thread-106989-1-1.html,基本就可以对DNF的实现方式会有一定了解了。
*/
下面开始程序设计阶段,在本步里,我们只实现最基本的一个功能,即,一个主角站在场景里。
1. 场景类
2. 鬼剑类
注意,上面这两位类同学基本没考虑抽象的情况,只是为了最简单粗暴的完成功能,今后我们会对他们做一些改良,以使他们适应社会主义现代化的需要。
场景类:直接用helloworld好了,我直接去找一张经典的酒吧场景图(整图),直接把原先helloworld的图替换掉就好了。
鬼剑类:这个稍微麻烦些,现在我们来一起想象一下这个类的情况
第一,它应该是一个CCNode类的子类,然后在场景类初始化时,脸皮很厚的把自己嫁接在场景上,
第二,它在自己初始化时,应该初始化一个动画,永远重复的动画,并且在场景中反复播放这段动画。
忒困了,明天把这段土鳖代码发上来。
- 使用cocos2d-x轻微山寨DNF,第一部分:准备工作
- 使用Cocos2d-x制作三消类游戏Sushi Crush(第一部分)
- 第一部分 准备工作 OllyDBG
- Cocos2d-X菜单教程:第一部分
- Cocos2d-X精灵教程:第一部分
- Cocos2d-x 3.0菜单教程:第一部分
- Cocos2d-x 精灵教程:第一部分
- Cocos2d-x 2048游戏教程 第一部分
- 如何优化cocos2d/x程序的内存使用和程序大小【第一部分】
- 【转载】如何优化cocos2d/x程序的内存使用和程序大小【第一部分】
- 如何使用cocos2d-x 3.0来做一个简单的iphone游戏教程(第一部分)
- 如何使用cocos2d-x来制作一个塔防游戏:第一部分
- 如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第一部分
- 如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第一部分
- 如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第一部分
- 进入Quick-cocos2d-x准备工作
- cocos2d-x学习之前的环境准备工作
- cocos2d-x 2x 菜鸟编塔防 01 准备工作
- MFC程序设计 笔记1---综述
- jrtplib跨网络通讯NAT穿透问题解决方法
- 基于jQuery的上下无缝滚动代码
- Java数据库连接
- c#笔记(二)
- 使用cocos2d-x轻微山寨DNF,第一部分:准备工作
- 二分查找的实现及注意事项
- SSH整合Maven,Maven常引用到的Jar包
- Install MongoDB on FC6
- 衡山骑行之旅,程序员人生开始前的疯狂
- 什么是block内行迁移?intra blcok chain
- ruby 小例子
- NSInvocation的使用
- JS中定义类的方法