⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.java

📁 一个简单的游戏程序
💻 JAVA
字号:
package pushbook;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import pushbook.core.*;


/**
 * <p>Title: 推箱子</p>
 * <p>Description: 主窗口</p>
 * <p>Copyright: 无版权</p>
 * <p>Company: 松原市第五高级中学</p>
 * @author 郑雪
 * @version 1.0
 */
public class MainFrame extends JFrame
{
    //游戏控制器
    public ControlCenter gameControlCenter = null;
    public DrawCenter gameDrawCenter = null;

    //图片更新计数器
    private static int imageUpdateConter = 0;

    Button nextLevel = new Button();
    Button privLevel = new Button();

    //Construct the frame
    public MainFrame()
    {
        gameDrawCenter = new DrawCenter();
        gameControlCenter = new ControlCenter();
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);
        try
        {
            jbInit();
            gameControlCenter.loadResource(this);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }

    //Component initialization
    private void jbInit() throws Exception
    {
        nextLevel.setBackground(Color.pink);
        nextLevel.setFont(new java.awt.Font("宋体", 1, 12));
        nextLevel.setForeground(Color.red);
        nextLevel.setLabel("下一关");
        nextLevel.setLocale(java.util.Locale.getDefault());
        nextLevel.setBounds(new Rectangle(692, 294, 74, 26));
        nextLevel.addKeyListener(new MainFrame_nextLevel_keyAdapter(this));
        nextLevel.addMouseListener(new MainFrame_nextLevel_mouseAdapter(this));
        this.getContentPane().setBackground(Invariable.gameMainBg);
        this.setForeground(Color.gray);
        this.setResizable(false);
        this.setSize(new Dimension(Invariable.windowWidth, Invariable.windowHeight));
        this.setState(Frame.NORMAL);
        this.setTitle(Invariable.mainTitle);
        this.getContentPane().setLayout(null);
        this.addKeyListener(new MainFrame_this_keyAdapter(this));
        privLevel.setBackground(Color.pink);
        privLevel.setFont(new java.awt.Font("宋体", 1, 12));
        privLevel.setForeground(Color.red);
        privLevel.setLabel("上一关");
        privLevel.setBounds(new Rectangle(618, 294, 73, 26));
        privLevel.addMouseListener(new MainFrame_privLevel_mouseAdapter(this));
        privLevel.addKeyListener(new MainFrame_privLevel_keyAdapter(this));
        this.getContentPane().add(nextLevel, null);
        this.getContentPane().add(privLevel, null);
    }

    public void paint(Graphics g)
    {
        super.paint(g);
        gameDrawCenter.reDrawAll(this);
        if(gameControlCenter.gameover)
            gameDrawCenter.drawEndText(this.getGraphics(),gameControlCenter.endImage,this);
    }

    public boolean imageUpdate(Image img,int infoflags,int x,int y,int w,int h)
    {
        if((infoflags & ALLBITS) !=0)
        {
            imageUpdateConter ++;
            if(imageUpdateConter >= gameControlCenter.haveImageElement +
               gameControlCenter.activeElement)
            {
                gameDrawCenter.reDrawAll(this);
            }
            if(gameControlCenter.levelIndex != 0) this.repaint();
        }
        return (infoflags & (ALLBITS | ERROR| ABORT)) == 0;
    }

    public void repaint()
    {
        gameDrawCenter.reDrawAll(this);
        if(gameControlCenter.gameover)
            gameDrawCenter.drawEndText(this.getGraphics(),gameControlCenter.endImage,this);
    }


    //Overridden so we can exit when window is closed
    protected void processWindowEvent(WindowEvent e)
    {
        super.processWindowEvent(e);
        if (e.getID() == WindowEvent.WINDOW_CLOSING)
        {
            System.exit(0);
        }
    }

    void on_keyPressed(KeyEvent e)
    {
        if(gameControlCenter.pressKey(e.getKeyCode()))
            gameDrawCenter.reDrawAll(this);
        if(gameControlCenter.canPass())
        {
            gameDrawCenter.drawUpLevelText(getGraphics(),gameControlCenter.gameCelebrate);
            gameControlCenter.nextLevel();
            this.setTitle(gameControlCenter.gameTitle);
            gameDrawCenter.reDrawAll(this);
            if(gameControlCenter.gameover)
            {
                MidiPlayer.getInstance("/resource/6.mid").changeFile("/resource/6.mid");
                MidiPlayer.getInstance("/resource/6.mid").start();
                gameDrawCenter.drawEndText(this.getGraphics(),gameControlCenter.endImage,this);
            }
        }
    }

    void nextLevel_mouseClicked(MouseEvent e)
    {
        gameDrawCenter.drawUpLevelText(getGraphics(),gameControlCenter.gameCelebrate);
        gameControlCenter.nextLevel();
        this.setTitle(gameControlCenter.gameTitle);
        this.paint(this.getGraphics());
        gameDrawCenter.reDrawAll(this);
        if(gameControlCenter.gameover)
        {
            MidiPlayer.getInstance("/resource/6.mid").changeFile("/resource/6.mid");
            MidiPlayer.getInstance("/resource/6.mid").start();
            gameDrawCenter.drawEndText(this.getGraphics(),gameControlCenter.endImage,this);
        }
    }
    void privLevel_mouseClicked(MouseEvent e)
    {
        gameControlCenter.privLevel();
        this.setTitle(gameControlCenter.gameTitle);
        this.paint(this.getGraphics());
        gameDrawCenter.reDrawAll(this);
    }

    void nextLevel_keyPressed(KeyEvent e)
    {
        on_keyPressed(e);
    }

    void privLevel_keyPressed(KeyEvent e)
    {
        on_keyPressed(e);
    }

}

class MainFrame_this_keyAdapter extends KeyAdapter
{
    MainFrame adaptee;

    MainFrame_this_keyAdapter(MainFrame adaptee)
    {
        this.adaptee = adaptee;
    }
    public void keyPressed(KeyEvent e)
    {
        adaptee.on_keyPressed(e);
    }
}

class MainFrame_nextLevel_mouseAdapter extends java.awt.event.MouseAdapter
{
    MainFrame adaptee;

    MainFrame_nextLevel_mouseAdapter(MainFrame adaptee)
    {
        this.adaptee = adaptee;
    }
    public void mouseClicked(MouseEvent e)
    {
        adaptee.nextLevel_mouseClicked(e);
    }
}

class MainFrame_nextLevel_keyAdapter extends java.awt.event.KeyAdapter
{
    MainFrame adaptee;

    MainFrame_nextLevel_keyAdapter(MainFrame adaptee)
    {
        this.adaptee = adaptee;
    }
    public void keyPressed(KeyEvent e)
    {
        adaptee.nextLevel_keyPressed(e);
    }
}

class MainFrame_privLevel_keyAdapter extends java.awt.event.KeyAdapter
{
    MainFrame adaptee;

    MainFrame_privLevel_keyAdapter(MainFrame adaptee)
    {
        this.adaptee = adaptee;
    }
    public void keyPressed(KeyEvent e)
    {
        adaptee.privLevel_keyPressed(e);
    }
}

class MainFrame_privLevel_mouseAdapter extends java.awt.event.MouseAdapter
{
    MainFrame adaptee;

    MainFrame_privLevel_mouseAdapter(MainFrame adaptee)
    {
        this.adaptee = adaptee;
    }
    public void mouseClicked(MouseEvent e)
    {
        adaptee.privLevel_mouseClicked(e);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -