网站大量收购独家精品文档,联系QQ:2885784924

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

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

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Java游戏程序设计教程》实验任务书 实验一 弹跳小球游戏设计 一 实验目的 通过设计和制作弹跳小球游戏来了解游戏程序的基本结构,理解游戏循环和双缓冲机制的基本原理,并掌握游戏运行框架的设计方法。 二 实验内容 学习和了解游戏基本框架的设计方法(参考教材第3章内容及相关代码),在此基础上设计弹跳小球游戏,实现小球在程序窗口边界反弹的效果。要求实现如下功能: 1. 创建游戏程序主窗体(GameFrame)和绘图面板(GamePanel); 2. 设计游戏循环,并通过线程来控制游戏运行的帧速率; 3. 在游戏逻辑更新部分实现小球的运动逻辑,使得小球可以朝着窗口四周移动,并在边界处反弹。 4. 在游戏绘制部分实现小球的图形绘制,并通过双缓冲机制消除屏幕闪烁。 三 实验步骤 1. 阅读实验要求,设计程序整体结构及各个类的功能。 2. 启动java开发环境,新建游戏项目。 3. 根据实验内容要求编写代码,以实现相应的功能。 4.书写实验报告,详细阐述代码编写的基本思想及主要过程。 四 课时分配 2课时 五 提交文档 实验报告、源程序代码创建游戏程序主窗体(GameFrame)和绘图面板(GamePanel); //程序主窗体 public GameFrame() {Frame app = new Frame(GameFrame);app.addWindowListener(new WindowAdapter() {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 Dimension(width, heigth));myball=new ball(this);mypad=new pad(this);this.setFocusable(true);this.requestFocus();this.addKeyListener(this);} 设计游戏循环,并通过线程来控制游戏运行的帧速率;//线程public void gameStart(){gamethread = new Thread(this);gamethread.start();} //游戏循环,控制游戏运行的帧速度public void run() {long t1,t2,dt,sleepTime;long period=1000/FPS; //计算每一次循环需要的执行时间,单位毫秒t1=System.nanoTime(); //保存游戏循环执行前的系统时间,单位纳秒while(true){gameUpdate();gameRender();gamePaint();t2= System.nanoTime() ; //游戏循环执行后的系统时间,单位纳秒dt=(t2-t1)/1000000L; //本次循环实际花费的时间,并转换为毫秒sleepTime = period - dt;//计算本次循环剩余的时间,单位毫秒if(sleepTime=0)//防止sleepTime值为负数sleepTime=2;try {Thread.sleep(sleepTime); //让线程休眠,由sleepTime值决定} catch (InterruptedException ex) { }t1 = System.nanoTime(); //重新获取当前系统时间}} 在游戏逻辑更新部分实现小球的运动逻辑,使得小球可以朝着窗口四周移动,并在边界处反弹。 public void move() {location.x += dx;location.y += dy;if ((location.x bound.x - diameter) || (location.x 0)) {dx = -dx;}if ((location.y 0) || (location.y bound.y-diameter)) {dy = -dy;}} 4. 在游戏绘制部分实现小球的图形绘制,并通过双缓冲机制消除屏幕闪烁。 //消除屏幕闪烁 public void gamePaint() {Graphics g;try {g = th

文档评论(0)

33894522 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档