第八周:战斗模块
战斗模块代码实现
首先用Battel继承与 JFrame类
class Battel extends JFrame {
public Battel(){
//这个类的方法
}
}
然后新建三个Jpanel类
JPanel panelplayer=new JPanel(); //玩家人物所占的界面
JPanel monsterplayer= new JPanel();//怪物AI所占的界面
JPanel choose=new JPanel();//玩家能够选择的按钮信息
然后将按钮建立出来
JButton attact = new JButton("攻击");
JButton prop = new JButton("道具");
JButton leave = new JButton("逃跑");
JButton skill = new JButton("武功");//
将choose面板的Layout型设置为GridLayout(1,4)
将按钮加入到选择面板中
choose.add(attact);
choose.add(prop);
choose.add(skill);
choose.add(leave);
再建立一个drawState继承与Jpanel类 用于显示人物和怪物的基本信息
class drawState extends JPanel{
Player p;
Monster m;
public void drawState(JPanel panelplayer,JPanel monsterplayer,Player player,Monster monster){
p=player;
m=monster;
panelplayer.setLayout(new GridLayout(9,1));
ImageIcon iconplayer =new ImageIcon("主角.png");
JLabel a=new JLabel("当前HP/最大HP "+player.getHp1()+"/"+player.Maxhp);
JLabel b=new JLabel("名称: "+player.name);
JLabel c=new JLabel("当前MP/最大MP "+player.getMp1()+"/"+player.Maxmp);
JLabel d=new JLabel("力量: "+player.strength);
JLabel e=new JLabel("智力: "+player.intelligence);
JLabel f=new JLabel("攻击力: "+player.attact);
JLabel g=new JLabel("防御力: "+player.defence);
JLabel h=new JLabel("等级: "+player.level1);
JLabel i=new JLabel(iconplayer);
panelplayer.add(i);
panelplayer.add(b);
panelplayer.add(a);
panelplayer.add(c);
panelplayer.add(d);
panelplayer.add(e);
panelplayer.add(f);
panelplayer.add(g);
panelplayer.add(h); //主角状态栏显示;
monsterplayer.setLayout(new GridLayout(9,1));
ImageIcon iconmonster =new ImageIcon("使徒安图恩.png");
JLabel a1=new JLabel("当前HP/最大HP "+monster.getHp1()+"/"+monster.Maxhp);
JLabel b1=new JLabel("名称: "+monster.name);
JLabel c1=new JLabel("当前MP/最大MP "+monster.getMp1()+"/"+monster.Maxmp);
JLabel d1=new JLabel("力量: "+monster.strength);
JLabel e1=new JLabel("智力: "+monster.intelligence);
JLabel f1=new JLabel("攻击力: "+monster.attact);
JLabel g1=new JLabel("防御力: "+monster.defence);
JLabel h1=new JLabel("等级: "+monster.level);
JLabel i1=new JLabel(iconmonster);
monsterplayer.add(i1);
monsterplayer.add(b1);
monsterplayer.add(a1);
monsterplayer.add(c1);
monsterplayer.add(d1);
monsterplayer.add(e1);
monsterplayer.add(f1);
monsterplayer.add(g1);
monsterplayer.add(h1);
//怪物状态栏显示*
}
}
//运行结果如图

接下来就是按钮的功能实现
用最简单逃跑按钮来举例
具体代码
//逃跑的机制是用了一个随机数产生器,当产生的随机数小于一个数值时,能够逃跑,当不满足上述条件时,则逃跑失败,轮到怪物出招
class ButtonActionleave implements ActionListener{
JFrame jf;
String definition;
JPanel x,y;
Player p;
Monster m;
public ButtonActionleave(JPanel panelplayer,JPanel monsterplayer,Player player,Monster monster,JFrame frame){
this.jf=frame;
p=player;
m=monster;
x=panelplayer;
y=monsterplayer;
}
public void actionPerformed(ActionEvent e) {
Random rand=new Random();
int i=rand.nextInt(10);
if(i<=6)
{definition="逃跑成功";
new Textdialog(definition);
panel.lock=0;
jf.dispose();}
else
{ definition="逃跑失败,请接受"+m.name+"的怒火";
new Textdialog(definition);
monsterAttact Attact=new monsterAttact();
Attact.monsterAttact(x,y,p,m,jf);
}
}
}
如图

posted on 2016-04-19 17:10 2014551530刘迪 阅读(209) 评论(0) 收藏 举报
浙公网安备 33010602011771号