实例介绍
【实例截图】
【核心代码】
package nonoocean.MainPlayFrame; import nonoocean.Scene.*; import nonoocean.Bombs.*; import nonoocean.Tools.*; import nonoocean.Buildings.BuildingManager; import nonoocean.Dialog.*; import nonoocean.Element.*; import nonoocean.WholeControl.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class PlayPanel extends JPanel implements Runnable,MouseListener,MouseMotionListener,KeyListener,WindowListener { //background调试 只调用init()函数即可开始游戏 public static boolean ispause=false; boolean shouldDrawBlood=false; SunNumber sunnumber=new SunNumber(); private Select_menuDialog dialog=null; private CardManager cardmanager=new CardManager(); private SunManager sunmanager=new SunManager(); private ZonbieManager zonbieManager=new ZonbieManager(); private Background background=new Background(cardmanager,sunmanager,zonbieManager); private CardListener cardlistener=new CardListener(cardmanager); private BuildingManager buildingManager=new BuildingManager(cardlistener); private BombManager bombManager=new BombManager(); private WholeControlManager controlManager=new WholeControlManager(zonbieManager, buildingManager, bombManager,this); public Home home=new Home(); AreaTest areaTest=new AreaTest(); public GamePanel gp; //组建 JButton jb_menu; Image image_menu,image_menu1; //调试变量 smallZobie z; public PlayPanel(GamePanel gp){ super(); setLayout(null); this.gp=gp; this.addMouseListener(this); this.addMouseMotionListener(this); addMenuButton(); //调试变量 jb_menu.setEnabled(false); showme(); // z=new smallZobie(); // // bg.init(); } private void addMenuButton(){ image_menu=ImageLoad.loadImage("Dialog\\Dialog_mainmenu.png"); image_menu1=ImageLoad.loadImage("Dialog\\Dialog_mainmenu1.png"); jb_menu=new JButton(); jb_menu.setIcon(new ImageIcon(image_menu)); jb_menu.setPressedIcon(new ImageIcon(image_menu1)); jb_menu.setCursor(new Cursor(Cursor.HAND_CURSOR)); jb_menu.setContentAreaFilled(false); jb_menu.setIgnoreRepaint(true); jb_menu.setBorder(null); jb_menu.setBounds(690, 1, image_menu.getWidth(null), image_menu.getHeight(null)); jb_menu.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { PlayPanel.ispause=true; if(dialog==null){ dialog=new Select_menuDialog(gp.pf, true, returnme(),getX() 150,getY() 50); } else { dialog.setLocation(getX() 150,getY() 50); dialog.show(); } } }); add(jb_menu); } public PlayPanel returnme(){ PlayPanel pp=this; return pp; } public void showme(){ setBackground(Color.RED); setLayout(null); } public void switchToEnd(){ gp.switchToEnd(); } public void switchToMenu(){ gp.switchToMenu(); } //初始化函数 public void init(){ PlayPanel.ispause=false; Thread t=new Thread(this); t.start(); sunnumber.init(); cardmanager.init(); background.init(); sunmanager.init(); buildingManager.init(); bombManager.init(); home.init(); jb_menu.setEnabled(false); } //暂时调试 public void paintComponent(Graphics g){ super.paintComponent(g); g.drawImage(background.getImage_background(), 690, 0, 800, 600, 915, 0, 1025, 600, null); } public void paint(Graphics g){ super.paint(g); background.drawBackground(g); if(background.laying.laying_end){ cardmanager.drawCard(g); sunnumber.drawNum(g); buildingManager.drawBuildings(g, true); zonbieManager.drawAllZonbie(g, true); cardlistener.drawMoveImage(g); bombManager.drawAllBomb(g); home.drawme(g); sunmanager.drawAllSun(g); if(!jb_menu.isEnabled())jb_menu.setEnabled(true); } // for(int i=0;i<5;i ){ // g.fillOval(690, 150, 5, 5); // g.fillOval(690, 247, 5, 5); // g.fillOval(690, 344, 5, 5); // g.fillOval(690, 441, 5, 5); // g.fillOval(690, 538, 5, 5); // } } @Override public void run() { // TODO Auto-generated method stub while(true){ try { Thread.sleep(20); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } this.repaint(); } } @Override public void mouseDragged(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseMoved(MouseEvent arg0) { // TODO Auto-generated method stub if(background.laying.laying_end){ cardlistener.setMouveInfo(arg0.getX(), arg0.getY()); cardlistener.judgeWhatShouldDraw(arg0.getX(), arg0.getY()); if(sunmanager.istouch(arg0.getX(), arg0.getY()))setCursor(new Cursor(Cursor.HAND_CURSOR)); else setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); } } @Override public void mouseClicked(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub if(background.laying.laying_end){ if(e.getModifiers()==InputEvent.BUTTON1_MASK){ cardlistener.judgeShouldDraw(e.getX(), e.getY()); sunmanager.setclick(e.getX(), e.getY()); buildingManager.setBuiding(e.getX(), e.getY()); } if(e.getModifiers()==InputEvent.BUTTON3_MASK){ cardlistener.judgeShouldDraw(75, 0); buildingManager.setBuiding(0, 0); } } } @Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void keyPressed(KeyEvent arg0) { // TODO Auto-generated method stub if(arg0.getKeyCode()==KeyEvent.VK_ALT){ shouldDrawBlood=true; } } @Override public void keyReleased(KeyEvent arg0) { // TODO Auto-generated method stub shouldDrawBlood=false; } @Override public void keyTyped(KeyEvent arg0) { // TODO Auto-generated method stub } public void contentPane_mouseClicked(MouseEvent e) { int mods = e.getModifiers(); //鼠标右键 if ((mods & InputEvent.BUTTON3_MASK) != 0) { System.out.println("鼠标右键"); } } @Override public void windowActivated(WindowEvent e) { // TODO Auto-generated method stub System.out.println("窗口活动"); PlayPanel.ispause=false; } @Override public void windowClosed(WindowEvent e) { // TODO Auto-generated method stub System.out.println("窗口关闭"); } @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowDeactivated(WindowEvent e) { // TODO Auto-generated method stub System.out.println("窗口不活动"); PlayPanel.ispause=true; } @Override public void windowDeiconified(WindowEvent e) { // TODO Auto-generated method stub System.out.println("窗口从最小化恢复"); } @Override public void windowIconified(WindowEvent e) { // TODO Auto-generated method stub System.out.println("窗口最小化"); } @Override public void windowOpened(WindowEvent e) { // TODO Auto-generated method stub System.out.println("窗口打开"); } }
标签:
相关软件
网友评论
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
支持(0) 盖楼(回复)