网上有许多小蝌蚪的游戏。其中有一游戏,小蝌蚪开始很小,其四处游动吃蚊子幼虫,吃一个蚊子幼虫其身体长大一点,长大到某尺寸变为青蛙。在这个例子中希望使用大背景,尺寸为960 * 720。如将其直接放入scratch的背景或对象中,都将其缩小为480 * 360,对象最大允许将图像放大1.5倍。本文提出一种方法使对象中的图像放大倍数大于1.5倍,例如两倍。用这个例子说明实现的步骤。
首先将一个960 * 720图像导入建立一个对象,将这个图象作为游戏背景。其造型图如下面图1,其尺寸为480 * 360。如在下图3中直接将该角色的“大小”修改为200,移出光标后,系统将其改为150,即最大允许将图像放大1.5倍。为避免失真,将其转换为矢量图,选中该图,从右下角开始向左上角拖动,将右下角拖到中心定位点(有+处),使其尺寸为240 * 180,如下面图2。在下图3中修改该角色的“大小”为200。再将图2中的图像右下角退后原处,使其尺寸重新变回480 * 360,这时角色图像实际尺寸为960 * 720。图像虽转换为矢量图,但放大倍数太大,图像可能出现锯齿。如是真正的矢量图,可以提高放大倍数,例如,图像缩小3倍,“大小”为300等等。另一方面这似乎是一漏洞,如系统修改,程序可能不能正常运行。比较正规方法是把960 * 720图像分为4块,每块都为480 * 360,建立4个角色。
游戏有3个角色:小蝌蚪、蚊子幼虫和背景角色,前两个角色每个都有两个造型,以实现动画。见下图。
小蝌蚪的所有脚本如下,还是比较容易读懂的。有几点要注意。首先小蝌蚪和背景初始位置必须是(0,0),两者才能协同工作,保证小蝌蚪移到边界,背景也同时移到边界。第二小蝌蚪和背景的移动方向相反。
角色背景所有脚本如下。需要注意的是,背景虽然是960*720,但其X坐标仍是-240到240,其Y坐标仍是-180到180,或者说背景和小蝌蚪所在坐标系的单位长度不同,前者是后者的2倍。当背景移到边界就不允许再移动了,例如向左移,背景中心X坐标不能小于-240,否则窗口右侧将出现空白。
蚊子幼虫的所有脚本如下。
本游戏还可以增加功能,如记分系统,吃一条蚊子幼虫加一分。还可增加虫子尺寸可变,蝌蚪去吃尺寸比其大的虫子,减一分。蝌蚪达到一定分数变为青蛙,分数减到某值,蝌蚪死亡等等。