教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

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

来源:网络收集 时间:2026-09-17
导读: 《Java游戏程序设计教程》实验任务书 实验一 弹跳小球游戏设计 一 实验目的 通过设计和制作弹跳小球游戏来了解游戏程序的基本结构,理解游戏循环和双缓冲机制的基本原理,并掌握游戏运行框架的设计方法。 二 实验内容 学习和了解游戏基本框架的设计方法(参

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

实验一 弹跳小球游戏设计

一 实验目的

通过设计和制作弹跳小球游戏来了解游戏程序的基本结构,理解游戏循环和双缓冲机制的基本原理,并掌握游戏运行框架的设计方法。

二 实验内容

学习和了解游戏基本框架的设计方法(参考教材第3章内容及相关代码),在此基础上设计弹跳小球游戏,实现小球在程序窗口边界反弹的效果。要求实现如下功能:

1. 创建游戏程序主窗体(GameFrame)和绘图面板(GamePanel);

2. 设计游戏循环,并通过线程来控制游戏运行的帧速率;

3. 在游戏逻辑更新部分实现小球的运动逻辑,使得小球可以朝着窗口四周移动,并在边界处反弹。

4. 在游戏绘制部分实现小球的图形绘制,并通过双缓冲机制消除屏幕闪烁。

三 实验步骤

1. 阅读实验要求,设计程序整体结构及各个类的功能。

2. 启动java开发环境,新建游戏项目。

3. 根据实验内容要求编写代码,以实现相应的功能。

4.书写实验报告,详细阐述代码编写的基本思想及主要过程。

四 课时分配

2课时

五 提交文档

实验报告、源程序代码

1. 创建游戏程序主窗体(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);

}

2. 设计游戏循环,并通过线程来控制游戏运行的帧速率;

//线程

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(); //重新获取当前系统时间

}

}

3. 在游戏逻辑更新部分实现小球的运动逻辑,使得小球可以朝着窗口四周移动,并在边界处反弹。

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 = 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.println("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.改变蛇的运动速度,按+号键加速,按-号键减速;

3.手动控制蛇的移动,按下方向键时让蛇朝对应的方向移动,否则静止不动;

4.能够添加多个食物,如当按下某个键后随机添加一个新食物(原来的食物不消失);

5.添加游戏结束规则(比如蛇头碰到边界或蛇身时结束),并能重新开始游戏。 要求至少实现3个功能。还可以根据自己的创意,加入更多功能。

三 实验步骤

1. 启动java开发环境,运行示例程序。

2. 阅读示例程序,分析程序整体结构及各个类的功能。

3. 根据实验内容要求修改或添加代码,以实现相应的功能。

4.书写实验报告,详细阐述代码编写的基本思想及主要过程。

四 课时分配

2课时

五 提交文档

实验报告、源程序代码

1.当窗口最小化或被遮挡时暂停游戏;

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 keyPressed(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 …… 此处隐藏:8267字,全部文档内容请下载后查看。喜欢就下载吧 ……

《Java游戏程序设计教程》实验任务书.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1708380.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)