LogoCanvas.java
上传用户:jinxueyang
上传日期:2016-05-15
资源大小:104k
文件大小:2k
源码类别:

J2ME

开发平台:

Java

  1. package game;
  2. import javax.microedition.lcdui.*;
  3. public class LogoCanvas extends Canvas implements Runnable 
  4. {
  5. //display对象
  6. private Display display;
  7. //线程
  8. private Thread thread;
  9. //图片对象
  10. private Image image;
  11. //是否显示文字
  12. private boolean flag = true;
  13. //提示文字
  14. private String info = "按任意键继续...";
  15. private int logoNum = 0;
  16. public LogoCanvas(Display display, int logoNum)
  17. {
  18. this.display = display;
  19. this.logoNum = logoNum;
  20.         //设置全屏
  21. this.setFullScreenMode(true);
  22. //导入图片
  23. try
  24. {
  25. image = Image.createImage("/res/logo" + logoNum + ".png");
  26. }
  27. catch (Exception e)
  28. {}
  29. //启动线程
  30. thread = new Thread(this);
  31. thread.start();
  32. }
  33. protected void paint(Graphics g)
  34. {
  35. g.drawImage(image, 0, 0, Graphics.TOP | Graphics.LEFT);
  36. if (flag)
  37. {
  38. g.setColor(0xffffff);
  39. g.drawString(info, 50, 140, Graphics.LEFT | Graphics.TOP);
  40. }
  41. }
  42. protected void keyPressed(int keyCode)
  43. {
  44. //按任意键继续
  45. thread = null;
  46. image = null;
  47. if ( logoNum == 1 )
  48. {
  49. display.setCurrent(new LogoCanvas(display, 2));
  50. }
  51. else
  52. {
  53.     //显示游戏菜单界面
  54.     display.setCurrent(new MainMenuCanvas(display));
  55. }
  56. }
  57. public void run()
  58. {
  59. //获得当前运行的线程
  60. Thread curr = Thread.currentThread();
  61. int i = 0;
  62. while (curr == thread)
  63. {
  64. //暂停0.3秒
  65. try
  66. {
  67. Thread.sleep(300);
  68. }
  69. catch (Exception e) 
  70. {}
  71. //记数
  72. i++;
  73. //改变文字显示的状态
  74. flag = !flag;
  75. //如果暂停满3秒,则切换屏幕
  76. if (i == 9)
  77. {
  78. thread = null;
  79. image = null;
  80. if ( logoNum == 1 )
  81. {
  82. display.setCurrent(new LogoCanvas(display, 2));
  83. }
  84. else
  85. {
  86.     //显示游戏菜单界面
  87.     display.setCurrent(new MainMenuCanvas(display));
  88. }
  89. }
  90. //重新绘制
  91. repaint();
  92. }
  93. }
  94. }