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();
            }

        }

        
    }


  • 相关阅读:
    数据库连接JOIN
    Java面试金典
    Collections.sort详解
    Java复合优先于继承
    js算术运算符与数据类型转换
    js数组类型
    js对象类型
    CSS-API(CSS编程接口),CSSOM(css对象模型)
    从零开始--单片机十字路口交通灯控制实验
    matlab用双重循环实现费诺编码
  • 原文地址:https://www.cnblogs.com/Dreamfly/p/392039.html
Copyright © 2011-2022 走看看