加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

高中教学案例(二):捉虫游戏(1)

(2010-07-16 21:06:54)
标签:

信息技术

教学案例

控件数组

高中新课程

游戏

教育

分类: 案例

     捉虫游戏(1)是示范课“控件数组及其应用” 中范例之一。

一、功能描述

http://s15/middle/5d59843007459b28caebe&690

 (运行界面)

(1)    单击按钮“开始捉”,10-15个虫,每隔1/10秒,随机出现在64个按钮上,上次出现的一批虫自动消失。

(2)    鼠标单击,击中某个有虫的按钮,虫消失,得分增加1

二、提出问题

    实现以上功能,需要解决以下问题:

(1)    界面设计

(2)    如何10-15个虫的图片随机出现在按钮上?

(a)如何将虫的图片放在按钮上

(b)如何随机产生10-15个位置

(3)    每隔1/10秒,如何清除所有虫?

(4)    当鼠标击中虫时,如何让虫消失,同时记分框中增加1

三、解决问题(算法分析)

   1)界面设计的关键:摆放按钮数组Command1(0)-Command1(63)

2)解决第二个问题需要:

  • Command1(0)-Command1(63)的属性Style改为1。因为按钮的属性Picture可以改变背景图片,但前提条件是属性Style1-Graphical
  • 通常人们给对象的Picture加载图片会用 LoadPicture,但它是运行后加载,受图片所在路径的制约。所以,我一般不让学生用,逼学生想其它办法,通常他们会想到,先摆放一个Image1,将虫(图片)事先存放在Image1中,然后,做Command1(X).Picture=Image1.Picture
  •   10-15个按钮上随机出现Image1.Picture,实际上就是随机产生10-150-63之间的数,把这些数作为按钮数组中的下标,再给这虚无缥缈元素的Picture赋值。即
             For i=1 to 10+Fix(Rnd*6)

      X=Fix(Rnd*64)

      Command1(X).Picture=Image1.Picture

   Next i

(3)    还有一个需要解决的问题是怎么去掉按钮上的图片,这个问题通常学生也要费些脑筋才能想到:

再摆放一个Image2,就让它空着,下面的算法就可以达到清空的目的

    For i=1 to 63

      Command1(i).Picture=Image2.Picture

   Next i

    好了,不说了。击中后,计数是比较容易的。     

四、界面设计

http://s1/middle/5d59843048b80fcf5b770&690


窗体上的对象有:

       1)控制数组Command1(0),Command1(1),...,Command1(63),一组按钮

       2开始捉按钮是:Command2

       3Timer1用来控制把虫子随机放到按钮上,Interval=100

       4)Image1是虫子图片,Image2是一个空图像框

五、代码编写

    为了保持代码的格式,截了图放这儿。



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有