制作一款打飞机游戏15:动画优化
问题发现
在初步的系统测试中,我们发现中心精灵(Sprite)并没有按预期工作。具体来说,它似乎以一种不同的镜像方式呈现,这并非我们想要的效果。我们的目标是能够绘制精灵的一半,并在其旁边绘制另一半的镜像,以实现更复杂的动画效果。
镜像处理
为了解决这个问题,我们在精灵库中引入了第七个条目。当这个条目设置为1时,整个精灵会被翻转。然而,这并不是我们想要的效果。我们想要的是能够分别绘制精灵的左半部分和右半部分的镜像。
经过一些尝试,我们决定为这种效果设置一个专门的标记。当第七个条目设置为2时,系统会先绘制原始精灵,然后再绘制其镜像版本,并将其移动到右侧适当的位置。
myspr={{0,0,15,18,6,8},{14,0,16,18,7,8},{29,0,9,18,8,8,2,6},{14,0,16,18,7,8,1,7},{0,0,15,18,7,8,1,7},{7,5,2,2,-1,3,1},{5,5,3,2,0,3},{38,0,4,16,3,0,2}, -- 8 shot{42,0,3,16,2,0,2}, -- 9 shot{45,0,2,16,1,0,2}, --10 shot10{47,0,5,10,4,9,2}, --11 muzz{52,0,6,14,5,13,2}, --12 muzz{58,0,7,13,6,12,2}, --13 muzz{65,0,8,14,7,13,2}, --14 muzz{125,7,3,6,1,0}, --15 flame{122,0,3,7,1,0}, --16 flame{125,0,3,8,1,0} --17 flame}
细节调整
在实现过程中,我们发现了一些细节问题。例如,像素的中心并不是精灵的几何中心,而是一个2x2的矩形区域。这导致在镜像时,像素的位置会出现偏差。通过调整偏移量,我们最终解决了这个问题,使得镜像效果看起来更加自然。
系统功能增强
递归绘制
为了进一步增强系统的功能,我们决定允许通过单个精灵条目来绘制多个精灵。具体来说,我们在精灵库中增加了第八个条目,用于指定在绘制当前精灵后,下一个要绘制的精灵。这样,系统就可以递归地绘制一系列精灵,从而实现更复杂的动画效果。