设为首页收藏本站喵玉殿官方微博

 找回密码
 少女注册中
搜索
楼主: Sonicthedgehog

[编程算法] 【史前】TouhouDungeonAdventrue 从开始制作到做完的记录

 火.. [复制链接]
 楼主| 发表于 2015-3-19 20:36:21 来自手机 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
回复

使用道具 举报

发表于 2015-3-19 19:35:08 来自手机 | 显示全部楼层
draw的话会不会用上camera..
回复

使用道具 举报

 楼主| 发表于 2015-3-19 01:27:32 | 显示全部楼层
2015-3-19 01:13:21
唔,经过仔细考虑之后发现一个问题,于是地图部分的架构做了一些调整。
架构2015年3月19日011137.PNG
恩。多了一个cTileInstance类。
来来重新来解释一下总体构架。

cMap是最外边的类。cMap里边存储了一个cMapGenerator,一个cLayer的变长数组,一个cTile的变长数组。

cLayer顾名思义,图层。一个cMap里边可能有多个图层。cLayer里边存储每层的地图数据,是一个二元变长数组,里边放cTileInstance。

cTile存地图块数据,这种地图块有木有碰撞啊,贴图用啥啊,有啥动画啊等等基本数据是存在着里边的。cMap里边的cTile数组就是为了存一张地图里的n多种图块。

cTileInstance是实际图层里放的地图数据。为啥要弄这么一个类?是为了处理和普通地图块不同的地图块时候用的。cTileInstance里边指向一个cTile,这个地图块的基本参数就是这个cTile接管,cTileInstance里边只存储了一个数据,sParamExtra,用来处理和普通块不一样的块。可以简单的理解成RMXP里边在第三层绘图层上边的事件层。

cMapGenerator依然顾名思义,不想多说了,肯定是全游戏里最最难写之一的吧……

以上
回复

使用道具 举报

 楼主| 发表于 2015-3-18 01:38:59 | 显示全部楼层
2015-3-18 01:26:07

嘛嘛以后就按照这个格式来吧。
今天也是晚自习上抽了点时间写了写cTile里边存储的参数都有啥,没写多少,照片就先不发了。
于是刚刚肝了20min左右的PS,图块的贴图总算是弄出来了。
test.png

大概这种吧,红墙是自己画的,菱形地板、地毯和桌子(TM我想要餐桌啊!)是找的。大概看了看,感觉要是这样的话,生成地图那一部分……是真难写啊……
OK,回来,这张贴图其实也看不出来什么,不就是地图块么,于是我又花了5min左右用PS简单的拼接了一下。


↓当当当当↓
maptest.png
恩没错,看起来有点像游戏画面了。



什么叫有点像啊……简直太搭配了!(好想玩!

不过这地图块还是没弄完。如果谁有魔女之家里边那种餐桌的地图块资源请务必给我来一份,我这里没有RM,也不怎么会用。
嘛今天就这些了。

题外话,我有种预感,感觉后来事情会越来越多,更的频率可能也会变慢……所以一定要在我快坑了的时候叫我!提醒我!骂我!揍我!(pia

以上。

点评

这完成度,我感觉也要喷水了233 一直在研究游戏对象(角色控制,状态,逻辑等等)始终没搞地图,果然一下子看起来完成度就高很多啊233  发表于 2015-3-20 01:18
回复

使用道具 举报

发表于 2015-3-17 17:11:23 | 显示全部楼层
图块素材的话,如果不怕改的话,有不少
来源是rm的地图块的素材,也是32*32一格的
而且地图画面结构也意外的相似……

(另外类似的行走图格式意外的眼熟......)

点评

谢啦谢啦,我会各种加油的  发表于 2015-3-17 19:15
那个素材站的确很不错,不用代理就能看了。lz加油啊,很期待你完坑那天哦  发表于 2015-3-17 18:14
嘛,毕竟木有美工啊。。地图块贴图的话我是自己做加摘录rm素材的。人物图的话。。。首贴已说,可以去看看,挺不错的素材站。 rm我基本没怎么用过。  发表于 2015-3-17 17:23
回复

使用道具 举报

发表于 2015-3-17 11:23:42 来自手机 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
回复

使用道具 举报

 楼主| 发表于 2015-3-17 02:15:30 | 显示全部楼层
于是这里是今天的最新进展了。
晚自习抽时间写了一下关于地图部分的实现方法。
IMG20150316203341.jpg
图压了,可能有点小。
大概的架构应该是这样:
cMap
- cMapGenerator
- cTile(..)
- cLayer(..)
  - iMatrix(.. , ..)
  - blablabla.....

一个cMap类存储所有相关的数据,所谓调用的最外边一层。
cMapGenerator是该地图匹配的随机生成器,里边放一些参数什么的,以及控制非读档地图的生成。
cTile是该地图内所有种类的图块,所以声明的时候是个数组。cTile记录每种图块的feature啊behavior啊animation(mAnim)啊什么的,可以通过调用图块类里边内置的Draw等等方法实现快速画地图。(画地图
cLayer是存储地图数据的类,你看里边有的那个iMatrix就是存放每个地图块对应哪种cTile用的。当然cLayer里边还有一些特殊的参数,比如该图层整体是否计入碰撞判定,图层背景图cTex等等。cLayer也是一个数组,一般会有3到5个中原,该表这地图得用5层地图块叠加才能出最终效果。






然后是题外话:真TM累啊。都这点了。这个记录本子上边还有之前写过的一些东西,什么时候我没什么进展但是又得更贴的时候就发出来玩玩,还有人物技能设定呢。
回复

使用道具 举报

 楼主| 发表于 2015-3-15 19:29:33 | 显示全部楼层
Darksword 发表于 2015-3-15 19:22
ECS,Entity Component System,组件式实体系统,可以避免游戏对象的类爆炸,每个游戏实体调用自己所需要 ...

喔?!听起来感觉不错啊,祝早日研究成功!到时候一定要聊聊怎么实现的!

点评

咱也是萌新级别的:3 我会整理一些想法和笔记到自己的小网站里的说,欢迎来玩:3 http://darkstar.cn  发表于 2015-3-15 19:41
回复

使用道具 举报

发表于 2015-3-15 19:22:44 | 显示全部楼层
Sonicthedgehog 发表于 2015-3-15 19:15
求问那是什么结构?

ECS,Entity Component System,组件式实体系统,可以避免游戏对象的类爆炸,每个游戏实体调用自己所需要的组件即可(例如位置组件,碰撞检测组件,脚本组件等等),而不用重新定义和派生新类w
详情用英文google吧w 我在学呢w
回复

使用道具 举报

 楼主| 发表于 2015-3-15 19:15:10 来自手机 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 少女注册中

本版积分规则

合作与事务联系|无图版|手机版|小黑屋|喵玉殿

GMT+8, 2025-10-31 03:36

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表