1. 程式人生 > >坦克大戰中的坦克

坦克大戰中的坦克

size settitle repaint 效果 extends inf red bre paint

臨近期末考試,給大家整一個輕松一些的代碼

做個坦克大戰中的坦克

當然要想做成小遊戲還是要努努力呀~

祝大家考個好成績

import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
public class Tank extends JFrame implements KeyListener{
int x = 10;
int y = 50;
int a;//保存按鍵的編號
Tank(){
this.setTitle("坦克大戰");
this.addKeyListener(this);
this.setSize(400,400);
this.setVisible(true);
}
public static void main(String[] args) {
new Tank();
}
//1 重寫paint方法
// 1 顯示圖形界面的時候自動調用
// 2 窗口還原的時候調用
// 3 repaint調用
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.gray);

//繪制左邊輪胎
g.fill3DRect(x, y, 5, 40, false);

//繪制右邊輪胎
g.fill3DRect(x+30, y, 5, 40, false);

//繪制中間的圓
g.fillOval(x+2, y+10, 30, 20);


g.setColor(Color.red);
//繪制炮臺
g.fill3DRect(x+15, y+28, 5, 20, false);


if(a==88){//按下的X鍵(x鍵編號是88)
g.fillOval(x+10, y+70, 10, 10);
g.fillOval(x+2, y+120, 20, 20);
g.fillOval(x-5, y+170, 30, 30);

a = 0;//重置按鍵編號
}

}


//按住不放
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}
//按下某個鍵調用
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
a = e.getKeyCode();//獲得按件的編號
switch(a){
case 38: //上
y-=5;
break;
case 40: //下
y+=5;
break;
case 37: //左
x-=5;
break;
case 39: //右
x+=5;
break;
}

this.repaint();//重新繪圖
}
//釋放某個鍵
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub

}
class Panels extends JPanel{

}
}

展示一下運行效果

技術分享圖片

坦克大戰中的坦克