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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? game of huarongroad.txt

?? 華容道游戲J2ME實現_Java手機游戲
?? TXT
字號:


package huarongroad;

import javax.microedition.lcdui.*;

public class Displayable1 extends Canvas implements CommandListener {

private int[] loc = new int[2]; <A href="file://光">file://光</A>標的當前位置,0是水平位置,1是豎直位置
private int[] SelectArea = new int[4];//被選定的區域,即要移動的區域
private int[] MoveArea = new int[4];//要移動到的區域
private Map MyMap = new Map();//地圖類
private boolean selected;//是否已經選中要移動區域的標志
private int level;//但前的關面
public Displayable1() {//構造函數
try {
jbInit();//JBuilder定義的初始化函數
}catch (Exception e) {
e.printStackTrace();
}
}
private void Init_game(){
//初始化游戲,讀取地圖,設置選擇區域,清空要移動到的區域
this.loc = MyMap.read_map(this.level);//讀取地圖文件,并返回光標的初始位置
//0為水平位置,1為豎直位置
this.SelectArea[0] = this.loc[0];//初始化選中的區域
this.SelectArea[1] = this.loc[1];
this.SelectArea[2] = 1;
this.SelectArea[3] = 1;
this.MoveArea[0] = -1;//初始化要移動到的區域
this.MoveArea[1] = -1;
this.MoveArea[2] = 0;
this.MoveArea[3] = 0;
}
private void jbInit() throws Exception {//JBuilder定義的初始化函數
<A href="file://初">file://初</A>始化實例變量
this.selected = false;//設置沒有被選中的要移動區域
this.level = 1;
Images.init();//初始化圖片常量
Init_game();//初始化游戲,讀取地圖,設置選擇區域,清空要移動到的區域
setCommandListener(this);//添加命令監聽,這是Displayable的實例方法
addCommand(new Command("Exit", Command.EXIT, 1));//添加“退出”按鈕
}

public void commandAction(Command command, Displayable displayable) {
//命令處理函數
if (command.getCommandType() == Command.EXIT) {//處理“退出”
MIDlet1.quitApp();
}
}

protected void paint(Graphics g) {
//畫圖函數,用于繪制用戶畫面,即顯示圖片,勾畫選中區域和要移動到的區域
try {
g.drawImage(Images.image_Frame, 0, 0,
Graphics.TOP | Graphics.LEFT);//畫背景
MyMap.draw_map(g);//按照地圖內容畫圖
if ( this.selected )
g.setColor(0,255,0);//如果被選中,改用綠色畫出被選中的區域
g.drawRect(this.SelectArea[0] * Images.UNIT + Images.LEFT,
this.SelectArea[1] * Images.UNIT + Images.TOP,
this.SelectArea[2] * Images.UNIT,
this.SelectArea[3] * Images.UNIT);//畫出選擇區域,
<A href="file://如">file://如</A>果被選中,就用綠色
<A href="file://否">file://否</A>則,使用黑色
g.setColor(255,255,255);//恢復畫筆顏色
if (this.selected) {//已經選中了要移動的區域
g.setColor(255, 0, 255);//改用紅色
g.drawRect(this.MoveArea[0] * Images.UNIT + Images.LEFT,
this.MoveArea[1] * Images.UNIT + Images.TOP,
this.MoveArea[2] * Images.UNIT,
this.MoveArea[3] * Images.UNIT);//畫出要移動到的區域
g.setColor(255, 255, 255);//恢復畫筆顏色
}
}catch (Exception ex) {
}
System.out.println(Runtime.getRuntime().freeMemory());
System.out.println(Runtime.getRuntime().totalMemory());
}

private void setRange() {
//設置移動后能夠選中的區域
//調整當前光標位置到地圖的主位置,即記錄人物信息的位置
if (this.MyMap.Grid[this.loc[1]][this.loc[0]] == Images.DLEFT) {
this.loc[0] -= 1;//向左調
}else if (this.MyMap.Grid[this.loc[1]][this.loc[0]] == Images.DUP) {
this.loc[1] -= 1;//向上調
}else if (this.MyMap.Grid[this.loc[1]][this.loc[0]] == Images.DLEFTUP) {
this.loc[0] -= 1;//向左調
this.loc[1] -= 1;//向上調
}
this.SelectArea[0] = this.loc[0];//設置光標的水平位置
this.SelectArea[1] = this.loc[1];//設置光標的豎直位置
//設置光標的寬度
if (this.loc[0] + 1 < Images.WIDTH) {
this.SelectArea[2] = this.MyMap.Grid[this.loc[1]][this.loc[0] + 1] != (byte) '1' ?
1 : 2;
}else {
this.SelectArea[2] = 1;
}
//設置光標的高度
if (this.loc[1] + 1 < Images.HEIGHT) {
this.SelectArea[3] = this.MyMap.Grid[this.loc[1] + 1][this.loc[0]] != (byte) '2' ?
1 : 2;
}else {
this.SelectArea[3] = 1;
}
}

private boolean setMoveRange() {
//設置要移動到的區域,能夠移動返回true,否則返回false
for (int i = 0; i < this.SelectArea[2]; i++) {
for (int j = 0; j < this.SelectArea[3]; j++) {
if (this.loc[1] + j >= Images.HEIGHT ||
this.loc[0] + i >= Images.WIDTH ||
(!isInRange(this.loc[0] + i, this.loc[1] + j) &&
this.MyMap.Grid[this.loc[1] + j][this.loc[0] + i] !=
Images.BLANK)) {
return false;
}
}
}
this.MoveArea[0] = this.loc[0];
this.MoveArea[1] = this.loc[1];
this.MoveArea[2] = this.SelectArea[2];
this.MoveArea[3] = this.SelectArea[3];
return true;
}

private boolean isInRange(int x, int y) {
//判斷給定的(x,y)點是否在選定區域之內,x是水平坐標,y是豎直坐標
if (x >= this.SelectArea[0] &&
x < this.SelectArea[0] + this.SelectArea[2] &&
y >= this.SelectArea[1] &&
y < this.SelectArea[1] + this.SelectArea[3]) {
return true;
}else {
return false;
}
}

private boolean isInRange2(int x, int y) {
//判斷給定的(x,y)點是否在要移動到的區域之內,x是水平坐標,y是豎直坐標
if (x >= this.MoveArea[0] &&
x < this.MoveArea[0] + this.MoveArea[2] &&
y >= this.MoveArea[1] &&
y < this.MoveArea[1] + this.MoveArea[3]) {
return true;
}else {
return false;
}
}

protected void keyPressed(int keyCode) {
//處理按下鍵盤的事件,這是Canvas的實例方法
switch (getGameAction(keyCode)) {//將按鍵的值轉化成方向常量
case Canvas.UP://向上
if (!this.selected) {//還沒有選定要移動的區域
if (this.loc[1] - 1 >= 0) {//向上還有移動空間
this.loc[1]--;//向上移動一下
setRange();//設置光標移動的區域,該函數能將光標移動到地圖主位置
repaint();//重新繪圖
}
}else {//已經選定了要移動的區域
if (this.loc[1] - 1 >= 0) {//向上還有移動空間
this.loc[1]--;//向上移動一下
if (setMoveRange()) {//能夠移動,該函數能夠設置要移動到的區域
repaint();//重新繪圖
}else {//不能移動
this.loc[1]++;//退回來
}
}
}
break;
case Canvas.DOWN://向下
if (!this.selected) {//還沒有選定要移動的區域
if (this.loc[1] + 1 < Images.HEIGHT) {//向下還有移動空間
if (this.MyMap.Grid[this.loc[1] + 1][this.loc[0]] ==
Images.DUP){//該圖片有兩個格高
this.loc[1]++;//向下移動一下
if (this.loc[1] + 1 < Images.HEIGHT) {//向下還有
<A href="file://移">file://移</A>動空間
this.loc[1]++;//向下移動一下
setRange();//設置光標移動的區域,
<A href="file://該">file://該</A>函數能將光標移動到地圖主位置
repaint();//重新繪圖
}else {//向下沒有移動空間
this.loc[1]--;//退回來
}
}else {//該圖片只有一個格高
this.loc[1]++;//向下移動一下
setRange();//設置光標移動的區域,
<A href="file://該">file://該</A>函數能將光標移動到地圖主位置
repaint();//重新繪圖
}
}else {
}
}else {//已經選定了要移動的區域
if (this.loc[1] + 1 < Images.HEIGHT) {//向下還有移動空間
this.loc[1]++;//向下移動一下
if (setMoveRange()) {//能夠移動,該函數能夠設置要移動到的區域
repaint();//重新繪圖
}else {//不能移動
this.loc[1]--;//退回來
}
}
}
break;
case Canvas.LEFT://向左
if (!this.selected) {//還沒有選定要移動的區域
if (this.loc[0] - 1 >= 0) {//向左還有移動空間
this.loc[0]--;//向左移動一下
setRange();//設置光標移動的區域,該函數能將光標移動到地圖主位置
repaint();//重新繪圖
}
}else {//已經選定了要移動的區域
if (this.loc[0] - 1 >= 0) {//向左還有移動空間
this.loc[0]--;//向左移動一下
if (setMoveRange()) {//能夠移動,該函數能夠設置要移動到的區域
repaint();//重新繪圖
}else {//不能移動
this.loc[0]++;//退回來
}
}
}
break;
case Canvas.RIGHT://向右
if (!this.selected) {//還沒有選定要移動的區域
if (this.loc[0] + 1 < Images.WIDTH) {//向右還有移動空間
if (this.MyMap.Grid[this.loc[1]][this.loc[0] + 1] ==
Images.DLEFT) {//該圖片有兩個格寬
this.loc[0]++;//向右移動一下
if (this.loc[0] + 1 < Images.WIDTH) {//向右還有
<A href="file://移">file://移</A>動空間
this.loc[0]++;//向右移動一下
setRange();//設置光標移動的區域,
<A href="file://該">file://該</A>函數能將光標移動到地圖主位置
repaint();//重新繪圖
}else {//向右沒有移動空間
this.loc[0]--;//退回來
}
}else {//該圖片只有一個格寬
this.loc[0]++;//向右移動一下
setRange();//設置光標移動的區域,
<A href="file://該">file://該</A>函數能將光標移動到地圖主位置
repaint();//重新繪圖
}
}else {
}
}else {//已經選定了要移動的區域
if (this.loc[0] + 1 < Images.WIDTH) {//向右還有移動空間
this.loc[0]++;//向右移動一下
if (setMoveRange()) {//能夠移動,該函數能夠設置要移動到的區域
repaint();//重新繪圖
}else {//不能移動
this.loc[0]--;//退回來
}
}
}
break;
case Canvas.FIRE:
if (this.selected) {//已經選定了要移動的區域
Move();//將要移動的區域移動到剛選中的區域
repaint();//重新繪圖
this.selected = false;//清除已選定要移動區域的標志
if ( win()) {
System.out.println("win");
}
}else {//還沒有選定要移動的區域
if (this.MyMap.Grid[this.loc[1]][this.loc[0]] ==
Images.BLANK) {//要移到的位置是一個空白
}else {//要移到的位置不是空白
this.selected = true;//設置已選定要移動區域的標志
}
repaint();//重新繪圖
}
break;
}
}

private boolean win(){
<A href="file://判">file://判</A>斷是否已經救出了曹操
if ( this.MyMap.Grid[Images.HEIGHT - 2 ][Images.WIDTH - 3 ] == Images.CAOCAO )
return true;
else
return false;
}

private void PrintGrid(String a) {
<A href="file://打">file://打</A>印當前地圖的內容,用于調試
System.out.println(a);
for (int i = 0; i < Images.HEIGHT; i++) {
for (int j = 0; j < Images.WIDTH; j++) {
System.out.print( (char)this.MyMap.Grid[i][j]);
}
System.out.println("");
}
}

private void Move() {
<A href="file://將">file://將</A>要移動的區域移動到剛選中的區域
if (this.MoveArea[0] == -1 || this.MoveArea[1] == -1 ||
this.SelectArea[0] == -1 || this.SelectArea[1] == -1) {//沒有選中區域
}else {//已經選中了要移動的區域和要移動到的區域
byte[][] temp = new byte[this.SelectArea[3]][this.SelectArea[2]];
<A href="file://復">file://復</A>制要移動的區域,因為這塊區域可能會被覆蓋掉
for (int i = 0; i < this.SelectArea[2]; i++) {
for (int j = 0; j < this.SelectArea[3]; j++) {
temp[j][i] =
this.MyMap.Grid[this.SelectArea[1] +j]
[this.SelectArea[0] + i];
}
}
<A href="file://PrintGrid">file://PrintGrid</A>("1"); // 調試信息
<A href="file://將">file://將</A>要移動的區域移動到剛選中的區域(即要移動到的區域)
for (int i = 0; i < this.SelectArea[2]; i++) {
for (int j = 0; j < this.SelectArea[3]; j++) {
this.MyMap.Grid[this.MoveArea[1] + j]
[this.MoveArea[0] + i] = temp[j][i];
}
}
<A href="file://PrintGrid">file://PrintGrid</A>("2");// 調試信息
<A href="file://將">file://將</A>要移動的區域中無用內容置成空白
for (int i = 0; i < this.SelectArea[3]; i++) {
for (int j = 0; j < this.SelectArea[2]; j++) {
if (!isInRange2(this.SelectArea[0] + j,
this.SelectArea[1] + i)) {//該點是不在要移動到
<A href="file://的">file://的</A>區域之內,需置空
this.MyMap.Grid[this.SelectArea[1] + i]
[this.SelectArea[0] + j] = Images.BLANK;
}else {
}
}
}
<A href="file://PrintGrid">file://PrintGrid</A>("3");// 調試信息
this.SelectArea[0] = this.MoveArea[0];//重置選中位置的水平坐標
this.SelectArea[1] = this.MoveArea[1];//重置選中位置的豎直坐標
this.MoveArea[0] = -1;//清空要移動到的位置
this.MoveArea[1] = -1;//清空要移動到的位置
this.MoveArea[2] = 0;//清空要移動到的位置
this.MoveArea[3] = 0;//清空要移動到的位置
}
}
}
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久久精品| 久久国产精品色婷婷| 91美女片黄在线观看| 亚洲日本成人在线观看| 欧美性生活久久| 日韩国产精品久久久久久亚洲| 欧美一卡二卡三卡四卡| 精品一区二区在线播放| 亚洲国产成人一区二区三区| proumb性欧美在线观看| 亚洲一区二区四区蜜桃| 欧美浪妇xxxx高跟鞋交| 久久国产精品色| 中文一区二区完整视频在线观看| 成人av在线电影| 一区二区三区不卡视频| 91麻豆精品91久久久久久清纯| 久久草av在线| 国产精品欧美经典| 欧美色老头old∨ideo| 久久99精品网久久| 亚洲三级电影网站| 日韩写真欧美这视频| 亚洲裸体在线观看| 国产精品一区三区| 国产精品色呦呦| 欧美日韩国产综合草草| 日本成人中文字幕在线视频| 国产欧美视频一区二区| 在线观看成人免费视频| 国产一区二区导航在线播放| 亚洲精品中文字幕在线观看| 91精品国产色综合久久ai换脸| 国产成人三级在线观看| 亚洲亚洲精品在线观看| 中文字幕乱码一区二区免费| 欧美四级电影在线观看| 国产精品一级片在线观看| 亚洲成人手机在线| 国产精品视频观看| 欧美一区二区三区日韩| 成人美女视频在线观看18| 日韩在线a电影| 国产精品国产精品国产专区不片| 91精品国产综合久久精品性色| 国产成人在线网站| 日本不卡一区二区| 日本一二三不卡| 3d动漫精品啪啪1区2区免费| 91精彩视频在线| 国产伦精品一区二区三区免费| 亚洲电影你懂得| 亚洲欧洲一区二区三区| 精品欧美一区二区在线观看| 欧美色视频一区| av色综合久久天堂av综合| 韩国v欧美v日本v亚洲v| 天堂av在线一区| 亚洲另类春色国产| 亚洲欧洲日产国码二区| 国产精品麻豆欧美日韩ww| 精品sm捆绑视频| 日韩精品在线一区| 日韩亚洲欧美一区二区三区| 91精品国产综合久久蜜臀 | 欧美精品三级日韩久久| 久久99国内精品| 亚洲成人777| 亚洲午夜久久久久| 一区二区三区四区不卡在线| 亚洲欧洲国产日韩| 成人欧美一区二区三区白人| 欧美国产精品专区| 国产欧美一区二区精品久导航| 欧美xxxxx裸体时装秀| 日韩精品在线一区二区| 日韩免费看网站| 欧美成人a视频| 亚洲精品一区二区三区在线观看 | 国产在线观看一区二区| 久久99久久99小草精品免视看| 午夜精品影院在线观看| 午夜精品久久久久久不卡8050| 亚洲国产中文字幕| 日本女人一区二区三区| 日本不卡一区二区| 国产在线麻豆精品观看| 国产剧情一区二区三区| 成人理论电影网| 91视视频在线观看入口直接观看www| 91麻豆精品一区二区三区| 日本高清不卡一区| 777午夜精品视频在线播放| 日韩一区二区视频| 久久久五月婷婷| √…a在线天堂一区| 亚洲最新在线观看| 亚洲精品美腿丝袜| 亚洲制服丝袜av| 蜜桃视频第一区免费观看| 国产成人午夜片在线观看高清观看 | 欧美日韩在线播放三区| 欧美一三区三区四区免费在线看| 精品少妇一区二区三区| 欧美激情综合在线| 一区二区三区四区在线播放| 亚洲福中文字幕伊人影院| 蜜桃av一区二区三区电影| 国产91精品在线观看| 色94色欧美sute亚洲线路二| 91精品国产欧美一区二区| 精品国产乱码久久久久久夜甘婷婷 | 91影视在线播放| 欧美日韩国产一二三| 久久久久久久久久久久电影| 国产精品久久久久三级| 亚洲成人激情综合网| 国产成人8x视频一区二区| 色久优优欧美色久优优| 久久综合999| 一区二区三区四区国产精品| 韩国三级在线一区| 99国内精品久久| 日韩女优毛片在线| 亚洲视频精选在线| 国产原创一区二区三区| 在线观看亚洲精品视频| 久久欧美一区二区| 艳妇臀荡乳欲伦亚洲一区| 国产91综合一区在线观看| 欧美撒尿777hd撒尿| 国产精品午夜春色av| 日韩av高清在线观看| 色系网站成人免费| 国产亚洲欧美日韩俺去了| 蜜桃传媒麻豆第一区在线观看| 99久久久国产精品| 欧美精品一区二区精品网| 亚洲综合成人在线| 不卡在线观看av| 国产欧美日韩综合| 久久99日本精品| 欧美剧情片在线观看| 一区在线播放视频| 国产a精品视频| 精品精品国产高清a毛片牛牛| 亚洲成av人片一区二区梦乃| 99久久精品久久久久久清纯| 久久美女艺术照精彩视频福利播放 | 成人午夜短视频| 欧美一区二区三区在线观看视频| 一区二区三区在线影院| 成人丝袜视频网| 久久久久久久久97黄色工厂| 精品在线观看视频| 日韩视频免费观看高清完整版在线观看| 一区二区三区精品在线观看| 成人一区二区三区在线观看| 久久综合久久久久88| 奇米色777欧美一区二区| 欧美丰满嫩嫩电影| 香蕉成人啪国产精品视频综合网| 91丨九色丨尤物| 亚洲欧美日韩综合aⅴ视频| 成人精品视频一区二区三区| 国产日韩一级二级三级| 国产成人午夜精品影院观看视频 | 欧美性感一区二区三区| 亚洲啪啪综合av一区二区三区| 波多野结衣中文字幕一区二区三区| www日韩大片| 国产精品亚洲第一| 欧美激情综合五月色丁香小说| 成人免费毛片a| 中文字幕在线一区免费| av高清久久久| 亚洲情趣在线观看| 在线一区二区视频| 午夜婷婷国产麻豆精品| 欧美日韩午夜在线视频| 丝袜诱惑制服诱惑色一区在线观看| 91精品午夜视频| 激情综合色综合久久综合| 久久久久久亚洲综合影院红桃 | 91视频.com| 亚洲高清免费一级二级三级| 欧美日韩国产免费一区二区| 另类小说色综合网站| 国产视频一区在线观看 | 91成人在线精品| 亚洲成国产人片在线观看| 这里只有精品99re| 国产一区美女在线| 国产亚洲一二三区| 成人avav影音| 香蕉加勒比综合久久| 久久久午夜精品理论片中文字幕| 成人国产亚洲欧美成人综合网 | 欧美一级爆毛片| 美女视频黄免费的久久|