实例介绍
【实例截图】
【核心代码】
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) 盖楼(回复)