提高农村初中生英语写作能力的策略研究
中期报告
天台泳溪学校---何阳娇
一 . 课题的提出
1.农村初中生英语写作能力的现状
英语写作在中考中起了举足轻重的作用,同时英语写作也是综和能力的的一项表现. 而在中考英语考试中,大家最担心的就是英语写作. 很大一部分同学,特别是农村初中生,由于英语底子薄和英语兴趣等问题,英语写作问题尤为突出.很多同学根本无从下手。出现了像知道短语不会写句子,或者是知道句子不知道如何组成一篇文章等一系列问题。 甚至有一定数量的同学英语作文交白卷,这很大程度上影响了中考的英语成绩. 所以特别征对农村初中生,英语写作能力的培养就显得尤为重要。.
2.农村英语写作教学的现状和困难
农村初中英语教师习惯于“填鸭式”教学,即学生所学内容是以教材为载体,由教师通过确定的方式传授给学生.学生无需进行任何独立的发现,而只需接受和消化教师所教的或者教材所呈现的认识,因此学生常处于被动的状态。目前,在初中学生的听、说、读、写四项基本能力中,写作仍是弱项。然而,长期以来,如何有效地进行英语写作一直困扰着广大农村英语教师。听、说、读易操作,而写作课往往因表演性不强而被冷落。一些教师认为,写作是不能教也没法教的一项技能,学生只要掌握了一定的词汇和语法知识,写作技能的形成就是顺理成章的事情。即使有些写作训练也是教师提要求,出题目,给材料,让学生在规定的时间里完成一篇作文,之后教师批改的传统写作模式,学生穷于应付,难以表达其想象力,创造力和发散思维等能力也得不到有效地发展。很少有专门的写作课,甚至在学生的英语写作上的指导也是相当少的,因此在写作教学上空白比较大.怎样让写作教学渗透于平常的教学任务,切实发展学生的书面表达能力呢?基于以上两个问题,提出了本课题。
二.课题的前期研究概括
1、阅读与背诵优美文章
在语文教学中需要学生大量的去阅读,背诵,摘抄优美的句子,文章。熟背精 1
彩段落,这是语言学习的必由之路。同样地,英语写作也需要大量的阅读与背诵。俗话说:“读书破万卷。下笔如有神”。可见,阅读与写作的关系密不可分。在过去的这段时间里,我一直督促学生养成每天都阅读的好习惯.让学生多阅读一些课外的英文报刊类,甚至于把教参中的优美文章要求学生去背,从而使学生形成语感,积累一些信息,增加写作素材。我还督促学生注意日常语言的积累,增加自身的词汇量。这也可通过不同的方式实现这一点。对于不同的句子都有不同的表达,不同的语言运用会反映出学生不同的语言水平和思维方式。众所周知,一个较为复杂的句子结构通常容易获取高分,这就要求学生在日常的学习中要注意语言的积累。在记单词和短语的时候,不要孤立的记,要结合同义词来记,在翻译一个句子时尽可能多地变换结构来翻译。读是写的基础,读的多了,自然也就会写."熟读唐诗三百首,不会做诗也会吟"讲的也就是这个道理.除了这些,我还让同学们收集一些优美的英语语篇,语段,甚至句子.每个星期给他们布置作业,收集1篇语篇或语段,10个句子.他们可以从书上找,也可以买一些初中英语作文选.如果有不知道的单词可以查字典.通过查字典可以帮助学生扩大词汇量.然后从中选一些语篇,语段和句子,把他们帖在教室后面,让学生欣赏,阅读。通过这个阶段的培养和训练,我发现班级里很大一部分同学的词汇不再是那么匮乏。在他们的作文中,开始有一些复杂句和比较优美的句子。
2.进行有效的写作训练。
(1) 、 造句
句子是一篇作文的基础和前提.写作对于农村初中生生来说是比较困难的任务,但是我们可以在句型结构练习和词汇掌握的基础上进行一定的写作训练。由于造句的难度较低我想这样可以打消学生的畏惧心理,训练由浅入深,逐步培养兴趣与能力。在此阶段,夯实基础,词汇听写、默写、连词成句、语法填空、完成句子、英汉互译、句子改错等任务学生都能轻松完成。这是写作的起始阶段,我非常有耐心,只要学生能写出完整的句子,正确运用标点符号,正确表达自己的思想,哪怕一句话,我也要予以鼓励,让学生产生兴趣,良好的开端是成功的一半,以后的写作学生才不会产生畏难情绪。
(2)、仿写
2
新教材加强了写作尤其是仿写的练习,几乎每单元Section B的3b都是在3a课文学习和听力材料2a、2b基础上进行模仿性写作练习。由于模仿性学习写作因为有模式可以套用,所以比较容易。我充分利用这一点,在去年上新课的时候,每个单元我都让学生模仿写作。但这类写作容易使学生创造性的发挥受到局限,难以使每个学生最大限度地把自己所掌握的词汇、语法、句型等运用于作文中去,写出有个人特色的作文来。不过,此项练习有效地巩固所学的语言点、知识点以及词汇。
(3)、改写
利用学生学习的语言材料稍加变换进行改写练习,增加了仿写的灵活性。改写包括改变人物的姓名、国籍、性别、数目以及故事发生的时间、地点、环境、情节等,最简单的改写是改变文中的人称、时态和语态。
(4)、缩写及扩写
让学生把一篇指定的文章从结构和内容上加以缩略及扩展,适当地加以精简及添加,加以合理想象,练习写作的灵活性。
(5)、灵活应用性的写作
仿写有一定的局限性,因此需要用灵活多样性的写作加以补充和提高。灵活多样性的写作带有一定的新颖性和综合性。这类写作包括常见文体如应用文、记叙文、说明文和议论文。这些文体各具特点,我在根据不同文体的特点和要求的基础上指导学生进行写作。教学应用文写作包括英文书信、日记、简历、便条、广告、海报等,教师应引导学生注意各种文体所特有的格式。教学记叙文时则要提醒学生注意人物、时间、地点、事件、原因和结果六大要素。这个阶段的写作应着眼于作文的篇章结构的完整、写作思路的顺畅、行文的流利,使文章言之有物,而不应过多地关注拼写、语法是否正确。这类练习应放到学生有了一定的写作基础之后才能进行,长期练习,学生就会养成用英语思考和用英语表达的习惯。
3.从科学批改方面提高农村初中学生的英语写作能力。
写作对于学生来说是难点,同时也是老师比较头疼的问题。写作批改量大,只写不改,教师得不到反馈信息,学生不知道错在哪里。但如果教师埋头于批改学生作文中的语法和词汇等细节性错误,工作量巨大,也让老师对于学生的写作 3
产生胆怯的情绪。如何把老师从繁重的批改劳动中解脱出来呢?因此科学批改,减轻教师的负担,提高学生的写作水平是必不可少的。
(1)、全改、抽改、轮改相结合
学生刚开始写作时,教师一般需要全批全改,还可以采取面批的方式。随着学生的写作能力不断加强,教师抽改或轮改,既可以及时发现个体错误,也能得到全面的反馈信息。
(2)、面改.
在英语写作批改上,面改的效果还是值的肯定.通过面批可以及时的把学生作文上的错误点指出来.也可以针对这篇作文,对学生进行写作方法的及时的指导,所以在这个阶段,我经常把同学叫到办公室,当面批改他们的作文。但是面改在大范围的学生之间实施起来还是有一定的局限性.
(3)、自改
学生写完之后不是完事大吉,而是反思和修正自己的习作,根据语法、表
达习惯、写作要点几方面自己进行反思。在写作教学中,修改环节常常被学生忽视,而考试中最重要的是自我修改,应加强自我纠错的练习。所以一定要学生养成自我修改的习惯。
(4)、互改
学生的水平达到一定的程度之后,教师可以放手让他们
互评。学生互相批改既能借鉴彼此的长处,同时又多了一次发现问题和纠正问题的机会。同学之间相互探讨和评估,提出富有建设性的反馈意见,优化初稿的内容和结构。这样既可以培养学生的写作能力,又能够减轻教师批改作业的负担。 这一阶段,通过这些科学批改方法的有效结合,我发现学生写作的错误点明显减少了,特别是面改,当面给他们把错误指出来了,同学们也很少会再犯同样的错误。而且通过自改和互改,同学逐渐养成了在英语写作中自我修改的习惯。
4.从合理的讲评方法提高农村初中学生的英语写作能力
批改讲究方法,但批改之后的及时讲评也是至关重要的。学生要知其所以然,错在哪里,怎样改正,因此教师要注意合理的讲评方法。
(1)、对学生习作中语言错误的处理
订正英语写作上语言的错误在培养英语写作能力上也是极其重要的。订 4
正错误也是学习的机会。在这一阶段,我尽量把这种机会留给学生,尽量避免越俎代庖,直接给出答案。而且我还针对学生的错误给予相应的提示语,甚至标出错误,提示学生自我纠正语言错误。
(2)、对不符合英语表达习惯、短语搭配不当、习惯用语误用等较严重的错误,在班上讲评,而且要举例说明,讲清、讲透,最后再让学生练习和巩固。如:Very thank you , I’m go to school ,I with my father等错误表达要彻底纠正,一定让他们形成正确的语言表达习惯,从基础做起。
(3)、多用激励性评语
学生尤其是农村的学生一般都很在意教师对作业的点评。教师的点评体现了教师的工作态度、竞业程度以及对学生的关爱程度。教师的激励性评语可以使学生在学习过程中不断地体验进步与成功,建立自信。教师地激励性评语是他们热爱写作,学习进步的动力。所以在这个阶段,不管学生的写作水平怎么样,我都会给他们一些激励性评语。对不同层次的学生,都加以鼓励。
(4)、及时表扬好作品
榜样激励是学生热爱写作的又一动力。当堂朗诵优秀作文,把优秀习作(书写流畅)张贴在学习园地里,为学生提供切实可模仿的榜样。
通过这一阶段有关合理讲评方法的训练,我发现学生们在常用短语和常用表达方法的错误明显减少。而且学生们对英语写作也更加有信心。
四、研究中存在的问题和碰到的困难
1、学生对英语写作的兴趣不够。在很多同学看来,英语写作只是为了完成任务, 同学们还没做到自己想写作文。
2、学生的写作基础还是很薄弱.班级里存在这一大部分同学,对英语写作还是无从先手。
3、学生的知识面窄。图书馆中关于英美文化,英美习俗的书籍很少,所以学生很少有机会接触到西方文化知识。再加上我们学校地处山区,相对较落后,很多学生都很少有机会去外面,更不用说碰到老外,和他们交流。
4、学生们听英语的机会较少。学生当中有录音机和收音机的很少,学校的广播也没有专门的有关英语的播放,象英语歌曲,简单的英语新闻等。
五、今后的研究计划.
5
1、增强学生兴趣练习,提高生活中语言运用能力
语言是人与人交流的工具,读写相辅相成,有一个较高的写作水平可促进学生语言的读说能力,可促使学生更好的运用这门语言。学生在课外与老师,或同学之间,相互交谈的过程中尽可能的用英语。同时要坚持用英语写日记,增强英语思维能力。日记得天天记,无形中增加了学生接触英语的机会。刚开始可少写几句,以后逐渐增加字数。这要让学生做到持之以恒。
2、从基础做起,由浅入深,由易到难
一篇文章是由单词,词汇,句子等构成的。所以说要写好一篇文章必然要把最基础的知识掌握好,才能够熟练的运用。英语写作能力的培养必须由基础做起,基础打好了才能逐层递增。因此应做到以下几个层次,首先是要求学生牢记单词,词组等,并用固定句型造句,反复使用新学的字词来练习句式表达,这是英语写作的基石。其次是听写练习,听写课文上的句子,有助于仿照例句,编出自己的语句。再次是默写练习,要求学生在学习一篇文章之后运用自己的语言或照搬文中的句子重新表达这篇文章的意思,这样有助于学生整体把握段落篇章,从而转化为学生自己的能力。以上这些措施必须长期坚持逐步提高学生运用所学知识的能力。
3、尽可能多的提供学生了解西方文化的机会。可以从图书馆借,或者自己买一些有关西方文化的书籍。让学生多了解西方文化,以达到在英语写作上,尽可能多的用英语思维方式。
4、听和写相结合,以听促写.
让学生养成每天听英语的好习惯。听是写的基础,听的多了自然也就会写了。《 新概念英语》的作者在介绍该书使用说明中强调:“不写没有读过的语言,不读没有说过的语言,不说没有听过的语言。”很明显,通过听的渠道获得语言信息及语言感受,在外语学习中是基础的基础。为提高学生听力,使其获取更多的信息,从而为表达打下基础。
总之,英文写作是一个长期而又复杂的训练过程,要求教师从学生的实际水平出发,有目的、有计划、有反馈地进行,由易到难,循序渐进。在学生交互、师生交互的写作过程中,激发学生的写作欲望,培养学生的写作兴趣,训练学生的写作技巧,培养学生的写作能力,这样就能取得较好的写作教学效果。 6
7
8
第二篇:中期报告范例
哈尔滨工业大学
国家示范性软件学院
本科毕业设计(论文)中期报告 题目:2D游戏引擎编辑器模块的设计与实现
专 业 软件工程
学 生 姓 名 ×××
学 号 051110114
联 系 方 式 159xxxxxxxx
年 级 2005级1班
实 习 基 地 基地指导教师 ×××
联 系 方 式 校内指导教师 ×××
联 系 方 式 0631-5687626
中 检 日 期 2009.3.8
哈尔滨工业大学软件学院
目 录
1. 毕业设计(论文)内容概述 ............................................................................ 1
1.1 项目来源及开发目的和意义 ...................................................................... 1
1.2总体设计内容及方案 ................................................................................... 1
1.3 本人所承担任务(模块)说明 .................................................................. 3
1.4 开发环境和开发工具 .................................................................................. 6
1.4.1 开发语言 ............................................................................................... 6
1.4.2 开发工具 ............................................................................................... 6
1.4.3 开发环境 ............................................................................................... 7
1.5 项目原定进度安排 ...................................................................................... 7
2. 中期完成情况说明 ............................................................................................ 8
2.1 预定计划的执行情况 .................................................................................. 8
2.2 中期工作说明及成果汇报 .......................................................................... 8
2.3 存在的困难与问题 .................................................................................... 13
2.4 如期完成预定任务的可能性分析 ............................................................ 13
2.5 后期工作安排 ............................................................................................ 14
附件:本科毕业设计(论文)中期检查意见表 .................................................... 15
1. 毕业设计(论文)内容概述
1.1 项目来源及开发目的和意义
本项目来源于北京涂鸦公司正在开发的实际项目。
曾经有一段时期,游戏开发程序员只是关心如何尽量多的开发出新的游戏并把它们推销给玩家。那时候的游戏大多简单粗糙,游戏逻辑很类似,并且每款游戏游戏的平均开发周期也要达到8到10个月以上,导致这样的原因一方面是由于技术的原因,另一方面则是因为几乎每一款游戏的代码都要从头开始编写,造成了大量的重复劳动。逐渐的一些有经验的游戏开发者摸索出了一条可重复利用代码开发游戏的方法,这样既节省了开发游戏的时间和费用,又降低了技术难度。于是就慢慢的产生了游戏引擎。人们对于游戏引擎的概念也逐步的深入理解。实际上游戏引擎也是一个程序,这个理解也就是对“封装性”的理解。
随着游戏软件的发展,越来越多的人开始想自己编写游戏,自己设计游戏的剧情和逻辑,但是由于技术难度和时间的问题,很多人都放弃了原有的想法。对于游戏公司来说,越早推出一款新类型的游戏,人们就会先接受哪款游戏,这对于游戏公司的生存和发展是很关键的。
这对于一个具有渲染系统,物理系统,网络系统,对底层api封装良好,并且可以通过解释简单的脚本语言就能实现一个简单的游戏的游戏引擎需求是十分关键的。
通过这样一个游戏引擎只要是会简单脚本语言(例如lua,python)的人,都可以编写自己的游戏,实现自己的梦想。对于游戏公司来说可以不必高薪聘请很多高级C++程序员,而仅需懂脚本语言的人,来编写游戏逻辑即可实现一款游戏。
1.2总体设计内容及方案
本项目主要任务是开发一套易于使用的跨平台的2D游戏引擎。引擎提供一套灵活的API接口给用户使用,并对这些API进行一次脚本绑定的封装,给用户最方便的接口。
- 1 -
本引擎有3种使用方式:
1. 纯脚本方式,仅仅通过编写脚本调用引擎的接口来完成游戏的制作。
适合于快速开发并且游戏仅通过基本接口即可完成制作的。
2. C++方式,直接调用引擎接口而不使用脚本的封装。适合于习惯于使
用C++开发游戏或者是对于性能要求苛刻的用户。
3. 混合方式(推荐的方式),由于引擎支持扩展,对于引擎没有的功能用
户可以使用C++自己编写扩展插件,并把一些关键算法实现在插件里(这要比使用脚本实现算法效率高很多),然后在脚本中使用引擎的接口和自己的插件的接口来完成游戏的制作。灵活且不损失性能。
引擎的总体设计:
1. 引擎的核心模块(core),本模块提供对引擎编写的最底层的支持,主要
包括:
1) 引擎实现了自己的RTTI (Run-Time Type Identification运行时类型
识别) ,从而实现了对引擎里所有继承自Object基类的类的对象的序列化的支持。通过序列化实现把某个对象存盘再从硬盘读入形成一个实例或者是通过网络发送的支持。这是引擎其他模块的基础。
2) 从底层实现对智能指针的支持。基类Object实现了对引用计数的
支持,从而从根本上实现了对智能指针的友好的支持。
3) 对文件系统的支持。在底层就对对文件系统的访问进行了管理,
使得访问zip包像访问OS的文件系统一样方便,并通过设置文件的搜索路径使得访问文件可以使用和操作系统无关的路径进行访问, 通过设置写目录对文件的写权限进行了有效的控制。
4) 其他的一些有效的工具类,包括数学库把一些常用的数学运算进
行了包装提供给其他模块使用、字符串处理类把一些常用的转换操作格式化操作等进行了封装、线程库实现了平台无关的线程支持、动态库类实现了多个平台的动态库加载的支持,另外还有计时器类、异常处理、日志处理等。
2. 其他模块建立在core模块基础之上,包括graphics(图形模块)抽象
出了一些图形相关的接口,并以插件的方式针对DirectX和OpenGL两套底层图形库进行了不同的实现。还有input模块和sound模块分别实现了对输入设备和音频的支持,输入设备包括键盘、鼠标、手柄等。音频包括3D声效,背景音乐的播放等。这些模块由同组的王磊
- 2 -
来实现。
3. 对脚本的绑定的实现方案。引擎使用swig(Simplified Wrapper and
Interface Generator)轻松实现由C/C++接口到脚本的绑定。
4. 编辑器(editor模块),编辑器是本游戏引擎的一个集成开发环境,包
括脚本的编写、调试,游戏场景的制作、游戏资源文件的制作等。这是引擎中相对复杂的一个模块。
1.3 本人所承担任务(模块)说明
本人在整个项目中的具体任务是上面提到的core模块和editor模块。
1. core模块:
1) RTTI的实现:实现了一个ClassInfo类,里面存放了这个类相关的
各种信息如:类的名称、大小、这个类的创建函数的指针(用于动态创建一个对象)、基类的ClassInfo指针(用于分析继承关系)等。每一个继承自Object类的子类都有一个ClassInfo的静态成员来记录这个类的信息,通常使用宏来实现。
2) 序列化的实现:使用设计模式的Visitor模式,Object类实现了一
个accept函数接受Visitor参数,Visitor进入类的内部后对遍历到的类的成员进行操作,如遇到基本类型则直接按照其类型进行操作,如遇到继承自Object的子类的成员变量则进行递归操作。根据Visitor的类型的不同其功能也不同,引擎提供三种Visitor:
a) XmlVisitor以Xml格式存取一个对象,特点:可读性高。
b) BinVisitor以二进制的方式存取一个对象,特点:效率高,无
需由字符串解析,且占用的空间少。可用于网络传输。
c) AttributeVisitor 用于记录对象的属性,把运行时对象的所有属
性记录下来,可以绑定到编辑器进行编辑。
3) 智能指针的支持:Object类继承自ReferenceCounted,记录当前的
引用计数并实现了加减操作并负责对引用计数降为0是对象的释放。Pointer类就是我们的智能指针类,它是一个模板类,在构造、拷贝、赋值运算、销毁时确保正确地对它所控制的Object类的指针进行增减引用计数操作。
4) 文件系统:使用了开源库PhysFS并进行了简单的接口包装。
- 3 -
2. editor模块:
使用开源的界面库wxWidgets2.8.9进行界面的开发,选择的理由:
1) 开源、跨平台,符合我们引擎的设计初衷。
2) 它不仅仅是一套界面库,还提供了一些其他的平台无关的类库。
3) 它使用操作系统的原生控件。
4) 众多的contrib库和辅助开发程序,并且有Code::Blocks等IDE
也
是使用它来开发的。
编辑器的总体设计:
图1-1 编辑器组成示意图
编辑器主要功能使用动态库的方式实现,并对外提供一套API接口,主程序通过调用此动态库来完成相应的功能,并且主程序提供编辑器的主要的UI框架与用户交互。为什么不将两者合在一起实现呢?这是因为我们的编辑器要支持扩展,支持扩展的代价就是要对外开放接口,而开发接口的最好的方
- 4 -
法就是动态库。这样第三方扩展插件便可以轻松地使用编辑器的接口来完成它的功能,但它也必须遵从一定的规范才能被编辑器的主程序识别并顺利地加载,这个规范就是:插件一定要实现“插件接口”,编辑器内留出了多种支持的插件类型的接口,如:调试器插件用于对脚本语言的调试、向导插件用于新建某一类型的文件、文件类型处理插件用于对特定类型的文件进行编辑(材质编辑、粒子编辑、UI编辑都属于这种类型)
。
编辑过程中与用户的交互是无法避免的,如何把在编辑过程中用户触发的事件在编辑器和插件之间以及插件和插件之间传递需要由一个系统来处理——事件系统:
图1-2 编辑器事件系统示意图
用户进行编辑操作时会触发编辑器内部的事件,事件进入编辑器的事件处理系统,处理系统根据其类型查找相应的EventSinks,然后依次调用注册的回调函数将消息分派下去处理。这样一些插件就可以通过注册某些关心的事件的回调函数来响应用户操作。
- 5 -
要实现相同的功能还有另一种方式:为每一个类型的事件写一个虚函数,由插件继承并实现此接口,利用C++的多态特性来实现。相比较而言,我们的处理方式更加灵活,并且性能更好(因为多层次的继承C++的虚函数表会造成性能问题)。
调试器的实现:调试有2种实现方式:单进程使用线程调试和多进程使用进程间通信的方式。
方式一:容易编码,但需要保证调试和运行能够“友好”地相处,我们的编辑器不满足这种条件,编辑器和游戏是两个不同的进程,并且编辑器本身也使用游戏的一些库,着非常容易造成资源的混乱。
方式二:必须进行进程间的通信,进程间的通信又主要有三种方式:管道、共享内存、套接字。其中管道的方式不合适,因为被调试的游戏端行为难以控制其基本输入流和输出流很可能被游戏的输入输出扰乱。而共享内存方式虽然效率高但难以编码并且受限于必须是同一主机的进程。最终选用了套接字的方式,通过loop back来实现,不但编码方式符合习惯并且只要实现了单机的调试,只需要改变连接的主机名称即可实现远程调试甚至实现跨平台的调试。
1.4 开发环境和开发工具
1.4.1 开发语言
考虑到性能和代码的可维护性,引擎底层使用C++语言开发,上层提供给用户的开发接口可以是C++或者其他脚本语言如:Lua、Python等。
1.4.2 开发工具
(1)Windows下主要采用 Microsoft Visual Studio .NET 2003开发, 同时支持2005、2008。
(2)Linux下采用Code::Blocks开发,版本8.02。
- 6 -
1.4.3 开发环境
图形库:在Windows平台下可以使用 DirectX做为引擎的渲染插件,其它平台均使用OpenGL作为渲染插件。
界面库:使用跨平台的wxWidgets做为引擎编辑器的开发库。
字体库:FreeType,一套免费的高品质的跨平台的字体引擎。
图片编码解码库:DevIL、FreeImage,用于存取各种格式的图片文件。 文件系统:PhysFS,使用它做为IO的接口,可控制文件的访问,更安全,统一。
如果项目在开发过程中需要用到其它开源框架或中间件时,将会有条件的使用它们,在此不作赘述。
1.5 项目原定进度安排
表1-1 原定进度安排
- 7 -
2. 中期完成情况说明
2.1 预定计划的执行情况
设计(论文)工作正在按开题报告预定的内容及进度安排进行,原计划的工作内容中的物理模块打算由内部支持改为外部扩展支持,原因是由于Box2D的使用有局限性,并不是对所有类型游戏都通用的,它只针对“横版”式的游戏有效,所以改为可选插件。
工作进度:core 编码基本完成,editor框架搭建完成,脚本的编辑功能完成,调试功能尚未完成(仍需2周左右时间)。即:总估计要延后2周左右。
2.2 中期工作说明及成果汇报
编辑器已经完成的功能: 脚本代码的语法高亮显示、代码折叠、Undo/Redo功能、代码文件的编码自动检测等功能。如下图:右侧区域为代码编辑区域。该部分的实现使用了一个开源的代码编辑控件Scintilla(/)的wxWidgets版本。
- 8 -
图2-1 编辑器截图
下图为编辑器的浏览器的工程页,相关的配置数据是由一个Project类来管理,并由上面提到的XmlVisitor遍历后存储到project.xml文件中以便下次打开编辑器直接从文件反向序列化成Project对象。
- 9 -
图2-2 编辑器工程管理页
下图为文件系统浏览器页,使用了core模块里的文件系统,把操作系统的真实目录映射到了引擎的逻辑目录,用户可以使用引擎的路径来访问这些文件,而无需关心操作系统是否区别大小写以及斜杠的方向等细节问题。
双击某种类型的文件则会查找编辑器里注册的MIMEHandler插件,把文件按照插件的方式打开编辑,如:双击UI文件会打开UI编辑的界面,双击材质文件会打开材质的编辑界面。
- 10 -
图2-2 编辑器文件系统页
对象属性编辑页,直接将一个继承自Object类的对象与一个控件关联,可以直接编辑修改其成员变量的值,而无需再编写任何UI代码。这里用到了core模块的Attribute Visitor。
- 11 -
图2-3 编辑器属性编辑页
插件扩展,下图中的工具栏以及菜单栏上的“Lua调试”菜单都是通过“调试器插件”扩展的,该插件继承自编辑器内部的抽象类EditorDebuggerPlugin并实现了虚函数来实现扩展的。并且插件可以注册自己关心的事件的回调函数来完成对用户操作的响应,这依赖于编辑器内部的事件系统。其他的材质编辑功能、UI编辑功能也将采用插件的方式实现。
- 12 -
图2-4 Lua调试插件
2.3 存在的困难与问题
(1)工程规模较大,编码时间不充裕
解决办法:核心部分编码已经基本完成,调试功能也接近尾声,尽力争取时间完成粒子编辑、 材质编辑、UI编辑这三大模块,细节问题延后处理。
(2)对于某些平台不熟悉
解决办法:先做Windows和Linux平台的实现,对于不熟悉的Mac和PSP等平台推后做或暂时不做。
2.4 如期完成预定任务的可能性分析
主要功能可以按期完成,引擎制作中的技术难题已经基本解决,(主要有:插件方式支持扩展、引擎API导出到脚本使用、脚本语言的调试
- 13 -
等),剩下的只是编码工作。
2.5 后期工作安排
表2-1 后期工作安排
- 14 -
附件:本科毕业设计(论文)中期检查意见表
- 15 -