基本信息
源码名称:植物大战僵尸 游戏源码下载
源码大小:3.10M
文件格式:.rar
开发语言:Java
更新时间:2013-12-31
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 6 元×
微信扫码支付:6 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
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("窗口打开");
}
}