AppInventor学习笔记(五)——瓢虫快跑应用学习

摘要:
将图像向导的移动速度设置为10,并引入瓢虫的图像。2.添加逻辑编程思想如下:首先,添加一个始终被调用的函数(时钟),因此我们应该编写一个连续绘制瓢虫的函数。首先,设置生命价值的全局变量。它用于连续绘制瓢虫。2、 蚜虫简介:1。将图片向导添加到组件2。添加逻辑以更新蚜虫的逻辑函数,并使用随机函数。
一、瓢虫引入

1:加入控件:

image

       先引入方框中含有的控件,里面有两个画布,一个图像精灵,一个重力感应,一个时钟(设为10Ms)。顺手改名。设置图像精灵的移动speed为10,并且引入瓢虫的图像

2、加入逻辑

     编程思路为,先加入一个一直调用的函数(时钟),即这个是程序中不断运行的代码。只要到10ms就调用一次。

image

     所以我们应该编写一个不断对瓢虫进行绘图的函数进行引入

image

      首先设置一个生命值的全局变量。global energy

      然后编写一个程序为updateLadyBug,用于不断对瓢虫进行绘图操作。逻辑为:随着时间推移,能量不断减1,并且用DisplayEnergy进行生命值的绘图。生命值的绘图意思是:首先绘制底色为白色,然后再以global energy的值为像素值来绘制红色的血条。

     之后,如果生命值为0,则,进入gameover状态,在这个状态,使得LadayBug的各种使能全部关闭,并且替换图片为死掉的图片,关闭重力感应。

     在生命值不为0的时候,设置瓢虫移动的方向为重力感应的方向,设置速度为倾斜程度正相关。

二、蚜虫的引入

1、组件加入

image

        再次加入一个图片精灵,

2、加入逻辑

image

     加入更新蚜虫的逻辑功能

image

     使用一个随机功能,在这里,设置有%20的可能性使得蚜虫变换移动的方向(据说比较合理),然后在预设一个死掉之后复活的函数,也就是说在拨一个随机数,有%80*%5的可能性复活,而在活着的时候并没有影响。

image

     如何完成吃掉蚜虫的功能,则是使用碰撞检测功能,编写一个新的函数为eatAphid,如果吃掉后,能量加50,然后设蚜虫属性为false,之后再设定下一次出现的地点。

image

      使用封装好的函数进行设计。

如果检测到与蚜虫进行碰撞且蚜虫可见,则调用吃掉蚜虫函数。

三、青蛙的引入

1、加入组件

image

      加入一个图片精灵

2、加入逻辑

image

      加入一个刷新青蛙行动的函数

image

     有10%的可能性进行移动方向的改变(即大概100ms改变一次)

image

     加入碰撞检测(青蛙和瓢虫的),这样子的话,完成游戏的总体框架的搭建。

四、重新开始的加入

1、组件加入

image

2、逻辑加入

image

       就是进行所有的还原即可。

五、加入计分板

image

image

image

2、加入逻辑

image

image

        加入逻辑如果活着则加0.1,并改变label上的数值。

image

       在重新开始中进行还原,最后即可完成制作。

免责声明:文章转载自《AppInventor学习笔记(五)——瓢虫快跑应用学习》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇安装folly库以及folly的ConcurrentHashMap的简单使用python爬虫(二十) select方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

算法中的渐进记号

前言 在学习计算机算法时,知道插入排序的时间复杂度是O(n2),那O记号到底是什么意思呢?本文主要介绍几个算法分析时用到的记号。 大O记号 定义:O(g(n)) = { f(n) : 存在正常数c和n0 ,使对所有的n >= n0,都有 0 <= f(n) <= cg(n) }。大O记号给出函数的渐进上界。 , 则可以表示为 f(n) =...

cocos2D-X从的源代码的分析cocos2D-X学习OpenGL(1)----cocos2D-X渲染架构

        个人原创。欢迎转载,转载请注明原文地址http://blog.csdn.net/bill_man         从本篇文章開始,将分析cocos2D-X 3.0源码,第一部分是从cocos2D-X学习OpenGL,也就是分析cocos2D-X 3.0的渲染代码,本篇首先介绍cocos2D-X 3.0的渲染结构。使用的是3.0正式版。...

WebView2简单试用(二)—— 基本操作

前文中简单的介绍了下如何使用WebView2控件,本文这里介绍下它的常用操作: 页面跳转: 页面跳转可以通过webview的接口来实现:     webView.Source = new Uri("http://www.baidu.com");    webView.NavigateToString("<h1>hello world</h...

MySQL 替换和截取指定位置字符串

  1.情景展示   返回服务器的身份证号需要进行加密:只保留前4位和后3位,中间使用*代替,如何实现?  2.场景分析   需要用到的函数有:IFNULL(),IF(),LENGTH(),REPLACE(),SUBSTR(),这里重点介绍一下REPLACE()和SUBSTR()。   REPLACE(str,from_str,to_str)   介绍:...

爬取js加密和混淆的例子

作业讲解:js逆向 概述 url:https://nyloner.cn/proxy 需求:将这个网页中的代理ip和端口号进行爬取 难点: 动态变化的请求参数 js加密 需要js逆向 分析 爬取的数据是动态加载 并且我们进行了抓包工具的全局搜索,没有查找到结果 意味着:爬取的数据从服务端请求到的是加密的密文数据 页面每10s刷新一次,刷新后...

Linux 进程创建二(execve和wait)

三:execve系统调用 int execve(const char *filename, char *const argv[],char *const envp[]); fork创建了一个新的进程,产生一个新的PID execve用被执行的程序完全替换了调用进程的映像。 execve启动一个新程序,替换原有进程,所以被执行进程的PID不会改变。...