网上有很多超人游戏,例如:超人训练、超人锤练、超人磨练、超人考验、超人飞跃、超人冲刺等。一般用火柴人扮演超人,能跑、能跳、能攀峭壁,能力超强,游戏场面宏大,关卡一个比一个难。外孙女也喜欢超人游戏,也想自己编一个。但编写网上那样宏伟场面的游戏不太现实,我们只是学习编程,精力应放在用scratch实现超人的跑、跳、攀爬等各种动作脚本,因此仅设置两个关卡,来验证这些脚本。查看游戏源代码是不可能的,只能是自己玩或看别人玩游戏,想办法用scratch脚本实现看到的动作。这些游戏都是敏捷类游戏,老人可能玩不了,小孩玩坏眼晴。幸好在哔哩哔哩网站上有一个玩“超人训练”游戏的视频,显示了通关的各个动作,我们根据所看到动作完成自己的游戏。读者也可对照视频,查看我们的游戏是否实现了“超人训练”游戏的大部分动作。该链接如下:https://www.bilibili.com/video/av370211982/

【小游戏21】超人训练

游戏的两个关卡图见图1。两个关卡只有3种颜色,包括作为背景的白色以及红色和黑色。超人在黑色上行走、攀爬,超人如碰到红色,则重新开始。在关卡1超人首先通过平地、爬坡、越过深沟,跃上台阶,碰到按钮进入第2关。在第2关,首先试一试能否攀上带缺口的峭壁,并在缺口处停住。也可直接跳到沟底黑石,趴下钻过山洞,攀上右侧黑石,坐着滑下斜坡,跳下碰到苹果,就会给出文字提示:你赢了。

一共有5个角色见图2。原不准备有明显的关卡,超人移动,关卡也随着移动,这样关卡必须是角色。考虑到这样要增加关卡移动的脚本,会增加理解超人动作脚本的难度,因此改为通过触碰按钮进入第2关,这样关卡就不必是角色,可以是背景。因怕麻烦就未改。

为了实现超人角色动画,其共有7个造型见图3。前4个是行走的动画造型,第5个是钻山洞趴下的造型,第6个是从坡上滑下时坐着的造型,第7个是攀爬峭壁时的造型。在“超人训练”游戏中,后3个动作也有动画,即造型不止1个。本游戏省略了,但在脚本中考虑到这点,增加相应脚本并不困难。

游戏使用左移和右移键移动超人,空格键跳跃,下移键使超人坐下或趴下。由于实现动作脚本很多,有可能还是无条件死循环,因此不能把这些脚本放到事件函数中,否则超人的动作不能顺畅。本游戏“超人角色”主程序和左移、右移键事件函数见图4。这里左右键事件函数只是修改移动方向,而超人动作脚本主要在“前进”和“跳高”积木块中。

游戏要实现如下动作脚本:水平移动、上坡和下坡、跳起和落下、钻洞、攀爬等。首先看水平移动和上坡,查看“前进”脚本块,见图5,这个脚本块在主程序的无条件死循环中。水平移动包括左移和右移,由于使用“移动5步”脚本,已包含方向,所以共用同一脚本。在左或右移键被按下时(注意左右移键不能同时按下,左或右移键可单独长按不起),执行其后的脚本。首先必须知道,超人在黑色上边走,其并未碰到黑色,这是由初始化脚本保证的。首先移动5步,如碰到边界,退5步,原地不动。如未碰到黑色,说明这里是平地,换下一造型。如果水平移动碰到黑色,可能包括两种情况,可能是上坡或是碰到峭壁,向上5步后碰不到黑色,说明是上坡(坡度要小于45度,如要提高角度可加大向上步数),否则是碰到峭壁,超人不动,并设置峭壁标记,改为攀爬造型。下坡包括走下坡和坐着滑下坡,两者本质上还是走步,沿水平方向移动也用“前进”脚本块中脚本,下坡时碰到黑色是遇到峭壁,否则一定碰不到黑色,超人应下落,下落脚本在“跳高”脚本块中。

“跳高”脚本块和“按空格键”事件函数实现了攀爬和其它情况跳起和落下功能。攀爬状态下,按一次空格键,升高一定高度,连续按空格键(不能按下不起)连续升高,不按空格键后,升到一定高度开始下降。在关卡2中,一峭壁有缺口,超人在上升和下降经过缺口时,按左或右移键能使超人的手伸到缺口中且未碰到黑色,继续上升或下降将碰到缺口上壁或下壁,使超人停在缺口。在其它跳起和落下状态中,按空格键时,超人跳起一定高度,再一次按下空格键,再增加一定高度,在超人落地前,再按下空格键无用。
首先看“按空格键”事件函数,见图6,其最后的脚本“等待按下空格键不成立”是防止长按空格键不起。这里用到了3个变量,“跳多高”、“只允许跳2次”和“在峭壁吗”。如在峭壁,每按一次空格键,将变量“跳多高”设置为8(如何使超人跳起和落下见后面),变量“只允许跳2次”为1(保证离开攀爬状态时还能按空格键使变量“跳多高”再增加8)。如不在峭壁,可以分别按2次空格键,将变量“跳多高”最多变为16。再看“跳高”脚本块,见图6,只要变量“跳多高”大于0,就使超人y坐标增加5,变量“跳多高”减1,直到变量“跳多高”为0或向上碰到黑色。而变量“跳多高”等于0,则y坐标减少5,直到碰到黑色,超人落地。如在峭壁状态,超人落地还要改攀爬造型为跑步造型。

最后看一看钻洞和坐着滑下坡功能,这两者本质上还是走步,只是造型不同。修改造型在“按下移键事件”函数中,见图7,当已按下左移键或右移键,说明是坐着滑下坡,改为造型6,否则改为造型5趴着钻洞。然后等待下移键抬起后,恢复造型1,变为行走状态。最后一句脚本将Y坐标增加13,是因为坐和趴的造型定位点低,而行走造型的定位点高,变换后行走造型将出现在坐和趴的造型位置,使行走超人腿进入黑色,因此必须抬高些。

还有一些未介绍的超人脚本见见图8。这些都比较好理解。“变换造型”脚本块中只有行走有造型转换脚本,形成动画。其它动作只有固定造型,如需要动画,按行走脚本修改即可。还有一点需要说明,无论是行走、攀爬或下滑,超人都未碰到黑色,只是距离黑色很近,看起来在黑色上边行走。在初始化脚本和控制动作脚本都保证了这一点。但在某一地点,某一造型未碰到黑色,但从这种造型转换为另一种造型时,由于两者造型的定位点、大小和形状不同,可能使后一造型碰到了黑色,发生错误。这就需要调整造型或者修改脚本,这是一件比较麻烦的事情。为了避免此类错误,在设计阶段描绘造型时有些要点必须记住,首先造型位置决定于造型“定位点”坐标,因此会发生造型转换的所有造型,以“定位点”为基点向上、向下、向左和向右的对应长度尽量等长,特别是那些检测是否碰到黑色的脚本后,位置未变立刻转换造型的更应如此。例如行走,要不断检测下边是否碰到黑色(是否着地),因此超人的4个行走造型以“定位点”为基点沿Y轴向下部分都应等长。又如攀爬,首先按空格键,使超人在距离峭壁近处向上跳起,此时造型为跳起造型(本游戏为行走造型),再按左或右移键,使超人撞向峭壁,撞到峭壁后,变为攀爬造型,使用空格键使超人能向上攀爬,这里两个被转换的超人造型的手从“定位点”沿X方向长度,跳起造型手长要大于或等于攀爬造型手长,以保证攀爬造型手碰不到黑色。本游戏不敢保证没有这类错误,这也是很多动画未实现的原因。

两个关卡以及按钮和苹果的脚本如下,见图9。按钮是为了转换关卡,碰到苹果表示赢了。

水平有限,难免有错,欢迎指正。
源程序下载地址:
https://download.csdn.net/download/geng_zhaoying/12404453

用scratch实现网上“超人训练”游戏相关推荐

  1. matlab制作打地鼠游戏,scratch编程制作打地鼠的游戏教程

    scratch编程制作打地鼠的游戏教程Sk1少儿编程网-https://www.pxcodes.com Sk1少儿编程网-https://www.pxcodes.com 首先,新建背景和角色,从背景库 ...

  2. 优秀课程案例:使用Scratch制作一个射击类游戏-360度旋转射击!

    点击上面微信号关注我关注我哟每天坚持推送文章,争取做到日更,喜欢的可以设置星标,并分享点赞我们的文章,非常感谢大家的支持,您的点击的在看就是我们的动力! 今天我们来分享一个射击类游戏的案例.同时大家持 ...

  3. 怎么锻炼孩子的想象力创造力_家长培养孩子想象力创造力的训练游戏

    想象力起源于细胞的无规则运动,后不断进化和生存.繁殖有密切关系.想象力是活物与死物的根本区别.在人类中主要为右脑,随着人类大脑进化愈加形象化,主要分布于大脑最外层,属于最高级思维.下面就是小编给大家带 ...

  4. Scratch开发的双人格斗游戏,包含游戏源码,图片素材分享!

    链接: https://pan.baidu.com/s/1yx3mB2mR61aWAl_12Js27w 提取码: b4if 复制这段内容后打开百度网盘手机App,操作更方便哦 2018干货合集: ▷S ...

  5. # 使用Scratch 3.0制作弹球游戏(三)——游戏关卡及难度设计

    目录 使用Scratch 3.0制作弹球游戏(三)--游戏关卡及难度设计 1.第一关 1.1第一关游戏角色需求 1.2第一关游戏玩法设计 1.3角色设计--球 1.4角色设计--接球平台 1.5背景设 ...

  6. 如何用scratch实现打色子的游戏

    如何用scratch实现打色子的游戏      一.学习目标: 1.题目要求,见下图 Devin和Dee在派对上玩掷色子的游戏 (背景为party).Devin的色子是白色的,Dee的色子是蓝色的.按 ...

  7. Scratch《跳一跳》游戏源码.sb

    Scratch<跳一跳>游戏源码.sb下载地址: https://download.csdn.net/download/u011152234/86264226

  8. Scratch《侠盗飞车》游戏源码.sb文件

    Scratch<侠盗飞车>游戏源码.sb文件下载地址: https://download.csdn.net/download/u011152234/86264205

  9. ▷Scratch课堂丨【经典游戏系列】打地鼠1.3 - 地鼠太郎之毁灭之锤

    授权转载 | Geekid 原文作者 | Mr.炎 原文标题 | 游戏丨打地鼠1.3-地鼠太郎之毁灭之锤 标签:难度中级:适合年龄段:8+: Scratch介绍 Scratch融合卡通.动画.音效等多 ...

  10. 【Scratch】从零开始的卡牌游戏 #0 起点

    #1已更新: [Scratch]从零开始的卡牌游戏 #1 准备工作 最近,在我用Java开发完一款下载器后, 我又不知道该写点什么了...... 就在我万愁莫展之际 突然,我想到: 要不然我自己开发一 ...

最新文章

  1. vectorbool不是容器
  2. Octavia health-manager 与 amphora 故障修复的实现与分析
  3. 使用坚果云同步SVN服务器数据
  4. JavaSE各阶段练习题----Map
  5. PSP 战神 奥林匹斯之链(God of War: Chains of Olympus) 试玩版 下载地址
  6. 离线安装python环境
  7. 人生的许多不经意-致51CTO
  8. 深度优先遍历和广度优先遍历_图与深度优先搜索和广度优先搜索
  9. 12分钟即达背后的智能支撑
  10. vue.js devtools安装
  11. Ant Design Vue下载本地文件(其他框架也适用)
  12. Windows安装redis教程
  13. 最新《java互联网架构师全套课程》附带代码资料(完整)
  14. 使用全局优化方法识别中文事件因果关系
  15. mysql删库命令是啥_MySQL删除数据库的命令是什么?
  16. openwrt mt7620a使能uartf
  17. 观光公交(codevs 1139)题解
  18. python执行命令不连接mumu_Appium连接mumu安卓模拟器(真机)自动化测试
  19. 鸿蒙手机卸载内置应用 adb连接
  20. 马云给员工的超牛演讲

热门文章

  1. Cadence Allegro如何设置差分对
  2. MyBatis-Plus 如何自动生成代码
  3. 如今被小乙两弩箭结 水浒传
  4. 小世界网络——利用Networkx分析武汉公交网络
  5. C++中的仿函数(functors)和仿函数适配器(adapter function)
  6. 苹果笔记本风扇测试软件,实用的mac电脑风扇控制软件 Macs Fan Control Pro
  7. 永中word页码怎么从第二页开始_如何在Word的任意一页插入页码?原来还有这么简单的方法...
  8. python把中文转英文_用python把图片素材中文转英文
  9. 自定义设置HTTP响应头
  10. 引爆点---绝对内行