有一个类似跟随的问题,是关于影子的跟随.
没有影子的角色在画面中移动的时候就和剪纸一样,很薄的一片,有点别扭......另外由于地图缺乏角色在平面外移动的参照物,所以在需要角色做跳跃动作的时候,看上去仅仅是人物快速往地图上方移动了一下又返回了原处.感觉角色的脚没有离地......所以偶希望给角色加影子制造点效果.
1:
起先制作了一个小图片做半透明的蒙板,蒙住角色脚下的那部分地面,用图片去测试.
角色一般都在画面中心,靠近屏幕320x240中间的位置,横坐标纵坐标分别偏移半个单元格子8像素后,影子可以套在角色脚下的地面.但若指定图片中心在该位置,那么当角色走到地图边缘的时候,就会离开屏幕中心位置,而影子却不会这样移动,自然和角色分离了.
如果在角色移动到画面中心以外的地方时设置分歧或者变量,将角色的地图坐标换算成屏幕位置,让影子始终跟随角色,那么得根据每个地图不同大小的边界,不停调整计算分歧开始的变数,另外人物移动的频率有快慢,影子速度却固定的,一个角色的影子就算不过来了,人一多更麻烦.所以偶放弃在这个思路上继续.
2:
之后制作了一个跟随事件,不停读取角色坐标,然后赋给影子的坐标变量,让影子位置移动到该坐标.
这次倒是可以让影子一直在角色下面跟着.然而由于影子跟随和人物跟随的要求不一样,测试显示的效果很搞笑----无论怎么设定变化影子图片的移动属性,(速度,类型等)影子总和个小狗一样跟着,一跳一跳.移动得很不平滑,甚至跑在角色前面.
后来明白过来了,角色移动时,地图坐标移动一个单位,实际每次移动了16个象素,中间换了3次角色行走的动画图形,角色一开始动脚,坐标已经发生变化了,影子位置变量瞬间计算了坐标,由于缺乏动画过程,直接跳了这16个象素,到达主角将去的位置.
而画面主角的图形显示很可能才换第1,2帧,尚未移动到下一格子,所以看起来影子总会一跳一跳的跑主角前面.
@如果把影子设定成某主角,跟随效果和前者没有区别.还是一跳一跳的.
3:
于是又想了个办法,把影子也做成动画分页,每0.1秒读取一次,可是角色有图形大小限制,画上下移动的影子可以在24X32内实现,左右往往就超出去了,分截为两段.
而且效果同样没有平滑
4:无建议偶在所有角色图脚下画个影子,不过这个工作量也不小,先得把角色图单元全部上移修正,给影子留位置不算,
影子和角色在一起一样不透明,那就和没影子一回事情,剪纸咯...
要达到预定效果,不知道该怎么处理......偶也要求不高,只要人物脚下有一个半透明椭圆就行.
[此贴子已经被作者于2005-1-5 6:21:04编辑过] |