第一次给张江小朋友教Scratch课程之前,还在担心一些概念能不能向小朋友解释清楚,可上完课发现,我严重低估了小朋友的聪明程度,发现现在的孩子相比较自己8、9岁的时候,简直聪明太多倍了。

所以总结了半天,想着干脆来个有分量一点的项目,写一个Scratch版的大鱼吃小鱼游戏

游戏完成界面如上图,其中蓝色的小鱼受我们方向键的控制左右上下移动,食物链顺序是大鲨鱼 -> 主角(蓝色小鲨鱼)-> 其他小鱼。其他小鱼每隔10秒在屏幕随机位置生成,然后一直横向移动,碰到边界就反弹。大鲨鱼每30秒随机产生在屏幕左侧,游到右侧消失。

蓝色鲨鱼吃到小鱼时,小鱼消失,同时自己切换到一个张开嘴的动作上,然后切换回来,同时身体变大一点,碰到大鲨鱼则游戏结束。

在完成复杂项目的时候,最重要的是将事情分解成小目标,比如先完成小鱼的随机生成,再赋予其游动的逻辑,如法炮制大鲨鱼,然后再加上碰撞逻辑的处理。

首先看小鱼的生成

这里重复100次,每隔10秒就生成一条小鱼。而新生成的小鱼,拥有这样的逻辑。

这里面的代码,在1-4间取随机数,然后切换到相应造型,是因为切换不同样子的小鱼。

然后调整大小到50%,设置水平运动方式,并且设置如果碰到主角,则发送消息 hit.

同理大鲨鱼的逻辑也是类似。

只不过运动方式是从屏幕左侧开始移动,并且如果碰到主角,则发送“gameover”消息。

而主角的逻辑处理中就不一样了,首先要接收处理前面两种碰撞事件

上面定义了,碰到小鱼时怎样切换到对应的张开嘴的动作,和碰到大鲨鱼时结束游戏。

另外再加上主角的方向键按键处理。

这样,一个scratch版本的大鱼吃小鱼游戏就完成了,想想看确实挺简洁的,比flash脚本要简单太多了。

10分钟用scratch写一个大鱼吃小鱼的小游戏的更多相关文章

  1. python Tkinter 写一个弹球的小游戏

    #!usr/bin/python #-*- coding:utf-8 -*- from Tkinter import * import Tkinter import random import tim ...

  2. 用js写一个贪吃蛇小游戏

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Java 用java GUI写一个贪吃蛇小游戏

    目录 主要用到 swing 包下的一些类 上代码 游戏启动类 游戏数据类 游戏面板类 代码地址 主要用到 swing 包下的一些类 JFrame 窗口类 JPanel 面板类 KeyListener ...

  4. canvas写个简单的小游戏

    之前在HTML5 Canvas属性和方法汇总一文中,介绍过Canvas的各种属性以及方法的说明,并列举了自己写的一些Canvas demo,接下来开始写一个简单的小游戏吧,有多简单,这么说吧,代码不到 ...

  5. 利用 Python 写一个颜值测试小工具

    我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 很多人学习python,不知道从何学起.很多人学习p ...

  6. python小练习:使用循环和函数实现一个摇骰子小游戏。游戏规则如下:游戏开始,首先玩家选择Big or Small(押大小),选择完成后开始摇三个骰子,计算总值,11<=总值<=18为“大”,3<=总值<=10为“小”。然后告诉玩家猜对或者是猜错的结果。

    python小练习:使用循环和函数实现一个摇骰子小游戏.游戏规则如下:游戏开始,首先玩家选择Big or Small(押大小),选择完成后开始摇三个骰子,计算总值,11<=总值<=18为“ ...

  7. 【C语言探索之旅】 第一部分第八课:第一个C语言小游戏

    ​ 内容简介 1.课程大纲 2.第一部分第八课:第一个C语言小游戏 3.第一部分第九课预告: 函数 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写 ...

  8. 每个人都可以用C语言写的推箱子小游戏!今天你就可以写出属于自己项目~

    C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...

  9. 用原生javascript做的一个打地鼠的小游戏

    学习javascript也有一段时间了,一直以来分享的都是一些概念型的知识,今天有空做了一个打地鼠的小游戏,来跟大家分享一下,大家也可以下载来增加一些生活的乐趣,下面P出代码:首先是HTML部分代码: ...

随机推荐

  1. js无限轮播算法中干掉if判断

    无限轮播在网页应用中经常见到,这其中算法各有千秋,在学习算法分析一书中发现自增取余方法可以干掉一些不必要的if判断,具体代码如下: var arr= [1,2,3,4,5,6,7,8]; var in ...

  2. 微信小程序与云开发

    微信小程序基础概念 小程序云开发的三大基础能力:云数据库.云函数.云存储 Java.NodeJS.JavaScript.HTML5.CSS3.VueJs.ReactJs.前端工程化.前端架构 小程序开 ...

  3. 深度讨论i++问题

    例题1:下列程序的输出结果是多少? public class Test { static { int x = 5; } static int x, y; public static void main ...

  4. mysql substring()函数,字符串分割

    mysql> select * from test; +----+------------+-------+-----------+ | id | name | score | subject ...

  5. Java连接excel实现:通过姓名查找id和通过id查找姓名

    注意每个方法结束都要关闭workbook: 还有getIdbyname()方法中字符串flag与name的比较,一定要用equals()方法!!!: 剩下的不多解释,注释都在代码中: import j ...

  6. 微信小程序 Flex局部元素被挤压问题

    关于Flex布局不在此处赘述,需要了解的可以查阅官方文档:基本的布局方法——Flex布局 当使用Flex布局,想实现如下图1的效果时,代码编写如下: 图1: <!-- wxml文件 --> ...

  7. 什么是TCP粘包?怎么解决这个问题

    在socket网络编程中,都是端到端通信,由客户端端口+服务端端口+客户端IP+服务端IP+传输协议组成的五元组可以明确的标识一条连接.在TCP的socket编程中,发送端和接收端都有成对的socke ...

  8. 解决PHP7无法监听9000端口问题/502错误解决办法

    问题背景 昨晚帮配置nginx+php服务的时候,发生了一个奇怪的事情netstat -anp|grep 9000查看9000端口,一直没有监听,于是nginx无法通过fastcgi来代理php请求. ...

  9. 剑指offer:构建乘积数组

    题目描述: 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]. ...

  10. java.lang.Error: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V

    有时候出现这种怪异的问题,是由于多个版本的class存在. 比如说:某个java编译成class后,放到classes下面,然后lib目录下,也有这个class所在的jar包,这样就导致classpa ...