弹球游戏3:认识图片精灵

还记得上节课的作业吗?关于精灵组件的第一个紫色代码块!你一定感到困惑,为什么不直接利用精灵组件的默认反弹功能来处理边界碰撞事件,却要费力不讨好地自己写代码,老师一定是喜欢自找麻烦!

在下图中,两个深红色方框中的代码块的确是等效的,右上角的那个叫做App Inventor(以下简称AI2)的内置过程,是由AI2的开发工程师编写的,我们普通用户看不到其中的细节。

上图中下面的那些代码块也可以封装成过程,如下图所示,这个过程叫做用户自定义过程;两种过程的作用是相同的。

既然两种过程等效,为什么要自己写代码呢?这个问题依旧保留,稍后你就明白了。

这节课我们的目标是在应用中部署更多的精灵组件,如果将AI2的开发环境切换到英文版,可以看到对应于精灵的那个位置写着ImageSprite,而与球对应的组件叫做Ball。我们来看一下两种精灵组件的差别。

不过,在编程视图中,两类精灵组件的事件及内置过程是完全相同的,只是设置与读取属性的代码略有差异。下面我们来添加全部的精灵组件,并在设计视图中设置它们的属性。

听到了吗?如果球碰到墙壁,就Game Over!我们的目标不是让小球碰壁,而是让它“碰车”!AI2中让精灵反弹的内置过程只能处理精灵与边界之间的碰撞,而无法处理精灵与精灵之间的碰撞!

补充说明:

当小球与画布的3及-3号边界发生碰撞时,反射角与入射角的关系为   φ = 180 - θ  ,其中θ为入射角,φ为反射角。

作业:

在设计视图中设置四个小滑车的x、y坐标,让它们精确地贴近画布边缘,并位于四个边界的中点。

报告:

截至2016年11月30日零时,累积订阅人数为1958位,昨日净增18位,感谢大家的坚持!

(0)

相关推荐

  • 2020年度丨不可或缺的智能音箱,哪十个是年度最佳?

    一年一度的雷科技年度榜单评选已经拉开大幕!正如此前的预告所言,我们将会在12月21日起推出不少于20个大榜单,覆盖更多的行业和产品,让160万雷科技粉丝.600万全平台粉丝一共参与到我们的年度评选当中 ...

  • 精尽Spring MVC源码分析 - 一个请求的旅行过程

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...

  • 来晚的天猫精灵,一下子做了40多个教育硬件

    已购<培训行业这一年·2020>的读者可在多知网订阅号回复"新书惊喜",参与读书话题讨论. 又一家互联网大厂进入智能教育硬件赛道. 来源|多知网 文|冯玮 图片来源|P ...

  • 电视、降噪耳机、词典笔,小度的边界在哪里?

    编辑丨钟立磊 熟悉小度的朋友们都知道,小度产品向来能给我们许多新奇体验. 从语音出发的智能交互让生活方便了很多:智能音箱帮助智能家居和语音体验快速普及,智能屏则提供了轻松的可视化操作,让人怎么都不觉得 ...

  • 弹球游戏1:认识球精灵

    从这节课开始,我们将利用画布和精灵组件,实现一个完整的游戏--弹球游戏.游戏包括下列功能: 角色控制:防止小球碰倒边界: 统计得分:每成功反弹小球一次得1分: 时间限制:每次游戏时长为1分钟: 游戏结 ...

  • 梦幻西游:一组承载着满满游戏回忆的图片,老玩家只恨时光匆匆

    在回合制网游里面,梦幻西游可以说是国内最古老的回合制网游之一,同时也是目前国内第一大网游,开服至今十几年之久依然火爆,游戏在线人数几百万.梦幻西游陪伴着我们8090后一代人的成长,当年一放学就直奔吧网 ...

  • 弹球游戏2:四处碰壁

    本节课的目标是处理球与边界之间的碰撞--当球碰到边界后反弹.假设小球与墙壁之间发生的是完全弹性碰撞,那么碰撞前后,小球速度的大小保持不变,方向的改变遵循"入射角=反射角"的规律. ...

  • 弹球游戏4:飞檐走壁

    在开始编写程序之前,我们需要了解两件事: 小车在画布上的精确定位: 小车在画布上运动时,位置与速度的关系. 编写小车初始化过程...... 下面编写画布的划屏事件处理程序,当手指在手机屏幕上滑动时,小 ...

  • 弹球游戏5:运动控制

    在测试状态下,划屏动作对小车的控制缺乏连续性,效果不够理想,不过没有关系,我们有更酷的运动控制方式,那就是手机特有的方向传感器. 测试.调整代码.再测试.再调整,直到获得满意的效果. 理解概念: 1. ...

  • 弹球游戏6:碰撞检测

    如果可以的话,我愿意先检查各位的作业--用翻转角和倾斜角来控制小车的移动.这个作业非常重要,可以帮助我们理解方向传感器的功能.另外,关于这几个角度的值,是很难记忆的,例如左翻转时,翻转角究竟是正还是负 ...

  • 弹球游戏7:统计得分

    如何理解全局变量的全局性呢?如果我们把程序的运行描述为一个事件,那么两个最基本的要素就是时间和空间(其实我们描述任何一件事情都离不开这两个要素).所谓全局性,就是时间及空间上的全覆盖.对于App In ...

  • 弹球游戏8: 游戏结束

    计时器.数字滑动条.对话框,在我所开发的大部分游戏中,都会用到这三个组件.计时器与数字滑动条配合使用,显示游戏的剩余时间,这一过程贯穿整个游戏:对话框组件通常用来处理游戏结束环节,为玩家提供有用的消息 ...

  • 弹球游戏9:历史纪录

    应用中可以使用本地数据库组件,将数据保存到个人的手机中,例如弹球游戏中的最高得分.为了将已经保存的数据提取出来,必须为这段数据取一个名字,即,数据的标记,凭借这个标记来提取已保存的数据. 游戏的测试环 ...