zoukankan      html  css  js  c++  java
  • 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类

     

     

     

     

  • 相关阅读:
    mac下的一个类似“_kbhit()”实现
    mac使用备注
    open()打开文件失败对应的各种错误码
    xcode显示行号show gutter
    下载google code中源码的几个工具
    HTML5迷你游戏作验证码
    Linux+eclipse+gdb调试postgresql源码
    S-Nim
    【求助】从大表中删除小表中存在的记录问题
    Binary Tree Zigzag Level Order Traversal (LeetCode) 层序遍历二叉树
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/6864574.html
Copyright © 2011-2022 走看看