最近都糊涂了我,从昨天晚上就一直认为周一上午就两节课,中午的时候倒在床上呼呼大睡,准备睡醒之后就去实验室搞搞明天图形学的上机,结果还是被殿下从睡梦中叫醒的,还以为是要去实验室的。洗了个脸,出门不经意间一瞟,竟然发现同班同学要去上课,大骇了一下,突然想到下午要上课的。随匆匆忙忙去上课,好在就迟到了一小小会。
今天晚上本来是想继续写代码的,诚然也写了一点,但是突然发现思绪了,那函数要写在哪个类里面都不知道了,想想还是再次系统地想一想吧。下面就是本次的一点小想法,以后大体上就会按照这个想法写下去了。
瓶子(class Bottle)的功能:
1. 首先是每一关,瓶子负责生成一个地图(根据关数来生成地图)这个当然是由构造函数来实现的啦Bottle(int level)。
2. 根据MVC原理(自己这样理解的,错了请指正),每当药片移动一下(一段固定的时间)就要重新绘制一片瓶子drawBottle(),格子的每一行每一列都遍历一边,根据各自的属性把格子画出来;还有就是把格子的边框画出来,包括记分牌以及医生的形象。上面提到了固定时间,至于这个固定时间貌似是由Timer什么的来控制的,但是现在还不知道,暂且放一下吧。
3. 要想画瓶子,瓶子是由空格(这个就不用额外画了)、虫子、药片组成那就要有两个函数drawMedicine(Color color[2],位置以及其他参数),drawBug(Color color,位置以及其他参数)
4. 还要判断一下当前关是不是要挂掉了,如果挂掉了的话,重新初始化本关,貌似不用否则了。die()至于什么时候调用还是一个问题,有待于进一步考虑。咦,好像多此一举,根本就不要用这么一个函数吗,直接一个布尔性的变量不就搞定了嘛,真是笨啊我,那时开始,后来还是聪明了一点的嘛。
药片(Class Medicine)的功能:
1. 首先要生成一个药片吧Medicine(),默认的是水平放置的,至于是什么颜色的那就随机了,怎么个随机法,老实说暂时我也不知道,等写到的时候再说。这个写的仅仅是个具有指导意义的那个什么什么东西的。
2. 要想移动药片首先要判断他是否可以移动,如果不可以的话那就算了。关键在于是否可以移动,那怎样判断呢?想想还是比较麻烦的,干脆还是分类讨论一下吧,canMoveRight(参数)、canMoveLeft(参数)、canMoveDown(还是参数)只要它还是活动药片就会一直往下移动,直到它变成非活动药片。至于什么时候变成非活动药片那就要判断一下了,即判断它的下面是不是空的(EMPTY)。
3. 如果药片可以移动药片会一直往下移动的要判断
4. 药片是会旋转的,并不是什么时候都可以旋转
用OpenGL编程要有点OpenGL的味道吧
1. 首先是要有个初始化的函数吧,init()至于初始化什么到时候再说。
2. 其次还是要有个什么reshape()函数的,对这个函数还不是很明白(学了没几天OpenGL 就来编玛丽医生,我的命好苦啊!(天外来音:命苦也要好好写))
3. display()这个函数是少不了了,负责来调用Bottle里面的drawBottle()函数。
4. keyboard()函数也是少不了啦,专门负责控制当前活动药片移动的方向。
5. 估计这个就是OpenGL里面最最重要的一个函数了,哈哈就是main函数,main函数还是比较简单的,对窗口进行初始化一下然后就是调用各个已经写好了的函数啦。这就是玛丽医生的结尾了,看起来好简单哦,但是我知道写起来肯定不会有这么简单,今天写的是这么多字,估计到时候就要写这么多行了。还没写过这么多行的一个大程序,好期待哦。加油王冠,加油everyone!
posted on 2008-10-27 21:34
正牌的天地之灵和他的徒儿们肖赫_王婷婷_王冠_郑燚_孙婷 阅读(121)
评论(0) 编辑 收藏 引用 所属分类:
risky