就是java坦克大战有块打出敌人坦克,可是我写了怎么没有敌人坦克啊?

importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.util.*;publicc... import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
public class Demo2 extends JFrame{
MyPanel d = null;
public static void main(String[] args) {
Demo2 d2 = new Demo2();}
public Demo2 (){
d = new MyPanel();
d.setBounds(400,300,400,300);
this.add(d);
this.addKeyListener(d);

this.setVisible(true);
}}
class MyPanel extends JPanel implements KeyListener{
Hero hero = null;
Vector<EnemyTank> ets = new Vector<EnemyTank>();
int enSize = 3;
public MyPanel(){
hero = new Hero(400,100);
for(int i=0; i<enSize;i++){
EnemyTank et = new EnemyTank((i+1)*50,100);
et.setColor(0);
et.setDirect(3);
ets.add(et);
}
}
public void paint(Graphics g){
super.paint(g);
g.fillRect(200,200,200,200);
this.drawTank(hero.getX(), hero.getY(), g, this.hero.direct, 1);
for(int i=0;i < ets.size();i++){
this.drawTank(ets.get(i).getX(), ets.get(i).getY(), g, ets.get(i).getDirect(), 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.fill3DRect(x, y,5 , 30, false);
g.fill3DRect(x+15, y,5 ,30, false);
g.fill3DRect(x+5, y+5, 10, 20, false);
g.fillOval(x+5, y+10, 10, 10);
g.drawLine(x+10, y+15,x+10,y);
break;
case 1:

g.fill3DRect(x, y,30 , 5, false);
g.fill3DRect(x, y+15,30 ,5, false);
g.fill3DRect(x+5, y+5, 20, 10, false);
g.fillOval(x+10, y+5, 10, 10);
g.drawLine(x+15, y+10,x,y+10);
break;
case 2:

g.fill3DRect(x, y,30 , 5, false);
g.fill3DRect(x, y+15,30 ,5, false);
g.fill3DRect(x+5, y+5, 20, 10, false);
g.fillOval(x+10, y+5, 10, 10);
g.drawLine(x+15, y+10,x+30,y+10);
break;
case 3:

g.fill3DRect(x, y,5 ,30, false);
g.fill3DRect(x+15, y,5 ,30, false);
g.fill3DRect(x+5, y+5, 10,20, false);
g.fillOval(x+5, y+10, 10, 10);
g.drawLine(x+10, y+15,x+10,y+30);
break;
}
}
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}
public void keyPressed(KeyEvent e) {

if(e.getKeyCode() == KeyEvent.VK_W){

this.hero.setDirect(0);
this.hero.moveUP();
}else if(e.getKeyCode() == KeyEvent.VK_A){
this.hero.setDirect(1);
this.hero.moveLeft();
}else if(e.getKeyCode() == KeyEvent.VK_D){
this.hero.setDirect(2);
this.hero.moveRight();
}else if(e.getKeyCode() == KeyEvent.VK_S){
this.hero.setDirect(3);
this.hero.moveDown();
}
this.repaint();

}
public void keyReleased(KeyEvent e) {
}

}
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
tautgren
2015-03-28
知道答主
回答量:35
采纳率:0%
帮助的人:4.5万
展开全部
你用1级车去打3级车当然打不动了,在打不动的情况下就换3号弹打吧,尽量打侧面,后面, 还得吃药 乘员熟练度没满。把炮手练满就能打到了。 精度吧,.4以上的精度300米开外基本打不中。还有就是打到敌人了,闪了...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hhaoddan
2015-03-28 · 超过32用户采纳过TA的回答
知道答主
回答量:158
采纳率:0%
帮助的人:71.1万
展开全部
韩顺平的java教程?你英雄坦克画出来了吗?
更多追问追答
追问
英雄出来了,可是始终在左上角,怎么改都到不了中间位置,敌人也创建不了。
追答
public Demo2 (){

这个函数里你设置框架大小了吗?还是代码没贴上来?就是
this.setSize(600,500);
this.setDefaultCloseOperation(JFrame.EXIT这点代码没记全);
this.setVisiable(true);

还有不需要d.setBounds(400,300,400,300),就让panel贴住框架的左上角先,

然后再paint(){}里,吧黑色背景画的大点,你英雄坐标都到400了,背景才200

fillRect(0,0,400,300);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式