- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java坦克大战游戏的实现与设计推荐
坦克大战游戏的实现与设计
1.课程设计的目的
随着手机的日益普及,java功能在移动设备上的实现及java应用程序产生的影响力,对丰富人们的生活内容,提供便捷的咨询起着不可忽视的作用。本项目介绍了坦克大战的基本构建方法、java的相关技术及本程序的结构分析和具体功能的实现。游戏是在Eclipse3.2环境下编程。本项目重点运用了图形化用户界面GUI,Thread多线程的有关知识,其中涉及了绘图工具的运用,事件处理操作以及图形的碰撞检测等知识点。通过课程设计,使学生巩固所学知识、培养学生动手能力学生用Java语言设计一个完整的应用程序,综合应用所学知识完成软件的分析、设计、调试和总结,提高学生对Java语言的综合应用能力和解决问题的能力。
22.1设计思路
本项目介绍了坦克大战的基本构建方法、java的相关技术及本程序的结构分析和具体功能的实现。游戏是在Eclipse3.2环境下编程。它的主要功能有:
(1)能够朝四个方向移动
(2)能够发射子弹互相攻击
(3)敌人能够移动
(4)能够模拟爆炸
(5)能够产生障碍
(6)能够增长生命
玩家控制主坦克(上方有血条的)的移动以及炮弹的发射。若玩家将敌方坦克全部打掉并保证自己的老家不被打掉则视为玩家获胜;若期间由玩家控制的主坦克被打掉,或者自己的老家被打掉则视为玩家失败。游戏中有金属墙,普通墙,河水等障碍物,玩家无法穿越它们;但是玩家可以将普通墙打掉。游戏中的森林可以将坦克隐身,药箱可以将坦克的血加满。
2.2设计方法
2.2.1构建游戏主类
在主类中构造一个主Frame框架,设置它的大小和位置,并将其显示。在主类中编写一段代码,构造一个窗口。并添加窗口关闭的处理事件,将窗口设置成打小不可变。
主要代码如下:
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
this.setResizable(false);
2.2.2构建坦克类Tank
构造主窗口中所需要的Tank类,并将坦克加到窗口中,实现坦克的四个方向的移动
创建一个坦克类,用画图工具构造出简单的图形代表坦克,并将坦克加入到主窗口当中。
主要代码如下:
public class Tank {
……
public void draw(Graphics g) {
Color c = g.getColor();
g.setColor(Color.RED);
g.fillOval(x, y, 30, 30);
g.setColor(c);
}
}
public class TankClient extends Frame{
……
public void paint(Graphics g) {
myTank.draw(g);
}
}
让坦克朝四个方向运动起来,在主类TankClient中启用多线程机制,让系统不断的进行重画。并在Tank类中建立处理按键的方法,实现坦克的手动移动;根据坦克类修改TankClient主类,在主类中注册事件监听器,并调用Tank类中的方法。主类TankClient中使用双缓冲机制消除坦克的闪烁现象。在Tank类当中添加的按键方法,代码如下:
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
switch(key) {
case KeyEvent.VK_LEFT :
bL = true;
break;
……
}
locateDirection();
}
public void keyReleased(KeyEvent e) {
int key = e.getKeyCode();
switch(key) {
case KeyEvent.VK_LEFT :
bL = false;
break;
……
}
locateDirection();
}
TankClient类中的多线程机制的主要代码如下:
new Thread(new PaintThread()).start();
……
private class PaintThread implements Runnable {
public void run() {
while(true) {
repaint();
try {
Thread.sleep(50);
} catch (InterruptedException e)
文档评论(0)