java速学教程(入门到精通)
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
本篇文章主要介绍了java版坦克大战游戏源码示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
整理文档,搜刮出一个Java版坦克大战游戏的代码,稍微整理精简一下做下分享。
package tankwar; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.Random; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JPanel; import tankwar.Tank.Direction; import barrier.EnemyBorn; import barrier.Gold; import barrier.Home; import barrier.Iron; import barrier.SelfBorn; import barrier.Wall; /** * Java学习交流QQ群:589809992 我们一起学Java! */ public class TankWar implements KeyListener { static boolean TIMEOUT = false; private JFrame f; private JPanel gamePanel; private PanelShow messgePanel; private myPanel p; private Tank myTank; public static final int AREA_WIDTH = 830; public static final int AREA_HEIGHT = 800; private ArrayList<missle> missles = new ArrayList<missle>(); private ArrayList<tank> allTanks = new ArrayList<tank>(); private ArrayList<boom> booms = new ArrayList<boom>(); private ArrayList<wall> walls = new ArrayList<wall>(); private ArrayList<iron> irons = new ArrayList<iron>(); private ArrayList<gold> golds = new ArrayList<gold>(); private ArrayList<item> items = new ArrayList<item>(); private ArrayList<enemyborn> enemyBorns = new ArrayList<enemyborn>(); private SelfBorn selfBorn; private Home home; private Tank enemyTank; private Random r; private ImageIcon backGround; private final String map; private int tankMax; private boolean over = false; private static int selfMax = 3; private boolean win; private boolean flash = false; private TankWar tw = this; static int SCORE = 0; private final JFrame mainF; private int style; public TankWar(String map, int tankMax, JFrame mainF, int style) throws Exception { this.map = map; this.tankMax = tankMax; this.mainF = mainF; this.style = style; init(); } private void init() { f = new JFrame("坦克大战 V3.0"); gamePanel = new JPanel(null); p = new myPanel(); p.setBackground(Color.WHITE); r = new Random(); messgePanel = new PanelShow(); initMap(new File("map/" + map)); try { myTank = new Tank(selfBorn.getX(), selfBorn.getY(), true, allTanks, walls, irons, golds, missles, home, booms, style); } catch (Exception e1) { } myTank.setDir(Direction.U); allTanks.add(myTank); addTank(); try { backGround = new ImageIcon( TankWar.class.getResource("/pic/whiteback.jpg")); } catch (Exception e) { } p.setBorder(BorderFactory.createEtchedBorder(Color.BLACK, Color.WHITE)); p.setSize(AREA_WIDTH, AREA_HEIGHT); messgePanel.setBounds(AREA_WIDTH, 0, 200, AREA_HEIGHT); gamePanel.add(messgePanel); gamePanel.add(p); f.add(gamePanel); f.setBounds(0, 0, AREA_WIDTH + 200, AREA_HEIGHT); f.setDefaultCloseOperation(3); f.setResizable(true); f.setFocusable(true); f.addKeyListener(this); f.setVisible(true); new Thread(new Runnable() { public void run() { while (!over) { if (!myTank.isLive()) { selfMax--; if (selfMax = myTank.getX() && tank.getX() myTank.getY()) { tank.setUp(true); tank.setLeft(false); tank.setDown(false); tank.setRight(false); tank.setDir(Direction.U); return; } else if (tank.getX() >= myTank.getX() && tank.getX() myTank.getX() && tank.getY() >= myTank.getY() && tank.getY() = myTank.getY() && tank.getY() = AREA_WIDTH - Tank.SIZE) { tank.setUp(false); tank.setLeft(true); tank.setDown(false); tank.setRight(false); tank.setDir(Direction.L); } if (tank.getY() >= AREA_HEIGHT - Tank.SIZE) { tank.setUp(true); tank.setLeft(false); tank.setDown(false); tank.setRight(false); tank.setDir(Direction.U); } else if (r.nextInt(300) == 1) { tank.setUp(true); tank.setLeft(false); tank.setDown(false); tank.setRight(false); tank.setDir(Direction.U); } else if (r.nextInt(300) == 2) { tank.setUp(false); tank.setLeft(true); tank.setDown(false); tank.setRight(false); tank.setDir(Direction.L); } else if (r.nextInt(300) == 3) { tank.setUp(false); tank.setLeft(false); tank.setDown(true); tank.setRight(false); tank.setDir(Direction.D); } else if (r.nextInt(300) == 4) { tank.setUp(false); tank.setLeft(false); tank.setDown(false); tank.setRight(true); tank.setDir(Direction.R); } } public void initMap(File file) { try { FileInputStream read = new FileInputStream(file); for (int i = 0; i <p>代码运行效果截图</p> <p style="text-align: center;"><img src="https://img.php.cn/upload/article/000/000/194/ae4a04dfe59778d12995e96891e52498-0.jpg?x-oss-process=image/resize,p_40" style="max-width:90%" style="max-width:90%" alt=""></p></enemyborn></enemyborn></item></item></gold></gold></iron></iron></wall></wall></boom></boom></tank></tank></missle></missle>
Java免费学习笔记:立即学习
解锁 Java 大师之旅:从入门到精通的终极指南
已抢7202个
抢已抢94818个
抢已抢14816个
抢已抢52063个
抢已抢194634个
抢已抢87259个
抢