亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bglayer.java

?? 手機(jī)藍(lán)牙驅(qū)動(dòng)和應(yīng)用實(shí)例源碼
?? JAVA
字號(hào):
// -------------------------------------------------------------------------------------------
// Multi direction scrolling class
// -------------------------------------------------------------------------------------------

import javax.microedition.lcdui.*;

class BGLayer
//    extends TiledLayer
{
	private static final int MAX_SCROLL_SPEED = 16;
	public int MAP_TILE_WIDTH;
	public int MAP_TILE_HEIGHT;
	public int MAP_WIDTH;
	public int MAP_HEIGHT;
	public int BG_WIDTH_IN_TILES;		// Of background (not map)
	public int BG_HEIGHT_IN_TILES;	// Of background (not map)
	public int BG_WIDTH;
	public int BG_HEIGHT;
	private int	TILE_WIDTH;			// Of single tile
	private int	TILE_HEIGHT;		// Of single tile
	public 	int xScroll;
	public	int yScroll;
	public	Image blockImage;
	public	Image bgImage;
	private	Graphics bgG;

	BGLayer(Image img, int tw, int th, int mtw, int mth)
	{
        TILE_WIDTH = tw;
        TILE_HEIGHT = th;
        xScroll = 0;
        yScroll = 0;
        MAP_TILE_WIDTH = mtw;
        MAP_TILE_HEIGHT = mth;
        MAP_WIDTH = mtw * tw;
        MAP_HEIGHT = mth * th;
        blockImage = img;
        bgImage = Image.createImage(GMCanvas.DISPLAY_WIDTH+16,GMCanvas.DISPLAY_HEIGHT+16);
        bgG = bgImage.getGraphics();
        BG_WIDTH  = bgImage.getWidth();
        BG_HEIGHT = bgImage.getHeight();
        BG_WIDTH_IN_TILES = BG_WIDTH/TILE_WIDTH;
        BG_HEIGHT_IN_TILES = BG_HEIGHT/TILE_HEIGHT;
	}

	// -------------------------------------------------------------------------------------------
	// Fill the background layer with tiles
	// -------------------------------------------------------------------------------------------
    public void scrollTiles(int[] level)
    {
		for (int row = 0; row < MAP_TILE_HEIGHT; row++)
		{
			for (int column = 0; column < MAP_TILE_WIDTH; column++)
			{
				this.setCell(column, row, level[(row*MAP_TILE_WIDTH)+column]);
			}
		}
    }

	// -------------------------------------------------------------------------------------------
	// Set an individual tile on the background
	// -------------------------------------------------------------------------------------------
    public void setCell(int c, int r, int i)
    {
    	i--;
    	if (i < 0) return;
		if (c >= (xScroll>>4) && c < ((xScroll>>4)+BG_WIDTH_IN_TILES)
		&& r >= (yScroll>>4) && r < ((yScroll>>4)+BG_HEIGHT_IN_TILES))
		{
			while (c >= BG_WIDTH_IN_TILES)
			{
				c-=BG_WIDTH_IN_TILES;
			}
			while (r >= BG_HEIGHT_IN_TILES)
			{
				r-=BG_HEIGHT_IN_TILES;
			}
			bgG.setClip(c<<4,r<<4,16,16);
			bgG.drawImage(blockImage,(c<<4)-(i<<4),r<<4,Graphics.TOP | Graphics.LEFT);
		}
    }

	// -------------------------------------------------------------------------------------------
    // Show the background
	// -------------------------------------------------------------------------------------------
    public void show(Graphics g, int width)
    {
		int x = xScroll,
			y = yScroll,
			ys = ((GMCanvas.yDisplay+GMCanvas.DISPLAY_HEIGHT)>GMCanvas.VIS_HEIGHT) ? GMCanvas.VIS_HEIGHT-GMCanvas.yDisplay : GMCanvas.DISPLAY_HEIGHT;

		while (x>=BG_WIDTH)
		{
			x-=BG_WIDTH;
		}
		while (y>=BG_HEIGHT)
		{
			y-=BG_HEIGHT;
		}

		// Show part one
		g.setClip(GMCanvas.xDisplay, GMCanvas.yDisplay, width, ys);
		g.drawImage(bgImage,GMCanvas.xDisplay-x,GMCanvas.yDisplay-y,Graphics.TOP | Graphics.LEFT);

		// If there is an X scroll to cater for
		if (BG_WIDTH-x < GMCanvas.DISPLAY_WIDTH)
		{
			g.setClip(GMCanvas.xDisplay+(BG_WIDTH-x), GMCanvas.yDisplay, GMCanvas.DISPLAY_WIDTH-(BG_WIDTH-x), ys);
			g.drawImage(bgImage,GMCanvas.xDisplay+(BG_WIDTH-x),GMCanvas.yDisplay-y,Graphics.TOP | Graphics.LEFT);
		}

		// There is a Y scroll to cater for
		if (BG_HEIGHT-y < GMCanvas.DISPLAY_HEIGHT)
		{
			g.setClip(GMCanvas.xDisplay, (GMCanvas.yDisplay-y)+BG_HEIGHT, width, GMCanvas.DISPLAY_HEIGHT-(BG_HEIGHT-y));
			g.drawImage(bgImage,GMCanvas.xDisplay-x, (GMCanvas.yDisplay-y)+BG_HEIGHT,Graphics.TOP | Graphics.LEFT);

			// The last one. Is there an X & Y scroll to cater for?
			if (BG_WIDTH-x < GMCanvas.DISPLAY_WIDTH)
			{
				g.setClip(GMCanvas.xDisplay+(BG_WIDTH-x), (GMCanvas.yDisplay-y)+BG_HEIGHT, GMCanvas.DISPLAY_WIDTH-(BG_WIDTH-x), GMCanvas.DISPLAY_HEIGHT-(BG_HEIGHT-y));
				g.drawImage(bgImage,GMCanvas.xDisplay+(BG_WIDTH-x),(GMCanvas.yDisplay-y)+BG_HEIGHT,Graphics.TOP | Graphics.LEFT);
			}

		}
    }

	// -------------------------------------------------------------------------------------------
    // Lift background 16 pixels and repaint bottom row
	// -------------------------------------------------------------------------------------------
//#ifdef midp2
    public void lift(int[] level)
    {
        Graphics bgG = bgImage.getGraphics();
    	bgG.setClip(0,0,BG_WIDTH,BG_HEIGHT);
    	bgG.copyArea(0,16,BG_WIDTH,BG_HEIGHT-16,0,0,Graphics.TOP | Graphics.LEFT);
    	int row = BG_HEIGHT_IN_TILES-1;
		for (int column = 0; column < BG_WIDTH_IN_TILES; column++)
		{
			this.setCell(column, row, level[(row*MAP_TILE_WIDTH)+column]);
		}
    }
//#endif


	// -------------------------------------------------------------------------------------------
    // Get the desired scroll velocity and pass it to the move function
	// -------------------------------------------------------------------------------------------
	public void desiredScrollPos(int x, int y,int[] level)
	{
		x -= xScroll;
		y -= yScroll;
		int vx = x / 4,
			vy = y / 4;
		if (x < 0 && vx == 0) vx = -1;
		if (x > 0 && vx == 0) vx = 1;
		if (y < 0 && vy == 0) vy = -1;
		if (y > 0 && vy == 0) vy = 1;
		if (vx < -MAX_SCROLL_SPEED) vx = -MAX_SCROLL_SPEED;
		if (vx >  MAX_SCROLL_SPEED) vx =  MAX_SCROLL_SPEED;
		if (vy < -MAX_SCROLL_SPEED) vy = -MAX_SCROLL_SPEED;
		if (vy >  MAX_SCROLL_SPEED) vy =  MAX_SCROLL_SPEED;
		move(vx,vy,level);
	}


	// -------------------------------------------------------------------------------------------
    // Move the background based on the x & y velocities passed in
	// -------------------------------------------------------------------------------------------
    public void move(int x, int y, int[] level)
    {
		int tempXScroll = (xScroll & 0x000f) + x,
			tempYScroll = (yScroll & 0x000f) + y,
			oldX = xScroll,
			oldY = yScroll;
		boolean bUpdate = false;

		xScroll += x;
        yScroll += y;

        if ((tempXScroll & 0x00f0) != 0)
        {
			if (xScroll < 0)
				xScroll = 0;
			else bUpdate = true;
		}
        if ((tempYScroll & 0x00f0) != 0)
        {
			if (yScroll < 0)
				yScroll = 0;
			else bUpdate = true;
		}
		if (GMCanvas.DISPLAY_WIDTH >= MAP_WIDTH) xScroll = 0;
		else
		if (xScroll >= (MAP_WIDTH - GMCanvas.DISPLAY_WIDTH)) xScroll = (MAP_WIDTH - GMCanvas.DISPLAY_WIDTH) - 1;
		if (GMCanvas.DISPLAY_HEIGHT >= MAP_HEIGHT) yScroll = 0;
		else
		if (yScroll >= (MAP_HEIGHT - GMCanvas.DISPLAY_HEIGHT)) yScroll = (MAP_HEIGHT - GMCanvas.DISPLAY_HEIGHT) - 1;

		// Only
		if (bUpdate && (oldX != xScroll)) setScrollX(xScroll>oldX, level);
		if (bUpdate && (oldY != yScroll)) setScrollY(yScroll>oldY, level);
    }


	// -------------------------------------------------------------------------------------------
    // Deal with a x scroll update
	// -------------------------------------------------------------------------------------------
	public void setScrollX(boolean right, int[] level)
	{
		// boolean right means we have moved right and need to fill the right edge
		int x = (right) ? (xScroll&0xfff0)+BG_WIDTH-16 : (xScroll&0xfff0),
			r = (right) ? (xScroll>>4)+(BG_WIDTH_IN_TILES-1) : (xScroll>>4),
			y = (yScroll&0xfff0);

		x = x>>4;
		y = y>>4;
		r += (y * MAP_TILE_WIDTH);
		for (int i = y; i < y+BG_HEIGHT_IN_TILES; i++)
		{
			this.setCell(x, i, level[r]);
			r+=MAP_TILE_WIDTH;
		}

	}

	// -------------------------------------------------------------------------------------------
    // Deal with a y scroll update
	// -------------------------------------------------------------------------------------------
	public void setScrollY(boolean down, int[] level)
	{
		// boolean right means we have moved right and need to fill the right edge
		int y = (down) ? (yScroll&0xfff0)+BG_HEIGHT-16 : (yScroll&0xfff0),
			c = (down) ? ((yScroll>>4)+(BG_HEIGHT_IN_TILES-1))*MAP_TILE_WIDTH : (yScroll>>4)*MAP_TILE_WIDTH,
			x = (xScroll&0xfff0);

		x = x>>4;
		y = y>>4;
		c += x;

		for (int i = x; i < x+BG_WIDTH_IN_TILES; i++)
		{
			this.setCell(i, y, level[c]);
			c++;
		}

	}


}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产综合91精品麻豆| 日韩国产欧美三级| 日韩欧美在线123| 91看片淫黄大片一级在线观看| 美女视频一区在线观看| 亚洲欧美日韩久久精品| 国产欧美日韩久久| 欧美sm美女调教| 欧美视频中文一区二区三区在线观看| 国产一区二区三区在线观看免费视频| 性做久久久久久免费观看欧美| 国产精品国产三级国产专播品爱网| 日韩午夜激情视频| 欧美日韩国产一级片| 99久久久久免费精品国产 | 亚洲乱码国产乱码精品精可以看| 国产精品久久网站| 久久婷婷国产综合精品青草| 欧美一区二区三区免费视频| 色婷婷久久一区二区三区麻豆| 成人动漫一区二区在线| 国产自产高清不卡| 九九热在线视频观看这里只有精品| 亚洲国产成人91porn| 一区二区三区 在线观看视频| 国产欧美日本一区视频| 久久久精品日韩欧美| 日韩欧美电影在线| 制服丝袜中文字幕亚洲| 欧美日韩在线播放三区| 在线精品国精品国产尤物884a| 成人黄色av电影| 岛国精品一区二区| 日韩精品久久理论片| 在线不卡的av| 99re在线精品| 成人av手机在线观看| 国产精品系列在线观看| 日韩欧美亚洲国产精品字幕久久久| 一区二区三区高清不卡| 不卡的av网站| 国产亚洲综合在线| 精品无人区卡一卡二卡三乱码免费卡| 久久蜜桃香蕉精品一区二区三区| 韩国精品主播一区二区在线观看 | 欧美精品一区二区三区蜜桃视频| 91精品国产乱| 色又黄又爽网站www久久| 色综合一个色综合| 欧美日韩久久不卡| 成人av动漫在线| 波多野结衣91| 日韩欧美电影在线| 欧美精品粉嫩高潮一区二区| 欧美mv和日韩mv的网站| 91精品国产一区二区三区香蕉| 久久久精品中文字幕麻豆发布| 欧美一区二区三区免费在线看| 亚洲欧美日韩一区二区| 一区二区三区中文字幕| 一区二区三区成人| 亚洲国产综合人成综合网站| 一二三区精品福利视频| 国产大陆亚洲精品国产| 一本到一区二区三区| 亚洲精品一区二区三区福利| 国产校园另类小说区| 亚洲欧洲中文日韩久久av乱码| 亚洲欧美一区二区三区久本道91| 亚洲成人中文在线| 99riav久久精品riav| 国产精品66部| 777xxx欧美| 国产精品理伦片| 欧美伦理电影网| 精品一区二区三区视频| 一二三区精品视频| 欧美亚洲图片小说| 久久久久久久网| 日本网站在线观看一区二区三区| 99国产精品国产精品久久| 欧美一级艳片视频免费观看| 亚洲免费观看在线视频| 高清不卡在线观看av| 欧美mv日韩mv亚洲| 日韩va亚洲va欧美va久久| 色综合天天做天天爱| 国产欧美一区二区精品秋霞影院| 美女久久久精品| 91麻豆精品91久久久久同性| 一区二区欧美精品| 91免费版在线| 亚洲免费av在线| 99re这里只有精品首页| 国产精品精品国产色婷婷| 成人永久看片免费视频天堂| 国产亚洲一区二区在线观看| 国产精品一区二区无线| 精品91自产拍在线观看一区| 久久97超碰色| 久久一区二区三区四区| 黑人巨大精品欧美一区| 精品裸体舞一区二区三区| 久久99久久精品| 精品乱人伦小说| 激情图片小说一区| 久久网站热最新地址| 国产精品一品视频| 国产女人18毛片水真多成人如厕| 国内欧美视频一区二区| 久久精品水蜜桃av综合天堂| 国产成人综合自拍| 中文字幕在线不卡视频| 一本一道久久a久久精品| 亚洲精品福利视频网站| 欧美日韩亚洲丝袜制服| 免费成人小视频| 久久久久久久久免费| 丁香婷婷综合网| 日韩毛片精品高清免费| 欧美丝袜丝交足nylons图片| 日韩激情av在线| 精品国产91乱码一区二区三区 | 自拍视频在线观看一区二区| 91免费视频网址| 亚洲va国产va欧美va观看| 日韩视频一区二区三区| 国产成人精品影视| 国产精品国产三级国产普通话三级| 91在线观看地址| 性久久久久久久久久久久| 精品久久久久久最新网址| 国产传媒一区在线| 一区二区三区资源| 欧美一区二区视频网站| 国产精品一区二区你懂的| 国产精品不卡一区| 欧美日韩色一区| 国产一区二区三区久久久| 中文字幕一区在线| 欧美日韩一区视频| 麻豆精品国产91久久久久久| 国产精品网站在线观看| 欧美日韩激情在线| 国产成人综合在线播放| 亚洲黄色av一区| 亚洲精品一区二区三区99| 91色婷婷久久久久合中文| 日韩经典一区二区| 国产精品嫩草影院com| 91精品综合久久久久久| www.日韩av| 人禽交欧美网站| 狠狠久久亚洲欧美| 一区二区三区中文字幕| 久久久久久亚洲综合| 欧美视频一区二区三区四区| 国产成人小视频| 亚洲第四色夜色| 国产精品进线69影院| 日韩精品一区二区三区视频 | 99精品视频在线观看| 蜜臀精品一区二区三区在线观看 | ㊣最新国产の精品bt伙计久久| 91精品国产综合久久久久久久久久 | 精品999久久久| 欧美在线观看18| 懂色一区二区三区免费观看| 三级欧美在线一区| 亚洲精品一卡二卡| 国产欧美日韩久久| 欧美xxxx在线观看| 欧美日韩在线一区二区| 99在线视频精品| 国产精品资源在线看| 美日韩一区二区三区| 亚洲国产美国国产综合一区二区| 国产精品理论片| 国产三级三级三级精品8ⅰ区| 欧美电影一区二区三区| 色综合 综合色| 成人美女视频在线看| 韩国视频一区二区| 日本91福利区| 视频一区二区中文字幕| 夜夜嗨av一区二区三区中文字幕| 中文字幕免费一区| 久久久久久一二三区| 亚洲精品一区二区三区福利| 3atv在线一区二区三区| 欧美综合欧美视频| 在线中文字幕一区| 91亚洲永久精品| 成人午夜短视频| 国产成人亚洲精品青草天美| 韩国女主播一区| 韩国午夜理伦三级不卡影院| 久草这里只有精品视频| 美国十次综合导航| 另类综合日韩欧美亚洲|