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

📄 mansprite.java

📁 J2ME学习的好例子
💻 JAVA
字号:
 /**/ /* --------------------------------------------------
 * ManSprite.java
 *
 * 这个精灵可以通过调用moveLeft(), moveRight()
 * moveUp() and moveDown()方法在屏幕上移动
 *------------------------------------------------- */ 
 import  javax.microedition.lcdui.game. * ;
 import  javax.microedition.lcdui. * ;

 public   class  ManSprite  extends  Sprite   {

     private   int  x  =   0 , y  =   0 ,  //  当前的x,y坐标 
             previous_x, previous_y;  //  是一个x,y坐标 
 
     private   static   final   int  MAN_WIDTH  =   25 ;  //  精灵宽度 
 
     private   static   final   int  MAN_HEIGHT  =   25 ;  //  精灵高度 
 
      public  ManSprite(Image image)   {
         //  调用Sprite的构造函数 
          super (image);
    } 
 
      public   void  moveLeft()   {
         //  如果绿色的小人精灵没有碰到左边缘 
           if  (x  >   0 )   {
            saveXY();
             //  如果离左边界小与3,则置0,
             //  否则从当前位置减3 
             x  =  (x  <   3   ?   0  : x  -   3 );
            setPosition(x, y);
        } 
    } 
 
      public   void  moveRight( int  w)   {
         //  如果绿色的小人精灵没有碰到右边缘 
           if  ((x  +  MAN_WIDTH)  <  w)   {
            saveXY();
             //  如果当前横坐标加上精灵宽度超出了右边界,
             //  将当前位置设为最右边. 否则当前位置加3. 
             x  =  ((x  +  MAN_WIDTH  >  w)  ?  (w  -  MAN_WIDTH) : x  +   3 );
            setPosition(x, y);
        } 
    } 
 
      public   void  moveUp()   {
         //  如果绿色的小人精灵没有碰到上边缘 
           if  (y  >   0 )   {
            saveXY();
             //  如果离上边界小于3,则置为0
             //  否则从当前位置减. 
             y  =  (y  <   3   ?   0  : y  -   3 );
            setPosition(x, y);
        } 
    } 
 
      public   void  moveDown( int  h)   {
         //  如果绿色的小人精灵没有碰到下边缘 
           if  ((y  +  MAN_HEIGHT)  <  h)   {
            saveXY();
             //  如果当前纵坐标加上精灵高度超出了下边界,
             //  将当前位置设为最下边. 否则当前位置加3. 
             y  =  ((y  +  MAN_WIDTH  >  h)  ?  (h  -  MAN_WIDTH) : y  +   3 );
            setPosition(x, y);
        } 
    } 
 
      /**/ /* --------------------------------------------------
     * 保存x,y坐标用于碰撞检验
     *------------------------------------------------- */ 
      private   void  saveXY()   {
         //  将当前坐标缓存到上一坐标 
         previous_x  =  x;
        previous_y  =  y;
    } 
 
      /**/ /* --------------------------------------------------
     * 如果检验到碰撞发生,
     * 则返回上一坐标
     *------------------------------------------------- */ 
      public   void  restoreXY()   {
        x  =  previous_x;
        y  =  previous_y;
        setPosition(x, y);
    } 
}

⌨️ 快捷键说明

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