
就是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) {
}
} 展开
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(财富值+成长值)
2个回答
展开全部
你用1级车去打3级车当然打不动了,在打不动的情况下就换3号弹打吧,尽量打侧面,后面, 还得吃药 乘员熟练度没满。把炮手练满就能打到了。 精度吧,.4以上的精度300米开外基本打不中。还有就是打到敌人了,闪了...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
韩顺平的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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询