期末设计(十三周)
2016-05-27 16:03
399 查看
import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; package cumin.planewar; import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; public class MainFrame extends JFrame { /** * @param args */ public static final int FRAME_HEIGHT = 800; public static final int FRAME_WIDIH = 480; Image cacheImage = null; private Image background = null; private Image wait = null; private Image result = null; //手柄控制类 Handle controller = null; /** * 游戏窗口显示构造函数 */ public MainFrame() { // 游戏窗口 this.setLocation(0, 0); this.setSize(FRAME_WIDIH, FRAME_HEIGHT); this.setDefaultCloseOperation(EXIT_ON_CLOSE); background = Toolkit.getDefaultToolkit().createImage("res/背景.png"); wait = Toolkit.getDefaultToolkit().createImage("res/暂停界面.png"); result = Toolkit.getDefaultToolkit().createImage("res/result_t.png"); // 游戏窗口监听器 this.addKeyListener(new MyKeyListener()); // 游戏开始 this.setVisible(true); } @Override public void paint(Graphics g) { if (controller.getGameState() == Handle.GAMESTATE_START) controller.onDraw(g); else if (controller.getGameState() == Handle.GAMESTATE_STOP) { g.drawImage(result, FRAME_WIDIH / 2 - 160, FRAME_HEIGHT / 2 - 115, null); g.drawString("" + controller.getScore(), FRAME_WIDIH / 2 - 10, FRAME_HEIGHT / 2); } } @Override public void update(Graphics g) { // super.update(g); if (cacheImage == null) cacheImage = this.createImage(FRAME_WIDIH, FRAME_HEIGHT); Graphics gCacheImage = cacheImage.getGraphics(); gCacheImage.drawImage(background, 0, 0, FRAME_WIDIH, FRAME_HEIGHT, null); this.paint(gCacheImage); g.drawImage(cacheImage, 0, 0, null); } public static void main(String[] args) { // 主游戏开启 MainFrame mf = new MainFrame(); } }
相关文章推荐
- 刷题记录20160527
- 如何利用c++编写不能被继承、但可以在类外定义对象的类
- 列出100个质数
- Java 教程
- mac 隐藏Dock
- 线程池实例:使用Executors和ThreadPoolExecutor
- Less相关
- Android画图Path的使用
- 14.4 线程的通讯
- Delphi之窗
- sql server 2012 数据库日志文件过大,怎么缩小?
- GIT相关文档
- 期末设计(十二周)
- 图像仿射变换解析
- php mysql
- 死锁的理解
- 为什么对多线程编程这么怕?pthread,sem,mutex,process
- SSRS 参数 单选 多选
- hive 常用关系运算符
- ubuntu 16.04 卸载php7.0 安装 php5.6