




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成绩:(论文首页纸)课程名称: Java程序设计任课教师: 论文题目: SD敢达G世纪战争图文小游戏学号: 姓名: 年级: 专业: 班级: 提交日期:2011年6月20- 19 -课题介绍应用JAVA写的一个文字图片版的SD敢达G世纪战争小游戏,选择一架自己喜欢的机体与敌军作战,其中包括近中远3种武器类型,在战斗距离不同的时候各种武器产生的威力是不同的。一、 操作步骤1. 运行MainTest.java2. 点击load,进入选择机体界面,将鼠标放在你喜欢的机体上,有机体介绍3. 任意选择一架,选择完机体您会进入遭遇战,遇到敌军MS的袭击 4. 点击进入战斗按钮,开始战斗5. 进入战斗界面后,可以选择移动或者使用武器攻击,移动包括前进与后退,因为不同的武器在不同的战斗距离攻击力是不一样的,所以你必须移动到合适的位置选择合适的武器进行攻击。6. 武器攻击每架机体都拥有3个武器,可以根据不同的战斗距离使用不同的武器,例如中距离武器,在远距离与近距离时攻击力减少,远距离武器在近距离时没有攻击力,同理近距离格斗在远距离时没有威力。 7. 在选择移动或者使用武器后都要点击回合结束,换敌军行动 8.在下一回合可以看见上次行动情况,包括敌军HP,我军HP,与战斗距离 9. 当我军HP掉为0的时候10.当敌军HP掉为0的时候三、分析与设计1.MainTest类为主函数,主要是开始运行此程序jinru a=new jinru(strat);2.进入jinru类开始游戏public class jinru extends JFrameprivate JButton load;public JLabel text1,picture;public jinru(String t) super( 欢迎来到SD敢达G世纪 ); Container container = getContentPane(); container.setLayout( new FlowLayout() ); if(t=strat) text1 = new JLabel(WELCOME TO SD GUNDAM WORLD WARS); container.add( text1 ); load = new JButton(load); container.add( load ); Icon dmw = new ImageIcon( 222.jpg ); picture = new JLabel( , dmw, SwingConstants.LEFT ); container.add( picture ); load.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) setVisible( false); xuanji x=new xuanji(); ); setSize(620, 490); setVisible( true ); 这个类中设置了一个Label与图片和按钮,当点击load按钮时运行xuanji x=new xuanji();进入xuanji类3. public class xuanji extends JFramepublic JLabel text1;private JButton Button1,Button2,Button3;public xuanji()super(SD敢达G世纪战争);Container container = getContentPane(); container.setLayout( new FlowLayout() ); text1=new JLabel(选择一架你喜欢的机体); container.add( text1 ); Icon ziyou = new ImageIcon( ziyou.jpg ); Icon god = new ImageIcon( god.jpg ); Icon diaomao = new ImageIcon( diaomao.jpg ); Button1 = new JButton(,diaomao); Button1.setToolTipText( 飞翼零式改(EW),适用于远距离作战 ); container.add( Button1 ); Button2 = new JButton(,ziyou); Button2.setToolTipText( 自由高达,擅长中距离作战 ); container.add( Button2 ); Button3 = new JButton(,god); Button3.setToolTipText( 神高达,近距离格斗能力突出 ); container.add( Button3 ); Button1.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) setVisible( false); zaoyuzhan y = new zaoyuzhan(1); ); Button2.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) setVisible( false); zaoyuzhan y = new zaoyuzhan(2); ); Button3.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) setVisible( false); zaoyuzhan y = new zaoyuzhan(3); ); setSize(1004, 260); setVisible( true );此时有3个按钮,因为设置了3架不同的机体,为了区分选择了哪架机体,所以在zaoyuzhan的方法设置了参数,按钮1的参数就为1。zaoyuzhan y = new zaoyuzhan(1); 4. zaoyuzhan 这个类主要为了提醒玩家战斗即将开始,没有什么算法。点击进入战斗按钮之后运行zhandou zd=new zhandou(i); 由于各个机体的武器是不同的,所以选择了哪个机体,此信息还是要继续带下去,设置参数i;5.public zhandou(int z) super( 欢迎来到SD敢达G世纪 ); Container container = getContentPane(); container.setLayout( new FlowLayout() ); yidong=new JButton(移动); container.add(yidong); wq=new JButton(武器); container.add(wq); Icon diaomao = new ImageIcon( diaomao2.jpg ); Icon god = new ImageIcon( god2.jpg ); Icon ziyou = new ImageIcon( ziyou2.jpg ); if(z=1) feiyi fy=new feiyi(); WHP=new JLabel(我方机体HP+fy.whp); container.add(WHP); DHP=new JLabel(敌方机体HP+fy.dhp); container.add(DHP); picture = new JLabel( , diaomao, SwingConstants.LEFT ); container.add( picture ); wq.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) fwq f=new fwq(); setVisible( false ); ); if(z=3) god g=new god(); WHP=new JLabel(我方机体HP+g.whp); container.add(WHP); DHP=new JLabel(敌方机体HP+g.dhp); container.add(DHP); picture = new JLabel( , god, SwingConstants.LEFT ); container.add( picture ); wq.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) gwq g=new gwq(); setVisible( false ); ); if(z=2) ziyou zy =new ziyou(); WHP=new JLabel(我方机体HP+zy.whp); container.add(WHP); DHP=new JLabel(敌方机体HP+zy.dhp); container.add(DHP); picture = new JLabel( , ziyou, SwingConstants.LEFT ); container.add( picture ); wq.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) zwq z=new zwq(); setVisible( false ); ); if(z=1) yidong.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) yidong y = new yidong(1); setVisible( false ); ); if(z=2) yidong.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) yidong y = new yidong(2); setVisible( false ); ); if(z=3) yidong.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) yidong y = new yidong(3); setVisible( false ); ); setSize(500, 500); setVisible( true ); 在zhandou这个类中分支较多,根据传过来的参数决定,之前选择的机体是哪个,并且靠按钮决定是进入移动界面还是攻击界面。例如,我们选择的是第一架机体飞翼零式改(EW),那么当我们点击移动按钮的时候运行yidong y = new yidong(1);当我们点击武器按钮的时候运行:fwq f=new fwq();其他机体运行gwq或zwq。6. 若现在我们点击的是移动按钮,那么进入yidong 类,同样在这个类中也要区分之前选择的机体,所以依旧在构造函数时候有参数的设置。 import java.awt.*;import java.awt.event.*;import javax.swing.*;public class yidong extends JFramepublic JButton qianjin,houtui;public yidong(String jj)super(选择移动);Container container = getContentPane(); container.setLayout( new FlowLayout() ); Icon dqianjin = new ImageIcon( 0qianjin.jpg ); Icon dhoutui = new ImageIcon( 0houtui.jpg ); Icon godqianjin = new ImageIcon( godqianjin.jpg ); Icon godhoutui = new ImageIcon( godhoutui.jpg ); Icon ziyouqianjin = new ImageIcon( ziyouqianjin.jpg ); Icon ziyouhoutui = new ImageIcon( ziyouhoutui.jpg );if(jj=1) qianjin = new JButton(,dqianjin); houtui = new JButton(,dhoutui); qianjin.setToolTipText( 前进 ); houtui.setToolTipText( 后退 ); container.add(qianjin); container.add(houtui); qianjin.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) feiyi a= new feiyi(yidong,-1); setVisible( false ); ); houtui.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) feiyi a= new feiyi(yidong,1); setVisible( false ); ); if(jj=2)qianjin = new JButton(,ziyouqianjin); houtui = new JButton(,ziyouhoutui); container.add(qianjin); qianjin.setToolTipText( 前进 ); houtui.setToolTipText( 后退 ); container.add(houtui); qianjin.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) ziyou aa= new ziyou(yidong,-1); setVisible( false ); ); houtui.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) ziyou ga= new ziyou(yidong,1); setVisible( false ); ); if(jj=3) qianjin = new JButton(,godqianjin); houtui = new JButton(,godhoutui); qianjin.setToolTipText( 前进 ); houtui.setToolTipText( 后退 ); container.add(qianjin); container.add(houtui); qianjin.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) god aaa= new god(yidong,-1); setVisible( false ); ); houtui.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) god za= new god(yidong,1); setVisible( false ); ); setSize(620, 300); setVisible( true );选择前进或者后退,分别运行feiyi a= new feiyi(yidong,-1); feiyi a= new feiyi(yidong,1);同样其他2架机体也有分别对应的god与ziyou。此处”yidong ”是用来告诉feiyi这个方法,我们选择的是移动指令-1是距离减1,代表距离靠近。7. 若选择武器按钮进入public class fwq extends JFramepublic JButton Button1,Button2,Button3;public fwq()super(武器选择);Container container = getContentPane(); container.setLayout( new FlowLayout() );Icon jwq = new ImageIcon( 1hao.jpg ); Icon zwq = new ImageIcon( 2hao.jpg ); Icon ywq = new ImageIcon( 3hao.jpg ); Icon diaomao2 = new ImageIcon( diaomao2hao.jpg ); Icon shenwuqi = new ImageIcon( shenwuqi.jpg );Button1=new JButton(,jwq); Button1.setToolTipText( 光束军刀,近距离格斗,远距离无效 ); Button2=new JButton(,diaomao2); Button2.setToolTipText( 机关加农炮,中距离 ); Button3=new JButton(,ywq); Button3.setToolTipText( 2连爆发光束步枪全能射击,远距离射击,近距离无效 ); container.add(Button1); container.add(Button2); container.add(Button3); Button1.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) feiyi a= new feiyi(1,0); setVisible( false ); ); Button2.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) feiyi a= new feiyi(2,0); setVisible( false ); ); Button3.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) feiyi a= new feiyi(3,0); setVisible( false ); ); setSize( 500, 130 ); setVisible( true ); 选择对应的武器运行feiyi a= new feiyi(3,0); 其中3代表武器编号,0代表不移动,选择的是武器选项.8. feiyi类public class feiyi extends JFramepublic static int whp=5000;public static int dhp=5000;public static double zdjl=2,b;public JLabel Whp,Dhp,text1,text2,picture;public JButton huihe;public feiyi()public feiyi(String WQ,double juli)super(SD敢达G世纪战争1);Container container = getContentPane(); container.setLayout( new FlowLayout() ); Whp=new JLabel(我军HP+whp);container.add(Whp);Dhp=new JLabel(敌军HP+dhp);container.add(Dhp);text1=new JLabel(战斗距离+zdjl);container.add(text1); huihe=new JButton(回合结束);container.add(huihe);Icon d01 = new ImageIcon( d01.jpg ); Icon d02 = new ImageIcon( d02.jpg ); Icon d03 = new ImageIcon( d03.jpg );huihe.addActionListener ( new ActionListener() public void actionPerformed(ActionEvent event) setVisible( false); dfxd(zdjl); if(dhp=0) win w=new win(); else if(whp=3) zdjl=3;if(zdjl=1) zdjl=1;if(zdjl=2) zdjl=2;b=zdjl;if(WQ=1) picture = new JLabel( , d01, SwingConstants.LEFT ); container.add( picture ); if(b=3)dhp=dhp; else dhp=dhp-500; if(WQ=2) picture = new JLabel( , d02, SwingConstants.LEFT ); container.add( picture ); if(b=3)dhp=dhp-1000; else dhp=dhp-500; if(WQ=3) picture = new JLabel( , d03, SwingConstants.LEFT ); container.add( picture ); if(b=3)dhp=dhp-1250; else dhp=dhp-750; setSize( 500, 300 ); setVisible( true ); public void dfxd(double a) int c=0;int randomValue = 1 + ( int ) ( Math.random() * 5 );switch(randomValue)case 1: zdjl=zdjl-1;break; case 2: zdjl=zdjl+1;break; case 3:whp=whp-500; break; case 4:whp=whp-800;break; case 5:whp=whp-1000;break; 由参数”yidong”,”1”,”2”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成考和统考试卷及答案
- 员工安全注意事项讲解
- 新质生产力发展的挑战与对策
- 采油厂新质生产力实践路径
- 单位安全培训规定讲解
- 新质生产力的发展方向探析
- 新质生产力赋能上虞新发展
- 医患关系五避免原则
- 乒乓球比赛策划方案
- 2025年内科心律失常药物治疗考试答案及解析
- 钢结构大棚安拆专项施工方案
- 消化内科护士进修总结汇报
- 人教版初中全部英语单词表(含音标)
- 全国中小学生学籍信息管理系统学生基本信息采集表(2022修订版)
- DL∕T 5461.11-2013 火力发电厂施工图设计文件内容深度规定 第11部分土建结构
- 《MH-T7003-2017民用运输机场安全保卫设施》
- CB-Z-239-1987一般排水量船模双桨自航试验方法
- 平安经营分析岗面试
- 《民航客舱设备操作与管理》课件-项目二 客舱服务设备
- 《心系国防 有你有我》国防教育主题班会课件
- 普通外科临床路径(2019年版)
评论
0/150
提交评论