Java——坦克大战(1)
2014-04-29 16:42
302 查看
接下来,将学习完成一个坦克大战游戏项目,进度可能很慢,但尽可能的完善它。
本次要点:利用绘图讲述画出简易坦克,并用事件处理让其移动起来。(代码不完善,坦克只能正常向上走,左右只能横着走,向下倒着走,且会冲出边界)
本次要点:利用绘图讲述画出简易坦克,并用事件处理让其移动起来。(代码不完善,坦克只能正常向上走,左右只能横着走,向下倒着走,且会冲出边界)
package com.test.tank; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TankGame extends JFrame{ MyPanel mp = null; public static void main(String[] args) { TankGame test = new TankGame(); } //构造函数 public TankGame(){ mp = new MyPanel(); this.add(mp); this.addKeyListener(mp); this.setSize(400, 300); this.setTitle("坦克大战"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } } class MyPanel extends JPanel implements KeyListener{ //定义我的坦克 Hero hero = null; int x = 190; int y = 235; public MyPanel(){ hero = new Hero(x, y); } //重写paint方法 public void paint(Graphics g){ super.paint(g); g.fillRect(0, 0, 400, 300); //调用画坦克函数 this.drawTank(x, y, g, 0, 0); } //画坦克函数 public void drawTank(int x, int y, Graphics g, int direct, int type){ //判断坦克类型 switch (type){ case 0: g.setColor(Color.CYAN); break; case 1: g.setColor(Color.GREEN); break; } ////判断坦克方向 switch (direct){ case 0: g.setColor(Color.CYAN); g.fill3DRect(x, y, 5, 30, false); g.fill3DRect(x+5, y+5, 10, 20, false); g.fillOval(x+4, y+10, 10, 10); g.drawLine(x+10, y+10, x+10, y); g.fill3DRect(x+15, y, 5, 30, false); break; } } @Override public void keyTyped(KeyEvent e) { // TODO 自动生成的方法存根 } @Override public void keyPressed(KeyEvent e) { // TODO 自动生成的方法存根 if(e.getKeyCode() == KeyEvent.VK_UP){ y-=2; }else if((e.getKeyCode() == KeyEvent.VK_DOWN)){ y+=2; }else if((e.getKeyCode() == KeyEvent.VK_LEFT)){ x-=2; }else if((e.getKeyCode() == KeyEvent.VK_RIGHT)){ x+=2; } this.repaint(); } @Override public void keyReleased(KeyEvent e) { // TODO 自动生成的方法存根 } } class Tank{ //坦克横、纵坐标 int x = 0; int y = 0; public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } public Tank(int x, int y){ this.x = x; this.y = y; } } class Hero extends Tank{ public Hero (int x, int y){ super(x, y); } }
相关文章推荐
- 坦克大战java版
- Java坦克大战 (三) 之可完全控制坦克朝八个方向运动
- 《Java小游戏实现》:坦克大战(续四)
- 射击类小游戏——坦克大战(java实现)
- java项目之——坦克大战22
- java学习日记----------------------------------单机版坦克大战<马士兵>
- java项目之——坦克大战04.1
- Java坦克大战 (三) 之可完全控制坦克朝八个方向运动
- java项目之——坦克大战10
- JAVA坦克大战
- JAVA写的坦克大战(单机图片版)
- JAVA零基础——坦克大战(上)
- java项目之——坦克大战13
- java小游戏——坦克大战
- Java坦克大战 (二) 之画一个能动的圆圈代表坦克
- java实现的坦克大战
- java项目之——坦克大战12
- java坦克大战源码下载
- java基础--坦克大战(二)
- 【java版坦克大战---准备篇】 java 绘图