《Java游戏程序设计教程》实验任务书.docx

上传人:叶*** 文档编号:50256940 上传时间:2022-10-14 格式:DOCX 页数:20 大小:25.07KB
返回 下载 相关 举报
《Java游戏程序设计教程》实验任务书.docx_第1页
第1页 / 共20页
《Java游戏程序设计教程》实验任务书.docx_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《《Java游戏程序设计教程》实验任务书.docx》由会员分享,可在线阅读,更多相关《《Java游戏程序设计教程》实验任务书.docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Java 游戏程序设计教程实验任务书游戏程序设计教程实验任务书实验一实验一 弹跳小球游戏设计弹跳小球游戏设计一 实验目的通过设计和制作弹跳小球游戏来了解游戏程序的基本结构,理解游戏循环和双缓冲机制的基本原理,并掌握游戏运行框架的设计方法。二 实验内容学习和了解游戏基本框架的设计方法(参考教材第 3 章内容及相关代码),在此基础上设计弹跳小球游戏,实现小球在程序窗口边界反弹的效果。要求实现如下功能:1.创建游戏程序主窗体(GameFrame)和绘图面板(GamePanel);2.设计游戏循环,并通过线程来控制游戏运行的帧速率;3.在游戏逻辑更新部分实现小球的运动逻辑,使得小球可以朝着窗口四周移动

2、,并在边界处反弹。4.在游戏绘制部分实现小球的图形绘制,并通过双缓冲机制消除屏幕闪烁。三 实验步骤1.阅读实验要求,设计程序整体结构及各个类的功能。2.启动 java 开发环境,新建游戏项目。3.根据实验内容要求编写代码,以实现相应的功能。4书写实验报告,详细阐述代码编写的基本思想及主要过程。四 课时分配2 课时五 提交文档实验报告、源程序代码1.创建游戏程序主窗体(GameFrame)和绘图面板(GamePanel);/程序主窗体public GameFrame()Frame app=new Frame(GameFrame);app.addWindowListener(new WindowA

3、dapter()public void windowClosing(WindowEvent e)System.exit(0););app.setLocation(100,100);gamePanel drawB=new gamePanel();app.add(drawB,BorderLayout.CENTER);app.pack();app.setVisible(true);drawB.gameStart();/绘图面板public gamePanel()width=500;heigth=500;setBackground(Color.pink);setPreferredSize(new Di

4、mension(width,heigth);myball=new ball(this);mypad=new pad(this);this.setFocusable(true);this.requestFocus();this.addKeyListener(this);2.设计游戏循环,并通过线程来控制游戏运行的帧速率;/线程public void gameStart()gamethread=new Thread(this);gamethread.start();/游戏循环,控制游戏运行的帧速度public void run()long t1,t2,dt,sleepTime;long perio

5、d=1000/FPS;/计算每一次循环需要的执行时间,单位毫秒t1=System.nanoTime();/保存游戏循环执行前的系统时间,单位纳秒while(true)gameUpdate();gameRender();gamePaint();t2=System.nanoTime();/游戏循环执行后的系统时间,单位纳秒dt=(t2-t1)/1000000L;/本次循环实际花费的时间,并转换为毫秒sleepTime=period-dt;/计算本次循环剩余的时间,单位毫秒if(sleepTime bound.x-diameter)|(location.x 0)dx=-dx;if(location.

6、y bound.y-diameter)dy=-dy;4.在游戏绘制部分实现小球的图形绘制,并通过双缓冲机制消除屏幕闪烁。/消除屏幕闪烁public void gamePaint()Graphics g;try g=this.getGraphics();if(g!=null&im!=null)g.drawImage(im,0,0,null);g.dispose();catch(Exception e)/小球图形绘制public void gameRender()if(im=null)im=createImage(width,heigth);if(im=null)System.out.printl

7、n(im is null);else dbg=im.getGraphics();dbg.setColor(Color.pink);dbg.fillRect(0,0,width,heigth);myball.draw(dbg);mypad.draw(dbg);实验二实验二 贪食蛇游戏设计贪食蛇游戏设计一 实验目的通过设计和制作贪食蛇游戏来理解游戏程序的运行机制,同时学习运用 java的事件处理机制来改变游戏状态和传递控制命令。二 实验内容学习和了解贪食蛇游戏的基本设计思想(参考教材 4.4 节内容及相关代码),在此基础上进行改进,要求实现如下功能:1.当窗口最小化或被遮挡时暂停游戏;2.改变蛇的

8、运动速度,按+号键加速,按-号键减速;3.手动控制蛇的移动,按下方向键时让蛇朝对应的方向移动,否则静止不动;4.能够添加多个食物,如当按下某个键后随机添加一个新食物(原来的食物不消失);5.添加游戏结束规则(比如蛇头碰到边界或蛇身时结束),并能重新开始游戏。要求至少实现 3 个功能。还可以根据自己的创意,加入更多功能。三 实验步骤1.启动 java 开发环境,运行示例程序。2.阅读示例程序,分析程序整体结构及各个类的功能。3.根据实验内容要求修改或添加代码,以实现相应的功能。4书写实验报告,详细阐述代码编写的基本思想及主要过程。四 课时分配2 课时五 提交文档实验报告、源程序代码1.当窗口最小

9、化或被遮挡时暂停游戏;2.改变蛇的运动速度,按+号键加速,按-号键减速;3.手动控制蛇的移动,按下方向键时让蛇朝对应的方向移动,否则静止不动;在按下方向键时,蛇向该方向运动,当按下大写字母 Q 时,蛇暂停运动。对于几个常量的定义public static final int SOUTH=0;public static final int NORTH=1;public static final int EAST=2;public static final int WEST=3;public static final int quilt=4;控制方向函数:public void keyPresse

10、d(KeyEvent e)int keycode=e.getKeyCode();if(keycode=KeyEvent.VK_P)isPaused=!isPaused;System.out.println(key is P);if(!isPaused)switch(keycode)case KeyEvent.VK_DOWN:direction=SOUTH;System.out.println(key is down+direction);break;case KeyEvent.VK_UP:direction=NORTH;System.out.println(key is up+directio

11、n);break;case KeyEvent.VK_RIGHT:direction=EAST;System.out.println(key is right+direction);break;case KeyEvent.VK_LEFT:direction=WEST;System.out.println(key is left+direction);break;case KeyEvent.VK_Q:direction=quilt;System.out.println(key is quilt+direction);break;4.能够添加多个食物,如当按下某个键后随机添加一个新食物(原来的食物不

12、消失);5.添加游戏结束规则(比如蛇头碰到边界或蛇身时结束),并能重新开始游戏。/如果新坐标落在有效范围内,则进行处理if(0=x&x maxX)&(0=y&y 0?scoreGet:10;countMove=0;food=createFood();/创建新的食物matrixfood.xfood.y=true;/设置食物所在位置return true;else/吃到蛇体自身,失败return false;else/如果新坐标的点上没有东西(蛇体),移动蛇体nodeArray.addFirst(new Node(x,y);matrixxy=true;n=(Node)nodeArray.remov

13、eLast();matrixn.xn.y=false;countMove+;return true;return false;实验三实验三 打砖块游戏设计打砖块游戏设计一 实验目的通过设计和制作打砖块游戏来理解游戏程序的运行机制,同时学习运用 java编程来实现游戏世界中物体间的碰撞检测。二 实验内容学习和了解打砖块游戏的基本设计思想(参考教材 4.5 节内容及相关代码),在此基础上进行改进,要求实现如下功能:1 增加生命,如初始时设小球 3 条命,掉下挡板三次游戏结束;2 增加难度,每个砖块要敲击两次才能消失;3 分数显示,设计积分规则,并在游戏结束时显示出来;4 设置宝物,让宝物隐藏砖块后

14、,打中相应的砖块后改变属性,如小球减速,挡板增长,小球穿越砖块,小球停在挡板上等等;5 增加新的关卡,在初始的游戏过关后能生成新的关卡(改变砖块布局)。要求至少实现 3 个功能。还可以根据自己创意,加入更多功能。三 实验步骤1.启动 java 开发环境,运行示例程序。2.阅读示例程序,分析程序整体结构及各个类的功能。3.根据实验内容要求修改或添加代码,以实现相应的功能。4书写实验报告,详细阐述代码编写的基本思想及主要过程。四 课时分配2 课时五 提交文档实验报告、源程序代码1 增加生命,如初始时设小球 3 条命,掉下挡板三次游戏结束;public class Life extends Spri

15、tepublic Life()super(0,0,Images/heart1.png,1);public Sprite(int x,int y,String imfile,int num)locX=x;locY=y;dx=3;dy=3;imFileName=imfile;numImages=num;if(numImages=1)image=setImage(imFileName);else if(numImages 1)animPlayer=new Animation(imFileName,numImages,0,0,false);image=animPlayer.getCurrentImag

16、e();width=image.getWidth();height=image.getHeight();2 增加难度,每个砖块要敲击两次才能消失;3 分数显示,设计积分规则,并在游戏结束时显示出来;public void paintComponent(Graphics g)super.paintComponent(g);g.drawString(分数:+fenshu,200,30);4 设置宝物,让宝物隐藏砖块后,打中相应的砖块后改变属性,如小球减速,挡板增长,小球穿越砖块,小球停在挡板上等等;5 增加新的关卡,在初始的游戏过关后能生成新的关卡(改变砖块布局)。实验四实验四 角色扮演游戏设计角

17、色扮演游戏设计一 实验目的通过设计和制作简单的角色扮演游戏来了解游戏场景设计和角色设计的基本概念和原理,并掌握游戏场景滚动和角色动画播放的基本实现方法。二 实验内容学习和了解游戏场景设计和角色设计的基本原理(参考教材 5、6 章内容),在此基础上设计简单的角色扮演游戏,要求实现如下功能:1.创建一副大尺寸图像(宽和高均超过程序窗口的宽和高),作为游戏的场景图像。2.实现场景的滚动控制,要求能够在水平方向和垂直方向进行场景滚动(用键盘左右键进行水平滚动控制,上下键进行垂直滚动控制)。3.创建游戏角色,并实现角色上下左右四个方向行走时的精灵动画播放。4.将游戏角色加入游戏场景,并控制角色在场景中四

18、处走动,当按下某个方向键时,滚动游戏场景并播放角色朝着相应方向行走的动画。三 实验步骤1.阅读实验要求,设计程序整体结构及各个类的功能。2.启动 java 开发环境,新建游戏项目。3.根据实验内容要求编写代码,以实现相应的功能。4书写实验报告,详细阐述代码编写的基本思想及主要过程。四 课时分配2 课时五 提交文档实验报告、源程序代码1.创建一副大尺寸图像(宽和高均超过程序窗口的宽和高),作为游戏的场景图像。public void init()imMoveSize=5;canMoveRight=false;canMoveLeft=false;im1=loadImage(Images/mounta

19、ins.gif);im2=loadImage(Images/houses.gif);im3=loadImage(Images/trees.gif);bg1=new Ribbon(int)(imMoveSize*0.2),im1);bg2=new Ribbon(int)(imMoveSize*0.5),im2);bg3=new Ribbon(imMoveSize,im3);tileImage=new BufferedImage10;tiles=new ArrayList();for(int i=0;i 0)runningRight=true;runningLeft=false;else if(d

20、x=0)jumpStopped();if(!isJumping)dy+=GRAVITY;locY+=dy;locX+=dx;if(hasFoundPlayer()if(locX-world.getOffsetX()GamePanel.WIDTH/2)dx=-Math.abs(dx);else dx=Math.abs(dx);if(runningRight)animRight.updateImage();else if(runningLeft)animLeft.updateImage();if(world.worldCollisionVertical(this,thisPosition(),ne

21、xtPosition(),0)if(dy 0)onGround=true;setDY(0);elseonGround=false;if(world.worldCollisionHorizontal(this,thisPosition(),nextPosition(),0)dx=-dx;if(hasFoundPlayer()&onGround=true)isJumping=true;sound.loadSound(Sounds/jump.wav);sound.playSound();实验五实验五 横版动作游戏设计横版动作游戏设计一 实验目的通过设计和制作横版动作游戏来理解游戏场景与角色的交互、游

22、戏规则设计、游戏音乐设计及游戏关卡设计的基本原理,并掌握横版动作游戏程序的基本实现方法。二 实验内容学习和了解横版动作游戏的基本设计思想(参考教材 7-10 章的内容和相关代码),在此基础上进行改进,要求实现如下功能:1.用其它图像资源替换教材游戏示例中的场景及精灵,同时用其它声音资源替换示例中的音乐和音效;2.改进 NPC(电脑角色)间的碰撞检测及处理规则,如让两个 NPC 碰到后相互按相反的方向移动等;3.在游戏地图中设置秘密出口,玩家走到该处可以直接过关;4.增加新的道具,让玩家得到道具后获得新技能;5.增加移动障碍物,比如上下(或左右)浮动的木头等;6.使用关卡编辑器设计一个新关卡。要

23、求至少实现 3 个功能。还可以根据自己创意,加入更多功能。三 实验步骤1.启动 java 开发环境,运行示例程序。2.阅读示例程序,分析程序整体结构及各个类的功能。3.根据实验内容要求修改或添加代码,以实现相应的功能。4书写实验报告,详细阐述代码编写的基本思想及主要过程。四 课时分配2 课时五 提交文档实验报告、源程序代码实验六实验六、七七、八八、九为综合实验九为综合实验,要求模仿经典游戏要求模仿经典游戏“推箱子推箱子”来独立地设来独立地设计一款计一款 java 游戏,以此理解游戏设计的基本原理,同时练习使用面向对象的程游戏,以此理解游戏设计的基本原理,同时练习使用面向对象的程序设计方法序设计

24、方法。(说明:只需要实现任务书上的基本功能,不能从网上(说明:只需要实现任务书上的基本功能,不能从网上 copy 现成现成的代码。需提交可玩的游戏源程序及各次实验的实验报告的代码。需提交可玩的游戏源程序及各次实验的实验报告。)实验六实验六 推箱子游戏场景设计推箱子游戏场景设计一 实验目的理解游戏循环的实现原理,掌握 java 图像绘制、tile 贴图、精灵动画及移动控制的程序实现。二 实验内容1.绘制游戏场景。背景底层使用一副图片作为场景,前层用 tile 贴图表示障碍物。2.绘制精灵。包括箱子、玩家角色、标志点。3.控制玩家移动。按上下左右方向键后玩家分别向对应的方向移动,同时播放该方向的行

25、走动画。三 实验步骤1.阅读实验要求,设计程序整体结构及各个类的功能。2.启动 java 开发环境,新建游戏项目。3.根据实验内容要求编写代码,以实现相应的功能。4书写实验报告,详细阐述代码编写的基本思想及主要过程。四 课时分配2 课时五 提交文档实验报告、源程序代码1.绘制游戏场景。背景底层使用一副图片作为场景,前层用 tile 贴图表示障碍物。public TXZ()TXZm T=new TXZm();add(T);setTitle(推箱子);setSize(500,500);setBackground(Color.red);setLocation(500,500);setVisible(

26、true);2.绘制精灵。包括箱子、玩家角色、标志点。3.控制玩家移动。按上下左右方向键后玩家分别向对应的方向移动,同时播放该方向的行走动画。switch(keycode)case KeyEvent.VK_DOWN:break;case KeyEvent.VK_UP:break;case KeyEvent.VK_RIGHT:gameWorld.canMoveLeft=true;man.standLeft=false;break;case KeyEvent.VK_LEFT:gameWorld.canMoveRight=true;man.standRight=false;break;实验七实验七

27、推箱子游戏交互设计推箱子游戏交互设计一 实验目的理解碰撞检测的原理,并掌握其程序的实现方式。二 实验内容1.玩家与障碍物碰撞。玩家碰到障碍物后停止移动。2.玩家与箱子碰撞。玩家碰到箱子后,箱子朝玩家行走的方向移动一个单位。3.箱子与障碍物碰撞。箱子碰到障碍物后停止移动(箱子与箱子碰撞与此类似)。三 实验步骤1.阅读实验要求,设计程序整体结构及各个类的功能。2.启动 java 开发环境,新建游戏项目。3.根据实验内容要求编写代码,以实现相应的功能。4书写实验报告,详细阐述代码编写的基本思想及主要过程。四 课时分配2 课时五 提交文档实验报告、源程序代码实验八实验八 推箱子游戏规则设计推箱子游戏规

28、则设计一 实验目的理解并实现游戏的状态转换、游戏规则设计、游戏的背景音乐及音效设计。二 实验内容1.完善游戏规则。当所有箱子都处在“标志点”上时游戏结束,在程序窗口正中显示“finished”。2.设定重置键。按“R”键重新开始游戏,所有箱子和玩家回到初始位置。3.添加声音效果。为游戏设定一个背景音乐,在游戏过程中循环播放;当玩家推动箱子时播放一个音效,当游戏结束时播放一个音效。三 实验步骤1.阅读实验要求,设计程序整体结构及各个类的功能。2.启动 java 开发环境,新建游戏项目。3.根据实验内容要求编写代码,以实现相应的功能。4书写实验报告,详细阐述代码编写的基本思想及主要过程。四 课时分

29、配2 课时五 提交文档实验报告、源程序代码实验九实验九 推箱子游戏关卡设计推箱子游戏关卡设计一 实验目的理解游戏关卡的设计原理及游戏菜单的制作方式,并掌握其程序实现方法。二 实验内容1.设计新关卡。用文件保存关卡中的障碍物信息,并通过 java 的文件操作功能读取关卡信息,同时生成新的关卡。2.切换关卡。当前关卡完成后自动切换至下一关卡,当所有关卡完成后游戏结束。3.添加游戏菜单。为游戏设计一个菜单,当游戏程序启动时自动显示在屏幕正中。菜单项需要包含“开始游戏”、“退出游戏”、“跳转关卡”以及“关闭/开启音乐”等功能。三 实验步骤1.阅读实验要求,设计程序整体结构及各个类的功能。2.启动 java 开发环境,新建游戏项目。3.根据实验内容要求编写代码,以实现相应的功能。4书写实验报告,详细阐述代码编写的基本思想及主要过程。四 课时分配2 课时五 提交文档实验报告、源程序代码

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁