期末设计(十三周)
2016-05-27 16:05
393 查看
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(); } }
相关文章推荐
- 期末设计(十二周)
- Zookeeper实战之单机集群模式
- 跟我一起学Microsoft SQL Server 2012 Internals(3.3)
- 14.6 守护线程
- DELPHI中EXCEL组件的使用方法
- sparkStreaming的工作原理
- JavaScript 教程
- 354 div2 C:两指针滑动区间
- Partition List
- gson框架的使用
- 柴俊理金:5月27号黄金,宁贵沥青操作建议
- MSSQL事务与视图
- 关于在extjs中使用column布局,不能显示textfield的标签(fieldLabel)解决方法
- 初学linux命令-mkdir、rm、rmdir、mv
- jquery动态添加数据,数据分页
- 获取汉字拼音首字母
- 14.5 wait和notify方法 停止线程
- AFNetworking 新版本3.0的迁移
- 期末设计(十三周)
- 刷题记录20160527