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)
                    
    {
                        
                    }

                }

            }

        }

    }
      
        

  • 相关阅读:
    实例属性 类属性 实例域 类域
    研究数据集
    static 静态域 类域 静态方法 工厂方法 he use of the static keyword to create fields and methods that belong to the class, rather than to an instance of the class 非访问修饰符
    accessor mothod mutator mothod 更改器方法 访问器方法 类的方法可以访问类的任何一个对象的私有域!
    上钻 下钻 切片 转轴 降采样
    识别会话
    Performance Tuning Using Linux Process Management Commands
    Secure Hash Algorithm 3
    grouped differently across partitions
    spark 划分stage Wide vs Narrow Dependencies 窄依赖 宽依赖 解析 作业 job stage 阶段 RDD有向无环图拆分 任务 Task 网络传输和计算开销 任务集 taskset
  • 原文地址:https://www.cnblogs.com/Dreamfly/p/388479.html
Copyright © 2011-2022 走看看