zoukankan      html  css  js  c++  java
  • 手机上可移动的图片

    main programm:ScrollScreen.java


    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;

    public class ScrollScreen extends MIDlet
    {
        
    private Display dispaly=null;
        
    public void startApp()
        
    {
            
    try
            
    {
                dispaly
    =Display.getDisplay(this);
                MainCanvas gameCanvas
    =new MainCanvas(this);
                gameCanvas.start();
                dispaly.setCurrent(gameCanvas);
            }

            
    catch(Exception ex)
            
    {
                ex.printStackTrace();
                
            }

        }

        
        
    public void pauseApp()
        
    {
        }

        
        
    public void destroyApp(boolean unconditional)
        
    {
        }

        
    public void exit()
        
    {
            System.gc();
            destroyApp(
    false);
            notifyDestroyed();
        }

    }


    Next Programm:MainCanvas.java
    import javax.microedition.lcdui.*;
    import javax.microedition.lcdui.game.*;


    //注意这extends的是GameCanvas而不是Canvas
    public class MainCanvas extends GameCanvas implements Runnable, CommandListener  
    {
        
    private ScrollScreen midlet = null;
        
    private boolean isPlay;
        
    private long delay; //线程休眠的时间间隔
        private int width; // 屏幕宽度
        private int height; //屏幕高度
        private int scnX, scnY; //可视窗口的左上角坐标
        
        Image backgroundImage;
        
    private Sprite backgroundSprite;
        
    private LayerManager layerManager;
        
        
    public static final Command exitCommand = new Command("退出",Command.EXIT, 1);
        
    public MainCanvas(ScrollScreen midlet)throws Exception
        
    {
            
            
    super(true);
            
    this.midlet = midlet;
            width 
    = getWidth();
            height 
    = getHeight();
            scnX 
    = 55;
            scnY 
    = 20;
            delay 
    = 20;
            backgroundImage 
    = Image.createImage("/background.png");
            backgroundSprite 
    = new Sprite(backgroundImage);
            layerManager 
    = new LayerManager();
            layerManager.append(backgroundSprite);
            
    this.addCommand(exitCommand);
            
    this.setCommandListener(this);
          
        }

        
    public void start()
        
    {
            isPlay
    =true;
            Thread t 
    =new Thread(this);
            t.start();
        }

        
    public void stop()
        
    {
            isPlay
    =false;
        }

        
    public void run()
        
    {
            Graphics g
    =getGraphics();
            
    while(isPlay==true)
            
    {
                input();
                drawScreen(g);
                
    try 
                
    {
                    Thread.sleep(delay);
                }

                
    catch(InterruptedException ie)
                
    {
                    
                }

            }

        }

        
    private void input()
        
    {
            
    int keyStates = getKeyStates();
            
    if((keyStates&LEFT_PRESSED)!=0)
            
    {
                
    if(scnX-1>0)
                
    {
                    scnX
    --;
                }

            }

                
    else if ((keyStates&RIGHT_PRESSED)!=0)
                
    {
                    
    if(scnX+1+140<backgroundImage.getWidth())
                    
    {
                        scnX
    ++;
                    }

                }

                
    else if((keyStates&UP_PRESSED)!=0)
                
    {
                    
    if(scnY-1>0)
                    
    {
                        scnY
    --;
                    }

                }

                
    else if((keyStates&DOWN_PRESSED)!=0)
                
    {
                    
    if(scnY+1+140<backgroundImage.getHeight())
                    
    {
                        scnY
    ++;
                    }

                }

          }

        
    private void drawScreen(Graphics g)
        
    {
            g.setColor(
    0xffffff);
            g.fillRect(
    0,0,getWidth(),getHeight());
            g.setColor(
    0x0000ff);
            layerManager.setViewWindow(scnX,scnY,
    140,140);
            layerManager.paint(g,
    20,20);
            flushGraphics();
        }

        
    public void commandAction(Command command, Displayable displayable)
        
    {
            
    if(command==exitCommand)
            
    {
                stop();
                midlet.exit();
            }

        }

        
    }


  • 相关阅读:
    centos文件与权限
    python执行centos命令
    Centos下新建用户及修改用户目录
    微信现金红包 python
    图像直方图
    十三种基于直方图的图像全局二值化算法原理、实现、代码及效果。
    图像处理之常见二值化方法汇总
    OpenCV中对图像进行二值化的关键函数——cvThreshold()。
    cvLoadImage
    cvGet2D的用法
  • 原文地址:https://www.cnblogs.com/Dreamfly/p/392039.html
Copyright © 2011-2022 走看看