知:你不知道的宋朝
小朋友,身为炎黄子孙,回首中华民族五千年的悠久历史,你是否会有一种想穿越回去的冲动呢?那么如果让你选择,你最想回到哪个朝代?春秋战国、三国两晋南北朝、五代十国这样战争连年的朝代你肯定不想去,因为随时有丢掉性命的危险。那么稍微好一点的元、明、清呢?它们的社会稳定一些,但文化压抑;相对幸福的应该是汉朝和唐朝,中华文明开放而自信的阶段,要不世界各地怎么会有那么多的“唐人街”呢?
然而,如果要在所有的朝代中选择一个回去,你一定要选宋朝。这是一个政治文明、商业发达的朝代,城市欣欣向荣,街上人头攒动,店铺生意兴隆,甚至出现了通宵营业的“夜市”!要知道在之前的朝代是实施“宵禁”,晚上可不能随便出门的!因此宋代老百姓的日子过得相当舒适;政府还设立了许多慈善机构,救济贫民,让贫民也能有基本的生活保障。——穿越回这样的朝代,你是不是会更有安全感一些呢?
那么,怎么才能用我们的编程作品来表现宋朝的景象呢?幸运的是,画家张择端为我们留下了传世名作《清明上河图》,在这幅长达五米的画卷里,画家用细腻无比的笔触忠实地记录了太平盛世的景象。你不妨从网上搜索一下它的原图来欣赏一下——小客栈、茶馆、酒肆、车行、算子摊、当铺、药店应有尽有,形形色色的人物栩栩如生!如果能读懂《清明上河图》,你也就能领略到大宋的盛世风华了!
思:程序设计
本节我们考虑设计一个展示并介绍清明上河图全貌的程序。要知道,清明上河图是一幅特别长的画卷,要在 Scratch 中直接展示这幅世作是不可能的,如果你直接导入,就会发现 Scratch 把它缩小成了看不见的一长条。因此,在使用清明上河图之前,我们需要将它裁切成960*720像素的分段,把每一段做成角色的不同造型。运行程序的时候,我们可以按键盘上的左、右方向键切换造型,再根据当前造型的编号,显示出当前场景中的景观点,点击这些景观点时让它们“说”出自己的介绍,或者播放场景的音效,就能让读者更好地解读这幅图中的风土人情了。
为了帮你节约时间,在本书的附件中提供了裁切好的《清明上河图》素材,一共16张图片,可以直接导入使用。
程序的角色设计如下:
行:编程实现
1、新建 Scratch 项目,上传合适的图片作为背景,然后用绘图编辑器绘制一个标题角色,完成后将它大小修改为1:
2、使用“上传角色”功能,将《清明上河图》素材中的第一张上传上去,然后把其余的15张素材作为造型添加到这个角色,并将角色命名为“清明上河图”:
3、为标题角色代码,程序开始时逐步放大显示,被点击后慢慢缩小,然后广播一条“开始”消息。这里为了增加气氛,我上传了一首《春江花月夜》作为背景音乐,在开始时播放:
4、新建一个“造型序号”变量,然后为“清明上河图”角色编写代码,这个角色在程序启动时隐藏,收到“开始”消息后,会用虚像特效把自己淡入,并默认设置为第8个造型(之所以设置为这个造型,是因为第8个造型中有大家最熟悉的汴水虹桥),然后广播“场景变化”消息:
5、再添加处理键盘的代码,让清明上河图能够在按下键盘的左、右方向键时,切换造型:
6、现在我们来给不同的场景添加热点,当造型切换时,这些热点要显示到正确的位置,所以需要手动将场景与角色匹配起来。你可以用方向键切换清明上河图角色到第一个场景,然后添加一个角色库中的“Ball”角色,把它大小设置为30,然后拖动到如图中所示的位置。这是一个”药店“热点,为了更好地让它与其它热点区分,你可以把角色名称也修改一下:
7、为这个“药店”热点角色添加代码,让“清明上河图”切换到场景1时会显示出来,在其它场景则会隐藏。点击时提示信息:
8、用同样的方法,在不同场景中的位置添加更多的“热点”。比如在第8个场景中,你可以添加一个“汴水虹桥”角色,它们的代码是非常相似的,只是一定要注意场景(也就是造型序号)和位置匹配,否则就会乱套。你可能会问,我对清明上河图不太了解,应该添加哪些热点我不知道啊?这好办,在百度中搜索“清明上河图图解”,你会看到许多详细的解释,挑选一些自己感兴趣的位置添加注解就行。
9、“大宋风华”作品已经完成,在开发这个作品的过程中,你是否对这个朝代有了更多的了解呢?
悟:总结与拓展
本节我们通过造型切换的方式,巧妙地模拟了“移步换景”的方法,展示了清明上河图的全貌。采用本文中的方法,既可以介绍《清明上河图》这样的画作,其实也可以为某个旅游景点制作导游图。你甚至可以录制音频解说或者现场音效(小贩的吆喝声、河水的流动声、牛马的铃铛……),这样就变成了更有趣、更生动的智能导游图!