首页
学习
活动
专区
工具
TVP
发布

Scratch编程之旅之一杆成名

其实到目前为止Scratch编程涉及到的所有知识我们都已经覆盖到了,Scratch就是这么简单,对吧。今天我们来一个更复杂的案例,我们需要完成击打网球的场景,虽然就一个击球的动作,但不要小看它,我会织入更多有价值的内容,不辜负大家的期待。

案例要求实现网球反复靠近运动员,运动员在合适的时机把球击走。球在靠近运动员时变大,远离时变小。第一步当然还是准备我们的角色,网球和运动员,我们直接到角色素材库中寻找。

我们选中运动员Batter,查看造型,发现有四个造型,为了增强表现力我们增加一个造型,选中造型C复制,将新造型调整为上图所示。

我们先完成Batter的代码,我们看过Batter的造型,五个造型实际上是击球过程的动作分解,我们要确定哪个造型是球杆碰到网球的动作,看到这里大家应该能明白我添加新造型的用意了。我们把造型C2中球杆最低点作为和网球的接触点,在这里网球将转向,远离运动员,经过测试这一点坐标为(-126,-51)。

运动员代码

上述代码看起来很长,实际上不难理解。最外层是无限循环,内部是一系列条件分支,当球的X坐标大于-120,运动员造型切换为a,我们当他己完成击球;当球的X坐标小于-120,运动员造型切换为b,开始准备;当球的X坐标小于-123,运动员造型切换为c,开始挥杆;当球的X坐标小于-125,运动员造型切换为c2,等待球过来;当球杆碰到球(我们用了侦测,当球杆的黄色碰到球的绿色),运动员造型切换为d。这就是运动员击球的全过程。

球的代码

我们再来完成球的代码,球的代码相对简单,没有那么多的Pose,反正不管怎么摆都一个样,哈哈。球无非左右来回运动,向左变大,向右就缩小。关键在于我们在那里做出改变,条件是什么。我选择的条件是球碰到黄色(球杆是黄色)代表被击中,值得一提的是运动员的裤子也是黄色的,这给我们带来了困难,我们必须排除这个干扰,不然运动员是用腿来击球了。我们在判断条件加了个X坐标小于-125(-126是击球点),这样是由碰到球杆球才会飞向位置(150,-51),其他任何不满足条件了我们都让他靠近运动员,实际上我们简化了球远离运动员的场景。

球的代码外层是一个无限循环,内嵌一个条件分支,每次运动必须要更新球的大小以及X坐标ball_x,这个变量我们需要提前声明,运动员需要这个变量做一些交互。

今天的分享就到这里,我们介绍了给角色增加造型,造型切换,角色交互(侦测和数据共享-变量),由于代码越来越多,不可能细化到每一步,如果大家练习中有困难,可以查看往期内容或者与我互动,希望大家每天都能进步。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190920A037LH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券