《用java做坦克游戏.docVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《用java做坦克游戏

第一次课 一、要做的工作 产生一个800*600的窗口,背景色为绿色。窗口可以被关闭,但不允许改变大小 2、在窗口里画出一个红色的圆代表坦克 3、让坦克动起来 改变坦克的位置就相当于坦克移动了,因此首先需要把坦克的位置描述改为变量 每重画一次坦克就动一次,让坦克不断的动就要不断的重画,我们用线程来控制 二、知识点 1、使用eclipse建立项目,创建包和类的方法 2、变量命名规则:所有命名要求见名知义;类名首字母大小,变量和方法首字母小写;驼峰标识(比如类名:TankWar) 3、事件机制 事件包括三个方面:监听器类,注册事件,覆盖方法 监听器类经常写成内部类(包括匿名内部类)或是类本身实现事件接口 事件接口包括actionListener接口、窗口事件接口、鼠标事件接口、键盘事件接口等等 使用事件接口要求把接口的所有方法都写出,但不一定都实现 窗口事件和鼠标键盘事件接口还提供了较为简洁的适配器类 3、匿名内部类 类可以分为如下几种: 主类:包含主方法的类 内部类:在一个类内部定义的类为内部类 实例内部类:在一个类内部独立存在,不属于类的成员变量和方法 静态内部类:用static修饰的实例内部类 局部内部类:在一个类的方法内定义的类 匿名内部类:没有名字的局部内部类 外部类:包含内部类的类,外部类也可能是其他类的内部类 顶层类:不是任何类的内部类为顶层类 设计内部类的主要目标是“封装”。 顶层类只能用public修饰或者不修饰(即默认修饰方式),内部类可以用public,protected,private,默认四种方式修饰,局部内部类只能用默认修饰 局部内部类和匿名内部类只在方法内可见,即该类只为该方法提供服务 实例内部类只在一个类内可见,只为该类提供服务 4、利用eclipse重写父类的方法 在eclipse中单击右键,源代码,生成覆盖方法。此时会列出当前类的所有父类,当前类可以直接继承父类的方法。 5、图形的重画机制 在frame上画出的图形每次刷新时会重画,重画的过程是:系统自动调用repaint方法,repaint调用update方法,update调用paint方法,从而完成重画。 6、多线程 见第17课详细讲解 三、小注 1、我们使用的Frame组件,没有使用JFrame,因为JFrame在后续画图时不好用,到时举例看 第二次课 要做的工作 让坦克在键盘的控制下向四个方向移动 我们已经写好一个坦克并且能够控制其移动,如果要求在加入一个坦克该如何实现? 把坦克做成一个独立的类,把和坦克自身相关的属性和方法都写到坦克类中,然后在tankclient类中生成tank类的对象,然后用tanke类的对象调用坦克类的方法类完成各种功能 让坦克在键盘的控制下向八个方向移动 如何做出八个方向?通过四个方向键组合出八个方向,比如上、右同时按下是一个方向。 四个布尔变量代表四个方向键的按下情况,组合出八个方向,八个方向用枚举类型表示。 4、优化代码:把一些可能会改变的值定义成常量 知识点 键盘事件适配器 键盘控制坦克移动就要使用键盘事件,事件三要素:监听器类(监听接口还是适配器类?写成内部类还是匿名内部类?),注册事件,覆盖方法(keypress,keytyped,keyreleased用哪个方法) 键盘代码 如何获取键盘按键代码:e.getKeyCode() Switch语句:格式,case后能跟什么样的变量?没有break会怎样? 加入键盘事件后可否去掉多线程? 面向对象编程思想:一切皆为对象。对项目进行抽象,形成若干个类,然后生成对象来实现程序功能 把坦克抽象成一个类,把坦克的属性描述为成员变量,把坦克的行为描述为方法。这样就把坦克相关的属性和方法都封装到一个类中,属性一般设计为私有,通过set和get方法访问,方法一般为public,供对象调用,从而实现各种功能。 构造方法 构造方法用来描述一个对象刚生成时的状态。调用构造方法才能生成对象。一个类必须有构造方法,构造方法有三种情况 super(xxx): 第一句调用父类的构造方法 this(xxx): 第一句调用本类的其他构造方法 super(): 第一句没有调用任何其他的构造方法,系统会自动加上这句,去调用父类的无参构造方法(如果父类没有无参构造方法,那么子类会出错) 任何一个构造方法必然属于上述三者之一。任何一个类都必须提供一个空的构造方法 枚举类型 Tiger 中的一个重要新特性是枚举构造,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。Java 代码的两个基本的构造块是类 和接口。现在 Tiger 又引入了枚举,一般简称它为 enum。这个新类型允许您表示特定的数据点,这些数据点只接受分配 定义枚举enum Directio

文档评论(0)

yingxiaorong28 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档