• Java实例-坦克大战


    Java实例-坦克大战

    一.样例图片

     

    二.类图结构

     

    坦克大战中的所有类

     

    类的关系图

     

    我的坦克类

    三.说明

    1、每一个新的独立运行的东西就是一个线程,像我方坦克,像敌方坦克,像所有的子弹

    2、每一个线程要实现run方法,也要start启动线程

    3、无论坦克,子弹,都有生命,都有坐标(静),都有速度,都有运动的方向(动)

    4、坦克和子弹的运动都是靠修改坐标后的刷新坐标来实现的

    5、坦克的子弹的显现都是通过JPanel里面的paint出来的,不断的repaint就能显现所有的运动

    6、子弹的连续运动是通过run方法里面的死循环实现的,也就是不断的变换坐标

    7、键盘动作是通过键盘监听来的

    8、多个线程是被集合类存储起来的,像子弹集合,像敌方坦克集合

     

    9、自己坦克的动是因为键盘事件里面的repaint,敌方坦克的动却是因为Tank1界面里面调用MyPanel线程的start函数,run里面有repaint

    10、运行repaint的实质是再次调用paint函数,所以我们需要看看paint里面有什么

    11、paint函数里面其实就是什么有生命我就画什么就好,有多少个我画多少个,例如我方坦克,敌方坦克,我方子弹,敌方子弹

    12、画敌方子弹需要双重循环,那还不如和敌方坦克画在一起

    13、子弹发射了还要绘制才可能出来

    四.代码

    代码在百度盘上:http://pan.baidu.com/s/1hrYFjxU

    (1)主界面:TankWarUI类

    (2)坦克作战区:MyPanel类

    (3)子弹:Bullet类

    (4)坦克类:Tank类

    (5)我的坦克类:MyTank类

    (6)敌人坦克类:EnemyTank类

     

     

     

     

  • 相关阅读:
    POJ 3468 A Simple Problem with Integers(线段树 区间更新)
    Windows Mobile 6.0 SDK和中文模拟器下载
    Linux学习笔记——例说makefile 头文件查找路径
    uva 11427
    腾讯2014年实习生招聘笔试面试经历
    AVC1与H264的差别
    oracle递归函数
    全部编程皆为Web编程
    JavaScript--语法2--语句结构
    JavaScript--变量和运算符
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/6864574.html
Copyright © 2020-2023  润新知