📄 gamecanvas.java
字号:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.util.*;
public class gameCanvas extends Canvas
{
private final richNabob richnabob;
private static int UpDown, LeftRight;
private Image firstImage, nabobMAPImage;
private Image nabobmanImage;
private Image[] diceImage;
private Image handImage, selectImage, show1Image, show2Image;
private int viewGame, selectX, selectY, PCman, goType, selectStatus, playerman;
private int dice1, dice2, countDice, dice, pcgo, playergo, nabobPCMAP, nabobPlayerMAP, dicepcgo, diceplayergo;
private int playerMoney, PCMoney, playerstation, pcstation, playercompany, pccompany, selecttype,PCselectType;
private int goActionPlayer, goActionPC;
private int[] goMAPStatus, playerHouse, PCHouse;
private int lifeGO, chanceGO, playerGOjailType, pcGOjailType, lostcompany;
private String lifeWording, lifeValue, chanceWording, chanceValue;
private boolean player, PCplayer, diceStart, pcDice, show1table, show2table, keylock;
private boolean playerbuyground, pcbuyground, playerbuildhouse, pcbuildhouse, life, chance, tax;
private boolean playerlosthousemoney, playerloststationmoney, playerlostcompanymoney, pclosthousemoney, pcloststationmoney, pclostcompanymoney;
private boolean playerbuystation, playerbuycompany, pcbuystation, pcbuycompany, playernobuy, pcnobuy, PCselectDice;
private boolean playerLifeJailLicense, pcLifeJailLicense, playerChanceJailLicense, pcChanceJailLicense, playerGOjail, pcGOjail;
private boolean bankMoneyPlayer, bankMoneyPC, playerShowjail, pcShowjail, PCGameOver, playerGameOver, gameOverKey;
private Random gameRand;
private logoStart logostart;
private pcSelect pcselect;
private playerdiceGO playerdicego;
private companymoneyDice companymoneydice;
private pcdiceGO pcdicego;
private nabobPhoto nabobphoto;
private recordData recorddata;
private String[] readDataUTF, dataName;
private int[] dataInfor;
private int[] chanceInt={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};
private int[] lifeInt={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};
private static String mapword[]={"起点","建国南路","命运","建国北路","所得税","忠孝路","仁爱路",
"台北车站","信义路","机会","民族路","民权路","坐牢(路过)","民生路",
"电力公司","延平路一段","延平路二段","台中车站","延平路三段","命运",
"自由路","免费停车","平等路","机会","博爱路","台南车站","健康路",
"自来水厂","六合路","进牢","光明路","命运","中华路","高雄车站",
"中正路","机会","介寿路","财产税","新生南路","新生北路"};
private String chanceword[]={"银行付你利息500元","付个人土地税1150元",
"由此前进到民族路得2000元","缴赴美留学保证金2400元","行车超速罚款150元",
"得马英九奖学金3000元","付住家修缮费1250元","经营小本生意获得1000元",
"出狱许可证件","酗酒闹事罚款200元","由此前进到台中车站得2000元",
"运动会跳水冠军得奖金1000元","逮捕立刻坐牢","付学校课本费用1500元",
"由此前进到博爱路得2000元"};
private String chanceValueArray[]={"500","-1150","road1","-2400","-150",
"3000","-1250","1000","true","-200",
"road2","1000","in","-1500","road3"};
private String lifeword[]={"当掉棉被一条得500元","拾金不昧失主酬谢得1000元",
"卖黄牛票罚款1000元","出狱许可证件","付房屋增值税1050元","小孩满月收取礼金300元",
"得连战奖学金2000元","付个人保险费500元","小偷光顾损失500元","政府收税款1000元",
"工作努力得奖金2000元","恭喜中彩票得2000元","付个人医疗费用1000元",
"选美会获得亚军得100元","逮捕立刻坐牢"};
private String lifeValueArray[]={"500","1000","-1000","true","-1050",
"300","2000","-500","-500","-1000","2000",
"2000","-1000","100","in"};
// 0:起点 1:地段 2:命运 3:机会 4:所得税 5:车站 6:公司 7:坐牢 8:路过
private static int mapstatus[]={0,1,2,1,4,1,1,5,1,3,1,1,8,1,6,1,1,5,1,2,1,8,1,3,1,5,1,6,1,7,1,2,1,5,1,3,1,4,1,1};
private static int[][] roadanymoney={{0},{600,300,20,100,300,900,1600,2500,500},{2}
,{600,300,40,200,600,1800,3200,4500,500},{2000},{1000,500,60,300,900,2700,4000,5500,500}
,{1000,500,60,300,900,2700,4000,5500,500},{2000,1000,250,500,1000,2000}
,{1200,600,80,400,1000,3000,4500,6000,500},{3},{1400,700,100,500,1500,4500,6250,7500,1000}
,{1400,700,100,500,1500,4500,6250,7500,1000},{8},{1600,800,120,600,1800,5000,7000,9000,1000}
,{1500,750,10,100},{1800,900,140,700,2000,5500,7500,9500,1000},{1800,900,140,700,2000,5500,7500,9500,1000}
,{2000,1000,250,500,1000,2000},{2200,1100,160,800,2200,6000,8000,10000,1000},{2}
,{2200,1100,180,900,2500,7000,8750,10500,1500},{8},{2200,1100,180,900,2500,7000,8750,10500,1500},{3}
,{2400,1200,200,1000,3000,7500,9250,11000,1500},{2000,1000,250,500,1000,2000}
,{2600,1300,220,1100,3300,8000,9750,11500,1500},{1500,750,10,100},{2600,1300,220,1100,3300,8000,9750,11500,1500}
,{7},{2800,1400,220,1200,3600,8500,10250,12000,1500},{2},{3000,1500,260,1300,3900,9000,11000,12750,2000}
,{2000,1000,250,500,1000,2000},{3000,1500,260,1300,3900,9000,11000,12750,2000},{3}
,{3200,1600,280,1500,4500,10000,12000,14000,2000},{1000},{3500,1750,350,1750,5000,11000,13000,15000,2000}
,{4000,2000,500,2000,6000,14000,17000,20000,2000}
};
private static int[] manType={0,1,2,0,1,2,0,1,2,0,1,2,0,5,5,0,5,5,0,5,5,0,1,2,0,1,2,0,0,0,
0,0,0,0,0,0,0,1,2,0,1,2,0,5,5,0,5,5,0,5,5,0,5,5,0,5,5,0,5,5,
0,5,5,0,3,4,0,3,4,0,3,4,0,3,4,0,3,4,0,3,4,0,3,4,0,3,4,0,0,0,
0,0,0,0,1,2,0,1,2,0,0,0,0,0,0,0,3,4,0,3,4,0,0,0,0,0,0,0,0,0};
private static int[][][] GOMAP={
{
{117,130},{108,130},{100,130},{92,130},{82,130},{72,130},{62,130},{53,130},{45,130},{37,130},
{27,130},{17,130},{7,130},{7,121},{7,113},{7,105},{7,96},{7,88},{7,80},{7,70},
{7,60},{7,50},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},
{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},
{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},
{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},
{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},
{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},
{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},
{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},{170,208},
{170,208},{170,208},{62,25},{62,33},{62,41},{62,50},{72,50},{82,50},{92,50},{100,50},
{108,50},{117,50},{117,60},{117,70},{117,80},{117,88},{117,96},{117,105},{117,113},{117,121}
},
{
{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},
{172,208},{172,208},{115,130},{115,121},{115,113},{115,105},{115,96},{115,88},{115,80},{115,70},
{115,60},{115,50},{106,50},{98,50},{90,50},{80,50},{70,50},{60,50},{60,60},{60,70},
{60,80},{60,88},{60,96},{60,105},{60,113},{60,121},{60,130},{51,130},{43,130},{35,130},
{25,130},{15,130},{5,130},{5,121},{5,113},{5,105},{5,96},{5,88},{5,80},{5,70},
{5,60},{5,50},{5,41},{5,33},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},
{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},
{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},
{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},
{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},
{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},
{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208}
},
{
{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},
{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},
{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},
{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},
{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},
{172,208},{170,208},{5,133},{5,124},{5,116},{5,108},{5,98},{5,88},{5,78},{5,69},
{5,61},{5,53},{5,44},{5,36},{15,36},{25,36},{35,36},{43,36},{51,36},{60,36},
{70,36},{80,36},{90,36},{98,36},{106,36},{115,36},{170,208},{170,208},{170,208},{172,208},
{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},
{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},
{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},
{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208}
},
{
{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},
{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{170,208},
{170,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},
{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},
{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},
{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},
{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},
{172,208},{172,208},{170,208},{172,208},{172,208},{7,36},{17,36},{27,36},{37,36},{45,36},
{53,36},{62,36},{72,36},{82,36},{92,36},{100,36},{108,36},{117,36},{117,44},{117,53},
{117,61},{117,69},{117,78},{117,88},{108,88},{100,88},{92,88},{82,88},{72,88},{62,88},
{62,98},{62,108},{62,116},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},
{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208},{170,208},{172,208},{172,208}
}
};
private static int[][] MAPStart={{-107,-43},{0,-43},{0,53},{-107,53}};
private static String[] viewWord={"大富翁游戏说明:","玩家通过原点银行给2000元,",
"刚好在原点土地不给钱","玩家站到空地可以购买,","玩家有土地权可以建屋,",
"房屋每次建置一楼最多五楼,","机会与命运有不同状态,",
"玩家坐牢会暂停前进三次,","坐牢期间不能收取罚款,","玩家罚款要付给银行"
};
private int viewBuyMAP, view50Key, view60Key, view70Key, pledge, pledgepage, pledgeitem, viewpledgepage, pledgemap;
private int pledgehand, redeem, handmove;
private int[] pledgeList;
public gameCanvas(richNabob richnabob)
{
this.richnabob=richnabob;
gameRand=new Random();
diceImage=new Image[6];
dataInfor=new int[14];
dataName=new String[3];
readDataUTF=new String[18];
pledgeList=new int[28];
goMAPStatus=new int[40];
playerHouse=new int[40];
PCHouse=new int[40];
try{
firstImage=Image.createImage("/company.png");
handImage=Image.createImage("/hand.png");
selectImage=Image.createImage("/select.png");
nabobmanImage=Image.createImage("/nabobman.png");
diceImage[0]=Image.createImage("/dice1.png");
diceImage[1]=Image.createImage("/dice2.png");
diceImage[2]=Image.createImage("/dice3.png");
diceImage[3]=Image.createImage("/dice4.png");
diceImage[4]=Image.createImage("/dice5.png");
diceImage[5]=Image.createImage("/dice6.png");
show1Image=Image.createImage("/show1.png");
show2Image=Image.createImage("/show2.png");
nabobMAPImage=Image.createImage("/map.png");
}catch(Exception ex){}
dice1=1;
dice2=1;
handmove=0;
playerMoney=PCMoney=25000;
listChanceLife();
player=true;
recorddata=new recordData();
logostart=new logoStart();
logostart.start();
logostart=null;
}
public void keyReleased(int keyCode)
{
switch (keyCode)
{
case 50: // '2'
gameCanvas.UpDown = 0;
break;
case 56: // '8'
gameCanvas.UpDown = 0;
break;
case 52: // '4'
gameCanvas.LeftRight = 0;
break;
case 54: // '6'
gameCanvas.LeftRight = 0;
break;
}
}
public void keyPressed(int keyCode)
{
int gameKey = getGameAction(keyCode);
if(viewGame==5) //(OK)
switch (gameKey)
{
case UP:
selectY=0;
repaint();
break;
case DOWN:
selectY=1;
repaint();
break;
case LEFT:
selectX=0;
repaint();
break;
case RIGHT:
selectX=1;
repaint();
break;
case FIRE:
checkman(selectX, selectY);
player=false;
pcselect=new pcSelect();
pcselect.start();
pcselect=null;
break;
}
if(viewGame==50 && selectStatus==1)
switch (gameKey)
{
case UP:
view50Key--;
if(view50Key<0) view50Key=0;
repaint();
break;
case DOWN:
view50Key++;
if(view50Key>2) view50Key=2;
repaint();
break;
case FIRE:
if(view50Key==0)
if(viewBuyMAP==0)
viewBuyMAP=0;
else
viewBuyMAP=viewBuyMAP-10;
else if(view50Key==1)
if(viewBuyMAP==30)
viewBuyMAP=30;
else
viewBuyMAP=viewBuyMAP+10;
else if(view50Key==2)
viewGame=10;
repaint();
break;
}
else if(viewGame==70 || viewGame==80){
pledgemap=0;
switch (gameKey)
{
case UP:
pledgehand--;
if(pledgehand<0) pledgehand=0;
repaint();
break;
case DOWN:
pledgehand++;
if(pledgehand>pledge && viewGame==70)
pledgehand=pledge;
if(pledgehand>redeem && viewGame==80)
pledgehand=redeem;
repaint();
break;
case FIRE:
if((pledgehand==pledge && viewGame==70) || (pledgehand==redeem && viewGame==80))
viewGame=60;
else
pledgebank(pledgeList[pledgehand]);
repaint();
break;
}
}
else if(viewGame==90 || viewGame==100){
pledgemap=0;
switch (gameKey)
{
case UP:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -