scratch游戏“小蝌蚪成长”用大背景(分割法)

网上有许多小蝌蚪的游戏。其中有一游戏,小蝌蚪开始很小,其四处游动吃蚊子幼虫,吃一个蚊子幼虫其身体长大一点,长大到某尺寸变为青蛙。本例实现其部分功能,使用大背景,尺寸为960 * 720,将其分割为4个480 * 360的小图像,用这4个图像建立4个角色,它们协同工作实现大背景,使小蝌蚪能游到960 * 720大图像的任何位置。用这个例子说明实现大背景的步骤。
游戏有6个角色:小蝌蚪、蚊子幼虫和4个背景角色,每个背景角色大小都是480 * 360,名称分别是:左上图、右上图、左下图和右下图,分别代表960 * 720的大图像的4块小图像。前两个角色每个都有两个造型,以实现动画。见下图。
在这里插入图片描述
小蝌蚪的所有脚本如下图。“重复执行”脚本中头两句是让小蝌蚪跟随鼠标移动,因此小蝌蚪所在位置坐标就是鼠标的坐标。这里首先要找到小蝌蚪移动和背景角色移动的关系。由于4个背景角色位置有固定关系,因此,先找小蝌蚪移动(即鼠标移动)和左上图移动的关系。这里涉及到3个角色:显示窗口、小蝌蚪和左上图角色。它们共用一个坐标系。显示窗口中心坐标为(0,0),它不会移动。小蝌蚪只能在显示窗口中移动。背景角色移动方向和小蝌蚪移动方向相反,使小蝌蚪能游到960 * 720大图像的任何位置。当小蝌蚪位置在显示窗口中心坐标为(0,0)时,960 * 720大图像中心也应在(0,0),此时左上图中心坐标为(-240,180)。当小蝌蚪向显示窗口左侧移动,左上图向显示窗口右侧移动,当小蝌蚪移到显示窗口的左边界(X坐标-240),应该碰到大图像的左边界,左上图也向右移动240,因此其此时X坐标为0。同理小蝌蚪从坐标(0,0)移到移到显示窗口的右边界(X坐标240),左上图向左移动240,此时X坐标为-480。参看下图中的注释,能更清楚的看到在这3个位置上,小蝌蚪X坐标(即鼠标X坐标)和左上图的X坐标的关系。由此得出两者关系为:左上图X坐标=-240-鼠标X坐标。参见注释中两者3点的Y坐标,可推出左上图和鼠标Y坐标之间关系为:左上图Y坐标=180-鼠标Y坐标。后边4个判断脚本,是限制背景在一定范围内移动。例如第1个判断脚本,当左上角图形中心X坐标=0后,就不能继续右移,否则显示窗口左侧将出现一竖条空白。由于从960 * 720大图像中裁剪出4个480 * 360小图像不精确,实际上本例在小蝌蚪移到左右两侧时还会在两侧出现一竖条空白。解决的方法是使脚本中数字480变小。
在这里插入图片描述
左上图、右上图、左下图和右下图脚本如下。所有“当绿旗被单击”脚本是使自己移到初始位置。右列是它们接收到移动事件的响应脚本。它们根据变量“左上图X”和“左上图Y”移动。无论这4个图移到任何位置,它们之间有固定关系,例如,左上图和右上图的中心的X坐标相差480,Y坐标相同。这里的数值不是480和360,也是由于从960 * 720大图像中裁剪出4个480 * 360小图像不精确,使4个小图像两两之间出现缝隙,解决的办法也是使脚本中数字480或360减小。有一点需要说明,裁剪不精确,图像横竖线可能会错开。因此从960 * 720大图像中精确裁剪出4个480 * 360小图像是很重要的。
在这里插入图片描述
蚊子幼虫的所有脚本如下。
在这里插入图片描述
本游戏还可以增加功能,如记分系统,吃一条蚊子幼虫加一分。还可使虫子尺寸随机改变,蝌蚪去吃尺寸比其大的虫子,减一分。蝌蚪达到一定分数变为青蛙,分数减到某值,蝌蚪死亡等等。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值