通过游戏代码学J2ME(二)

辅助类cover类
package npc7776;

import javax.microedition.lcdui.*;
import java.util.*;

/****************************************
 * 类功能介绍:启动显示封面,由main类调用,封面显示俩秒
 ****************************************/

public class cover
    extends Canvas {
  private planemain mainScreen = null;
  private Timer timer = null;
  Image img = null;
  public cover(planemain m) {
    mainScreen = m;
    timer = new Timer();
    TimerTask tsk = new TimerTask() {
      public void run() {
        mainScreen.goBack();//返回主窗口
      }
    };
    timer.schedule(tsk,2000);//注释一
  }
  public void paint(Graphics g){
    int width = getWidth();
    int height = getHeight();
    g.setColor(255,255,255);
    g.fillRect(0,0,width,height);//清屏
    try{
        img = Image.createImage("/res/cover.png");
    }catch (Exception e){}
    g.drawImage(img,width/2,height/2,Graphics.HCENTER|Graphics.VCENTER);
    
  }                          //注释二
}


注释:

一    .在构造类中有一个内嵌类TimerTask,他完成的run()方法,当执行时会调用主体类
的goBack()方法,而timer.schedule(tsk,2000)方法执行结果正是在2000毫秒后执行TimerTask
类的对象tsk的run()方法。关于J2ME中的定时器这里再详细的介绍一下,在J2ME中,定时器用于
在指定时间执行任务或者重复执行任务,J2ME中自MIDPv1.0开始就提供了对定时器的支持。要
使用定时器就要需要涉及到TIMER(定时器)类和TimerTask(定时器任务)类。TimerTask类是一个
虚类,用于实现一个具体的任务。Timer类用于通过定期执行由TimerTask对象表示的任务。要
使用定时器功能,就必须从TimerTask 类派生新类,并且重载void run()方法,然后通过Timer对
象来定时执行任务。

二    .我们可以看到cover继承了Canvas,那么当它构造完成后会主动执行本方法。他的主要目
的是实现显示一张图到显示区。这里介绍一下图像.创建Image对象不是通过对象的构造方法,
而是要通过调用Image类的createImage方法来实现的,如果图像是通过资源内的图像文件创建,
那么图像文件格式必须为PNG格式,因为在MIDP中只支持PNG格式的图像资源(MIDPv2.0中支持
透明的PNG图像)。一般把图像资源保存在工程下/res/下面。利用Graphics 输出图像时需要调
用的方法是 void drawImage(Image img,int x,int y,int anchor),此外,在MIDPv2.0中Graphics
类也添加了新的方法用于旋转图像,即void drawRegion(Image img,int x_src,int y_src,int width,
int height,int transform,int x_dest,int y_dest,int anchor),通过drawRegion 方法可以在
不创建新的图像对象的情况下输出旋转的图像。参数transform 表示旋转的方式,允许的取值为
       Sprite.TRANS_NONE 不旋转
       Sprite.TRANS_ROT90,Sprite.TRANS_ROT180,Sprite.TRANS_ROT270 顺时针旋转90,180,270
       Sprite.TRANS_MIRROR  沿水平线翻转
       Sprite.TRANS_MIRROR_ROT90,Sprite.TRANS_MIRROR_ROT180,Sprite.TRANS_MIRROR_ROT270
                沿水平线翻转后再顺时针旋转90度,180度,270度 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值