基本信息
源码名称:植物大战僵尸 游戏源码下载
源码大小:3.10M
文件格式:.rar
开发语言:Java
更新时间:2013-12-31
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 6 元 
   源码介绍

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("窗口打开");
	}

}