国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

2D繪畫操作中的坐標系統變換

2019-11-18 16:06:04
字體:
來源:轉載
供稿:網友

2D繪畫操作中的坐標系統變換

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

public class Translate extends MIDlet
{
  PRivate Display  display;     // The display
  private TranslateCanvas canvas;   // Canvas 
  public Translate()
  {
    display = Display.getDisplay(this);
    canvas  = new TranslateCanvas(this);
  }
  protected void startApp()
  {
    display.setCurrent( canvas );
  }
  protected void pauseApp()
  { }

  protected void destroyApp( boolean unconditional )
  { }
  public void exitMIDlet()
  {
    destroyApp(true);
    notifyDestroyed();
  }
}

/*--------------------------------------------------
* Class Translate
*
* Draw image using translated coordinates
*-------------------------------------------------*/
class TranslateCanvas extends Canvas implements CommandListener
{
  private Command cmExit;  // Exit midlet
  private Translate midlet;
  private Image im = null;
  private int translatex = 0, translatey = 0;
  public TranslateCanvas(Translate midlet)
  {
    this.midlet = midlet;
    // Create exit command & listen for events
    cmExit = new Command("Exit", Command.EXIT, 1);
    addCommand(cmExit);
    setCommandListener(this);

    try
    {
      // Create immutable image
      im = Image.createImage("/bolt.png");
    }
    catch (java.io.IOException e)
    {
      System.err.println("Unable to locate or read .png file");
    }    
  } 

  protected void paint(Graphics g)
  {
    if (im != null)
    {
      // Clear the background
      g.setColor(255, 255, 255);
      g.fillRect(0, 0, getWidth(), getHeight());
      // Translate coordinates
      g.translate(translatex, translatey);      
      // Always draw at 0,0
      g.drawImage(im, 0, 0, Graphics.LEFT  Graphics.TOP);
    }
  }

  public void commandAction(Command c, Displayable d)
  {
    if (c == cmExit)
      midlet.exitMIDlet();
  }
  protected void keyPressed(int keyCode)
  {
    switch (getGameAction(keyCode))
    {
      case UP: 
        // If scrolling off the top, roll around to bottom
        if (translatey - im.getHeight() < 0)
          translatey = getHeight() - im.getHeight();
        else
          translatey -= im.getHeight();          
        break;
      case DOWN:

        // If scrolling off the bottom, roll around to top
        if ((translatey + im.getHeight() + im.getHeight()) > getHeight())
          translatey = 0;
        else
          translatey += im.getHeight();          
        break;
      case LEFT:
        // If scrolling off the left, bring around to right
        if (translatex - im.getWidth() < 0)
          translatex = getWidth() - im.getWidth();
        else
          translatex -= im.getWidth();          
        break;

      case RIGHT:
        // If scrolling off the right, bring around to left
        if ((translatex + im.getWidth() + translatex) > getWidth())
          translatex = 0;
        else
          translatex += im.getWidth();          
        break;
    }        
    repaint();
  }
}


(出處:http://m.survivalescaperooms.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陆川县| 明星| 高要市| 东兴市| 太保市| 绥宁县| 娄烦县| 永康市| 新和县| 六安市| 洪湖市| 连南| 门头沟区| 凌云县| 望奎县| 太谷县| 龙游县| 台中市| 宜春市| 寿阳县| 嘉荫县| 陆良县| 金山区| 丹江口市| 宝应县| 黄大仙区| 卓尼县| 南昌县| 乐都县| 南岸区| 峨眉山市| 镇坪县| 襄汾县| 绩溪县| 高陵县| 宁陵县| 盐池县| 喜德县| 五台县| 阳山县| 盐山县|