RPG游戏更新日志
sdl吧
全部回复
仅看楼主
level 13
小牛_牛sky 楼主
加油加油
2017年12月26日 23点12分 1
level 13
小牛_牛sky 楼主
昨天大致完成了人物的行走图和立绘的解析。这些素材都是rpg mv上的,不过我买了steam的正版了。所以倒是不担心商业用途(关键是也没打算商业用途)。一开始我是打算把图片切割,比如人物的四方向行走图,就切割成如Actor01_left00.png。但是这样的弊端如下
1 花费很多时间用在切割图片上
2 如果人物众多,那么花费的时间将是指数级增长
3需要小心处理每一个图片的名称,且不能相同
综上,我就打算直接从大图里自己切割,那样在需要动画或者贴图时每次都会进行切割,但不需要额外的名称,对于一类图片也是统一的(稍后我会发出来图片)
2017年12月26日 23点12分 3
level 13
小牛_牛sky 楼主
目前我的游戏一般是MVC架构 游戏有且仅有一个主场景GameScene是其中的C控制器,负责逻辑的处理和事件的回调以及与脚本的交互。GameScene我使用的是单例类,这样就能和lua进行交互并进行相应的操作。
2017年12月26日 23点12分 4
level 13
小牛_牛sky 楼主
目前我的打算是一周内重写完成,把一些API修改下,以及修改一些代码,然后如果涉及到一些有意思的代码我会另外开帖或者csdn上。这个以后再说啦。
2017年12月26日 23点12分 5
level 13
小牛_牛sky 楼主
2017年12月27日 00点12分 6
level 13
小牛_牛sky 楼主
如上图,这是rpg mv的行走图格式。可以看到。一张图片是8个。我在代码中是根据图片路径 索引 行走方向来获取对应的3张图片,并把这三张图片成为动画。
2017年12月27日 00点12分 7
level 13
小牛_牛sky 楼主
上面个人物。每行4个。那么
row 为 index / 4;
col 为 index % 4;
这样能获取到是哪个人物。然后还有个dir为人物方向。
enum class Direction{
Down,
Left,
Right,
Up};
这样再添加dir这个偏移位置即可找到是哪一行的3个图片。
代码如下
Point offset;
offset.x 为 col * 3 *48;
offset.x 为 (row * 4 + static_cast<int>(dir))*48
2017年12月27日 00点12分 8
感觉每一帧都要这样切图消耗好大吖,小图那么多
2017年12月27日 08点12分
@一周休七日 这不是切图,实质上用的都是大图,只不过就渲染一小块
2017年12月27日 11点12分
level 13
小牛_牛sky 楼主
立绘和战斗图于此类似,不再赘述,图片如下
2017年12月27日 00点12分 9
level 13
小牛_牛sky 楼主
2017年12月27日 00点12分 10
level 13
小牛_牛sky 楼主
2017年12月27日 00点12分 11
level 13
小牛_牛sky 楼主
不过其中的弊端就是,这些图片并不是2的n次方,也就是说在运行中会占有更大的内存,这个没办法,总要付出点代价。不过目前的内存都不算小。这点付出还是值得的,毕竟如果对图片进行切分实在无聊的要死[滑稽]
2017年12月27日 00点12分 12
level 13
小牛_牛sky 楼主
另外就是,我还另外添加了一个映射。比如在游戏中主角是sky,那么会有他对应的行走图和战斗图。这个我是用plist保存的,格式如下。
2017年12月27日 00点12分 13
level 13
小牛_牛sky 楼主
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!--角色1-->
<key>sky</key>
<dict>
<!--行走图-->
<key>walk</key>
<dict>
<key>filename</key>
<string>img/characters/Actor1.png</string>
<key>delay</key>
<real>0.15f</real>
<key>loops</key>
<integer>-1</integer>
<key>restoreOriginalFrame</key>
<true/>
<key>index</key>
<integer>0</integer>
</dict>
<!--战斗图sv-->
<key>sv</key>
<string>img/sv_actors/Actor1_1.png</string>
</dict>
<key>moon</key>
<dict>
</dict>
</dict>
</plist>
2017年12月27日 00点12分 14
level 13
小牛_牛sky 楼主
注意plist是xml的特殊格式,广泛用在ios系统,对其中的一些标签进行了规定。其他的和xml类似,具体的大家百度吧。我解析的plist效率也不高。。。勉强能用
2017年12月27日 00点12分 15
xml你是自己解释还是用现有的库?
2017年12月27日 08点12分
回复 一周休七日 :rapidxml
2017年12月27日 11点12分
level 13
小牛_牛sky 楼主
另外就是一般情况下,行走图和战斗图并不相关,有的只有行走图,比如某些npc。有的则只有战斗图。而主角则是既有行走图又有战斗图,要不怎么叫主角呢。
2017年12月27日 00点12分 16
1 2 3 4 尾页