- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章Java游戏设计
第五章 Java游戏:坦克大战
本章目标
封装的实际演练
简单用户界面设计
动画和控制设计
本章简介
在上一章我们学习了面向对象的基础知识,特别是学习了封装这个面向对象设计的核心概念,在本章我们将通过一个有趣的游戏《坦克大战》来学习和掌握封装这一重要的思想。
为了开发这个游戏,我们将从以下几个方面展开:界面设计、绘图、动画设计、键盘控制、角色设计。
5.1 JAVA图形界面设计
问题描述:
游戏总得有个“舞台”,这个“舞台”就是窗体。我们必须掌握简单窗体设计技术,以便为游戏搭建舞台。Java中的java.awt包为我们提供了设计窗体的相关类,其中最关键的是Frame类,使用这个类可以创建窗体。请看以下示例,该示例展示了如何创建一个窗口。
例程5.1:
import java.awt.Color;
import java.awt.Frame;
public class FrameTest {
public static void main(String[] args) {
Frame frame=new Frame(); //创建一个窗体对象
frame.setTitle(Frame); //设置窗体标题
frame.setSize(400,300); //设置窗体大小
frame.setLocation(50, 50); //设置窗体左上角坐标
frame.setBackground(Color.GREEN); //设置窗体背景颜色为绿色
frame.setVisible(true); //显示窗体
}
}
程序运行结果:
对于这个程序,参看其中的注释不难理解。但是一旦运行这个程序,你会发现这个窗体无法关闭,而且这样设计也不符合以后我们游戏设计的要求。我们先搭建一个框架,以供以后游戏开发的使用。这个框架是继承自Frame,将窗体的各种属性内置于这个窗体子类之中,并且解决了窗体关闭问题。
示例5.2
import java.awt.Color;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//游戏窗体继承自窗体类
public class Frame1 extends Frame {
public void launch(){
this.setSize(800,600); //设计游戏窗体各种属性
this.setLocation(50,50);
this.setBackground(Color.GREEN);
this.setResizable(false); //禁止改变窗体大小
this.addWindowListener(new WindowAdapter(){ //关闭窗体
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
this.setVisible(true);
}
public static void main(String[] args) {
Frame1 frame=new Frame1();
frame.launch();
}
}
程序中的黑体部分展示了关闭窗体的代码,这里使用的是窗体的监听器WindowAdapter来处理窗体关闭。对这些不必深究,我们关注的焦点是为游戏搭建一个框架和后面非常重要的封装的应用。
以上程序就是我们游戏的基本框架,以后的设计都在这个基础上扩展,请您一定要动手。
5.2 JAVA绘图
问题描述:
绘图对游戏的重要性不言而喻,我们将学习如何绘制各种图形和图片。Java提供了一套功能丰富的类,可以帮助我们很容易的绘制各种图形。在这里我们主要学习Graphics2D这个这个图形核心引擎,这个类在绘制矢量图和位图方面的全面性令人难以置信。
我们来看下面的例子:
例程5.3:
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Frame1 extends Frame {
public final static int WIDTH=800;
public final static int HEIGHT=600;
您可能关注的文档
- 第五章 保函和备用证.ppt
- 第五章 System V进程间通信.ppt
- 第五章 回溯法1.ppt
- 第五章 Wash函数和CRC编码.ppt
- 第五章 图(三).ppt
- 第五章 现代主义文学.ppt
- 第五次写作课:社会类.ppt
- 第五章 样本分布的密集性.ppt
- 第五章 英汉语言文字对比.ppt
- 第五章 翻译中的创意与忠实.ppt
- 2024年三亚航空旅游职业学院《形势与政策》期末考试题库含答案详解(黄金题型).docx
- 2024年成都职业技术学院《形势与政策》期末考试模拟题库及答案详解【必刷】.docx
- 2024年丽水职业技术学院《形势与政策》期末考试测试卷附答案详解(综合题).docx
- 2024天津公安警官职业学院《形势与政策》期末考试考试彩蛋押题附参考答案详解【名师推荐】.docx
- 2024年山西水利职业技术学院《形势与政策》期末考试经典例题【考点提分】附答案详解.docx
- 2024年鄂尔多斯生态环境职业学院《形势与政策》期末考试复习提分资料及参考答案详解【综合卷】.docx
- 2024年开封职业学院《形势与政策》期末考试过关检测试卷含答案详解(巩固).docx
- 2024年安徽商贸职业技术学院《形势与政策》期末考试能力提升B卷题库附完整答案详解(全优).docx
- 2024南京工业职业技术大学《形势与政策》期末考试综合提升测试卷【精华版】附答案详解.docx
- 2024河北科技工程职业技术大学《形势与政策》期末考试高频难、易错点题及完整答案详解【名校卷】.docx
最近下载
- 2017年全国二卷高考语文试题及答案.docx VIP
- 2025人教版初中八年级上册英语单词表汇总(含音标) .pdf VIP
- 2025年三支一扶考试时事政治试卷带解析附必背答案.docx VIP
- 2023广州市花都区事业单位考试历年真题.docx VIP
- 2023全国职业院校技能大赛(中职组)服装设计与工艺赛项备考试题库-上(单选题).docx VIP
- 《×××典当有限公司章程(范本)》.docx VIP
- 自考公安管理学笔记串讲预测-预测小抄.doc VIP
- 《面积单位间的进率》(教学设计)2023-2024学年三年级下册数学人教版.docx VIP
- 2016年高考全国2卷语文试题及答案.pdf VIP
- 强制性条文执行计划(完整版) .doc VIP
文档评论(0)