当前位置: 网站首页>小程序开发>网站优化

邵东400电话申请开通【邵东企业网站建设】邵东微信公众号小程序开发运营价格、邵东微信公众号APP软件客户端设计运营、邵东网页页面设计公司费用、邵东公司网站制作方案流程改版维护大概需要多少钱

发表日期: 2021-04-08 09:12:38 浏览次数:151

邵东400电话申请开通【邵东企业网站建设】邵东微信公众号小程序开发运营价格、邵东微信公众号APP软件客户端设计运营、邵东网页页面设计公司费用、邵东公司网站制作方案流程改版维护大概需要多少钱

邵东,湖南省辖县级市,由邵阳市代管,别名昭阳,位于邵阳市东部,地势南北崛起,中部抬升,分向东西倾斜;总面积为1768.75平方千米,辖4乡18镇3街道;2018年常住人口91.06万人。

邵东主要矿藏有石膏、煤、铅、锌、锰、铁。320国道、S315省道、潭邵高速、衡邵高速、娄邵铁路、洛湛铁路和怀衡铁路穿境而过。名胜古迹有昭阳候城遗址、佘湖山云霖寺、九龙岭翰墨池、明清建筑荫家堂和山塘古屋、洪桥等。

2018年,邵东实现生产总值430.45亿元,按可比价计算比上年增长11%。其中:第一产业实现增加值427966万元,増长1.9%;第二产业实现增加值2053683万元,增长11.7%;第三产业实现增加值1822838万元,增长12.9%。 [1]  2019年,邵东实现生产总值605.6449亿元。 [2]  2021年1月29日,入选湖南省人民政府公布的2020年度真抓实干成效明显的地区名单。

饥饿而死

不同于前几章的应用,本游戏设定了结束环节:如果瓢虫吃不到足够的蚜虫,或者被青蛙吃掉,则游戏结束。此时我们希望瓢虫不再移动(设置Ladybug.Enabled为false),并将活瓢虫图片换成死瓢虫(将Ladybug.Picture设置为已上传的图片文件名)。GameOver过程的创建如图5-8所示。

{%}

图 5-8 定义GameOver过程

再按图5-9所示向UpdateLadybug(由Clock.Timer每10毫秒调用一次)添加红框内的代码:

  • 减少瓢虫的能量(energy = energy - 1);

  • 显示新的能量水平(call DisplayEnergy);

  • 如果energy值为0则游戏结束。

 测试:你可以在设备上测试这段代码,并验证能量水平随时间的减少,并最终导致瓢虫死亡。重启应用可以点击“Reset Connection->AI Companion”。

{%}

图 5-9 UpdateLadybug过程的第二个版本

添加蚜虫

下面来添加蚜虫,即让蚜虫在FieldCanvas上浮动。如果瓢虫撞上蚜虫(视同“吃”掉它),则瓢虫的能量水平升高,而蚜虫消失,且稍后会再次出现。(在用户看来,这完全是另一只蚜虫,但实际上是同一个ImageSprite组件。)

添加一个ImageSprite

添加蚜虫首先要回到组件设计器,创建另一个ImageSprite,要确保它不落在瓢虫上,命名为Aphid,其属性设置如下:

1. Picture属性:设置为已上传的蚜虫图像文件;

2. Interval属性:设置为10,即:像瓢虫一样,每10毫秒移动一次;

3. Speed属性:设置为2,因此蚜虫移动不会太快,以便让瓢虫能抓住它。

不必在意它的x、y属性(只要不是在瓢虫上)或title属性,这些可以在块编辑器中设置。

控制蚜虫

实验发现,蚜虫每隔50毫秒(Clock1跳动5次)改变一次方向的效果最好。可以通过创建第二个Clock组件,并设定其TimerInterval属性为50毫秒来实现这一效果。但是,我们希望能够尝试不同的技术:使用random fraction(随机分数)块,每次调用,它都将返回一个≥0但<1的随机数。创建UpdateAphid过程,并用Clock1.Timer来调用它,如图5-10所示。

{%}

图 5-10 添加UpdateAphid过程

块的作用

定时器每次跳动(每秒100次)都将调用UpdateLadybug及UpdateAphid过程。UpdateAphid过程首先生成一个介于0到1之间的随机数,例如0.15,如果该数<0.20(在20%的时间里),蚜虫将改变方向,改变的角度为0到360之间的随机数;如果该数≥0.20(在其余80%的时间里),蚜虫方向保持不变。

瓢虫吃掉蚜虫

下一步,当他们碰撞时,让瓢虫“吃掉”蚜虫。幸运的是,App Inventor提供了ImageSprite组件之间的碰撞检测。问题是:当瓢虫与蚜虫碰撞时,会发生哪些事情?在继续阅读之前,请你停下来想想这个问题。

为了处理瓢虫与蚜虫的碰撞,创建EatAphid过程,其具体步骤如下:

  • 瓢虫的能量水平上升50,来模拟享受美食;

  • 让蚜虫消失(设置其Visible属性为false);

  • 让蚜虫停止移动(设置其Enabled属性为false);

  • 让蚜虫移动到屏幕上任意位置(这与MoleMash中移动地鼠遵循了相同的编码方式)。

请对照图5-11检查您的块。如果你还能想到发生其他事情,比如音效,可以自行添加。

{%}

图 5-11 创建EatAphid过程

块的作用

每次调用EatAphid,变量energy增加50,缓解了瓢虫的饥饿。然后,蚜虫的Visible及Enabled属性都被设置为false,看上去像是消失了。最后,产生随机的x、y坐标,并调用Aphid.MoveTo,这样,蚜虫会在一个新位置再次出现(否则,它一出现便会被立即吃掉)。

瓢虫与蚜虫之间的碰撞检测

图5-12显示了在瓢虫与蚜虫之间做碰撞检测的代码。

{%}

图 5-12 检测并处理瓢虫与蚜虫之间的碰撞

块的作用

当瓢虫与另一个ImageSprite碰撞时,将调用Ladybug.CollidedWith,参数“other”指向任何与瓢虫发生相撞的ImageSprite。此时,只有蚜虫可以碰撞,但稍后会有青蛙加入进来。我们采用防御性编程方式,即在调用EatAphid之前,要确认碰撞的对象就是蚜虫;此外还要确认蚜虫可见,否则,蚜虫在被吃掉之后而重新出现之前,还会与瓢虫再次碰撞。如果缺少这项确认,隐形的蚜虫会被再次吃掉,并引起能量水平的再次增加,这会让用户感到费解。

 提示:防御性编程是一种避免错误的编程方式,当程序被修改时,仍然可以正常工作。在图5-12中,对other=Aphid的检查并不是绝对必要的,因为此时瓢虫可碰撞的唯一对象就是蚜虫,但检查可以防止后续程序的错误:当添加另一个ImageSprite(青蛙)时,如果忘记了修改Ladybug.CollidedWith,程序就会出错。通常来说,程序员修复bug的时间要多余写新代码的时间,所以多花一点时间尝试防御型编程是非常值得的。

蚜虫的回归

最终蚜虫要重新出现,按图5-13所示修改UpdateAphid:仅当蚜虫可见时,令其改变方向(改变一个不可见的蚜虫岂不是浪费时间。);若蚜虫不可见(如刚刚被吃掉),将有1/20(5%)的机会重新出现,或者说会被再吃掉。

{%}

图 5-13 修改UpdateAphid使隐形蚜虫起死回生


邵东400电话申请开通邵东企业网站建设邵东微信公众号小程序开发运营价格、邵东微信公众号APP软件客户端设计运营、邵东网页页面设计公司费用、邵东公司网站制作方案流程改版维护大概需要多少钱

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: https://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878