1、共 5 页 第 1 页郑州大学软件学院游戏开发课程试题2008-2009 学年第一学期(A 卷)分数 评卷人一、选 择 题(共 32 分,每题 2 分)16 题1.以下是一个创建记录仓库的示例,描述正确的是: ( C )private RecordStore rs = null;try rs = RecordStore.openRecordStore(“testRMS”,false); catch(Exception e) A.该示例创建记录仓库名为 testRMS,如果该记录仓库存在则不作任何处理B.该示例创建记录仓库名为 testRMS,如果该记录仓库存在则打开C.该示例创建记录仓库名为
2、testRMS,如果该记录仓库不存在则抛出异常D.该示例创建记录仓库名为 testRMS,如果该记录仓库不存在则不作任何处理2. 把 Alert 得 TimeOut 设置为( C )可以使延时无限A. 999 B. -1 C.FOREVER D.INFO3. 在 Command 之中共定义了八种命令型态,以下选项中列举了其中几个,其中优先级最高的是 :( A ) A.Command.BACK 优先级 2B.Command.ITEM 优先级 8C.Command.HELP 优先级 5D.Command.STOP 优先级 64. 在 List 列表类中定义了三种选择类型,其中代表单选模式的选项是
3、: ( A )A.exclusive B.Implicit C.multiple D.以上都不是5 哪个方法可以实现在屏幕上描绘一个实心的扇形 ( A )A. fillArc(.) B. drawArc(.) C. drawRect(.) D. fillRect(.)6. drawLine(20,20,40,40)绘制的直线,与水平之间的夹角的度数为( C )A.20 B.40 C.45 D.607. 以下是一个利用 Timer 类和 TimerTask 类实现线程的一个例子(其余代码和类的设计省略),判断下面代码能实现什么功能:( B )Timer timer = new Timer();t
4、imerTask tT = new timerTask() ; timer.schedule(tT, 100, 1000);A. 程序启动后等待 1 秒以后,每隔 100 毫秒运行一次 TimerTask 类的 run()方法B. 程序启动后等待 100 毫秒以后,每隔 1 秒运行一次 TimerTask 类的 run()方法C. 程序启动后等待 10 秒以后,每隔 1000 毫秒运行一次 TimerTask 类的 run()方法D. 程序启动后等待 1 秒以后,每隔 10 秒运行一次 TimerTask 类的 run()方法8. canvas 子类中必须要实现的方法是( A )A.paint
5、( ) B.startApp( ) C.keyPressed( ) D.run( )共 5 页 第 2 页9. Sprite 做图像分块时,分块序号从( B )开始A.-1 B.0 C.1 D.不一定10. 启动此 MIDET 运行时,正确的输出顺序(不考虑换行)是 ( C )public class TestMIDET extends MIDETpublic TestMIDET()System.out.println(“构造“);pritected void destroyApp(boolean arg0) throws ExceptionSystem.out.println(“销毁“);p
6、ritected void pauseApp()System.out.println(“暂停“);protected void startApp() throws ExceptionSystem.out.println(“启动“);A构造 销毁 暂停 启动B构造 暂停 启动 销毁C构造 启动D构造 启动 销毁11.在屏幕上绘制文字,使用一下代码,最终效果会是什么样的( D )g.drawString(“aaa“, 0, 0, Graphics.LEFT | Graphics.BOTTOM)A屏幕左上角写有”aaa”B程序抛出异常C屏幕右上角写有”aaa”D屏幕上没有任何文字12. TimerT
7、ask 子类中必须要实现的方法是( D )A.paint( ) B.startApp( ) C.keyPressed( ) D.run( )13.使用 TextBox 实现输入框时,决定使用的限制类型为只能输入数字类型的密码限制,下面编写正确的是: ( D ) A.SENSITIVE|PASSWORDB.UNEDITABLE|PASSWORDC.NUMERIC|PASSWORDD.以上都不对14. List 和 ChoiceGroup 类都实现了哪一个接口( B )A.Group B.Choice C.GroupChoice D.以上都不是15. 以下类中提供画布功能的是( C )A.Laye
8、r B.LayerManager C.GameCanvas D.TiledLayer共 5 页 第 3 页16. 在 MIDP 2.0 中下列用于刷新屏幕显示的方法是( C )A.GameCanvas( ) B.paint( ) C.flushGraphics( ) D.repaint( )分数 评卷人二、阅读下列内容,填补完整(共 20 分,每题 10 分)2 题1. 将以下j2me用户界面的体系结构补充完整ScreenForm List2.在MIDP 2.0中对于按键处理的一大特性就是支持多个按键同时按下的事件处理,请写出代码片段,使同时按下上键和右键,后台输出“OK”public voi
9、d input() int k=getKeyStates(); 分数 评卷人三、阅读下列内容,写出结果(共 48 分,每题 12 分)4 题1. 某同学在写飞机射击游戏的时候出现了一个问题,当我方飞机发射的子弹与敌方飞机相撞的时候并没有按照预期那样显示爆炸效果,而是直接消失,请分析一下出错的代码片段,说明如何改正(6分)并简单说明为什么出现这样的错误(6分)。已知:bullets为子弹数组,共8发子弹for (int i = 0; i 5) s_exp.setVisible(false);s_exp.nextFrame();2.在高级用户界面中,可以向Form容器中添加各种条目(Item),请
10、写出可以添加在Form中的条目(Item)名称。(12分)3.简述j2me,j2ee,j2se的区别。(12分)4. 以下代码是在MIDP 1.0中实现了图片的镜面翻转已知: srcImage为一张图片,srcW为图片宽,g为Graphicsfor (int i = 0; i 5) s_exp.setVisible(false);s_exp.nextFrame();放在循环的外面即可原因:因为子弹数组的遍历,使 for 循环中的内容循环执行,于是便连续调用 nextFrame方法,在 paint 到屏幕上之前就已经调用完毕了。2.列举条目(Item)DataField TextField Gauge ChoiceGroup StringItem3. 简述j2me,j2ee,j2se的区别。(12分)J2se java 的基础版本,适合制作桌面程序J2me java 微型版本,适合做移动设备的嵌入式开发J2ee java 企业级版本,适合做大型的企业项目系统4. 简述以下代码的实现效果(6 分),说明具体是如何实现的,即实现的基本思想是什么(6 分)实现效果:图片顺时针旋转 90 度基本思想:在屏幕上逐个绘制图片的像素点。