zoukankan      html  css  js  c++  java
  • 在手机上动起来的文字

    主程序:

    /*
     * GameMIDlet.java
     *
     * Created on 2006年4月28日, 下午9:31
     
    */


    import javax.microedition.midlet.MIDlet;
    import javax.microedition.lcdui.*;
    import javax.microedition.lcdui.Display;
    import javax.microedition.midlet.MIDletStateChangeException;

    /**
     *
     * 
    @author  hero
     * 
    @version
     
    */

    public class GameMIDlet extends MIDlet
    {
         
    static GameMIDlet instance;
        
    static Display display;
        
    private GameScreen gameScreen;
        
    public GameMIDlet()
        
    {
             instance 
    = this;
            gameScreen 
    = new GameScreen(false); //产生实例
            display = Display.getDisplay(this);
        }

        
    protected void startApp() throws MIDletStateChangeException 
        
    {
           gameScreen.start();
    // 启动线程,不知道什么原因,在这一句出现stop的现象,有可能是自己用F5时,设置了断点
           display.setCurrent(gameScreen);
        }

        
         
    protected void pauseApp()
        
    {
            gameScreen.stop();
        }

        
        
    public void destroyApp(boolean flag) throws MIDletStateChangeException
        
    {
            gameScreen.stop();
        }

       
    }

    次程序:
    /*
     * GameScreen.java
     *
     * Created on 2006年4月28日, 下午10:22
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     
    */


    import javax.microedition.lcdui.*;
    import javax.microedition.lcdui.game.*;
    import java.util.Random;
    /**
     *
     * 
    @author hero
     
    */

     
    final  class GameScreen extends GameCanvas implements Runnable
    {
        
        
    /** Creates a new instance of GameScreen */
          
    private Graphics graphics; //保存图形环境实例
        private boolean runningFlag = false//线程运行标志
        private static final long TIME_PER_FRAME = 100;// 每一帧的周期
        private int width;//屏幕宽度
        private int height;//屏幕高度
        private Random random = new Random(); //设置一个随机数;
        public static final int BLUE = 0x000000ff;
        
    private int x,y,vx,vy;
        String str
    ="J2ME游戏世界";
        
    public GameScreen(boolean flag)
        
    {
            
    super(flag);
            graphics 
    = getGraphics();//取得图形环境实例
            width = getWidth();
            height 
    = getHeight();
            init();
         }

        
    void  init()
        
    {
              x
    =width/2;
            y
    =height/2;
            vx
    =random.nextInt(2)+1;//nextInt(int i)定义在cldc 1.1中
            vy=random.nextInt(2)+1;
                 
        }

        
    private void input()
        
    {
            
        }

        
    private void logic()
        
    {
            x
    +=vx;
            y
    +=vy;
            Font font
    =graphics.getFont();
            
    if(x<=0||x+font.stringWidth(str)>=width){
                vx
    =-vx;
            }

            
    if(y<=0||y+20>=height){
                vy
    =-vy;
            }

          
        }

        
    private void render(Graphics g)
        
    {
            g.setColor(BLUE);
            g.fillRect(
    00, width, height);
            g.setColor(
    0x00ffffff);
            g.drawString(str,x,y,Graphics.LEFT
    |Graphics.TOP);
        }

        
    public synchronized void start()
        
    {
            
    if (!runningFlag) {
                runningFlag 
    = true;
                Thread th 
    = new Thread(this);//启动线程
                th.start();
            }

        }

        
    public synchronized void stop()
        
    {
            runningFlag
    =false;
        }

        
    public void run()
        
    {

            
    while(runningFlag)
            
    {
                
    long startTime=System.currentTimeMillis();
                input();
                logic();
                render(graphics);
                flushGraphics();
                
    long elapsedTime = System.currentTimeMillis() - startTime;
                
    if(elapsedTime < TIME_PER_FRAME)
                
    {
                    
    try
                    
    {
                        Thread.sleep(TIME_PER_FRAME
    -elapsedTime);
                    }

                    
    catch(InterruptedException ex)
                    
    {
                        
                    }

                }

            }

        }

    }
      
        

  • 相关阅读:
    【BZOJ1924】【SDOI2010】所驼门王的宝藏(Tarjan,SPFA)
    【BZOJ1975】【SDOI2010】魔法猪学院(搜索,A*,贪心)
    【BZOJ1008】【HNOI2008】越狱(组合数学)
    【HNOI2004】敲砖块(动态规划)
    【Luogu1919】 A*B Problem升级版(FFT)
    【Luogu3803】多项式乘法FFT(FFT)
    【Luogu3919】可持久化数组(主席树)
    【NOIP2016】换教室(动态规划)
    【NOIP2015】斗地主(搜索,贪心)
    【NOIP2015】子串(动态规划)
  • 原文地址:https://www.cnblogs.com/Dreamfly/p/388479.html
Copyright © 2011-2022 走看看