1.案例3.安安爱画画
目标
深入理解逻辑设计可视化编程
• 掌握利用绘图动画组件实现绘图功能
• 掌握计时器组件、多屏切换App的开发
• 了解事件与行为,掌握事件驱动的编程,学会处理手机触屏、划屏、
计时等基本事件组件设计
展示与分析
绘图动画 组件组
画布组件介绍
画布组件属性
球控件属性
Layout布局控件组
表格布局控件属性
标签控件属性
实现小球随机运动
增加行为
实现4个小球的定时随机运动
– 如何控制小球出现的位置?
– 如何让改变小球位置的行为规律性地定时出现?
画布的坐标系
绘画
移动小球位置
计时器组件简介
小球运动行为
实现画图功能
绘画
实现划线功能
实现画圆功能
实现画文字功能
实现清屏和保存功能
实现画布清屏功能
实现画布保存功能
实现画布保存功能
给出保存成功提示
实现触屏和拖动功能
实现画布被触碰功能
实现在画布上直接拖屏作画功能
选择颜色
多个屏幕App
合成颜色
多屏幕切换
屏幕调用和返回
屏幕调用和返回
完善屏幕初始化
实操
2.案例4.安安抓蝴蝶
目标
安安抓蝴蝶 素材准备
组件设计
所有组件的说明及属性设置(1)
所有组件的说明及属性设置(2)
安安抓蝴蝶 游戏规则
让蝴蝶动起来
图像精灵组件
在画布上移动的蝴蝶
改变蝴蝶的飞行姿态
让蝴蝶连续飞
“方向”的取值与移动方向
判断是否抓住蝴蝶
判断是否抓住蝴蝶
处理失败
判断是否进入失败界面
失败后停止响应触摸屏幕实践
处理成功
游戏成功
计算游戏得分
计算游戏得分
计算游戏得分
游戏成功屏幕
所有组件的说明及属性设置
成功时屏幕调用
屏幕调用传值
增加蝴蝶品种
蝴蝶列表
让不同品种蝴蝶出现
运行出错!
修复Bug
重新开始
实操
3.案例5.安安历险记
目标
素材准备
组件设计
所有组件的说明及属性设置(1)
所有组件的说明及属性设置(2
行为逻辑设计
通过倾斜手机指挥安安逃跑
方向传感器组件
方向传感器组件
方向传感器组件
安安移动的实现
让老虎自动去追安安
老虎的运动
老虎移动的实现
老虎移动的实现 – 简单版
检测老虎是否抓到安安
碰撞检测
让老虎跑起来更生动
问题
自己做动画效果
自己做动画效果
新问题
再改进
划出小球及反弹
球形精灵
划出小球
小球反弹
判断小球是否打中了安安
引入“过程”,进行重构
解决代码冗余
过程
定义过程和重构
宏定义
重构 状态更新
判断小球是否打中了老虎
重新开始
过程
过程类型
为什么要用过程
过程的参数
4.案例6.安安爱弹琴
目标
素材准备
组件设计
所有组件的说明及属性设置(1)
所有组件的说明及属性设置(2)
所有组件的说明及属性设置(3)
行为逻辑设计
实现弹琴的发音
增加弹琴时的视觉效果
利用过程改进代码
定义“弹奏”过程
避免资源文件找不到
增加录音功能
带录音功能的弹奏
碰撞检测
实现播放录音
播放按钮被点击
播放录音 过程
播放 过程
调试运行
实现正常的播放录音
播放录音流程图
播放录音
重置
递归
递推法
递归法
理解递归执行过程
递归法