📄 gamemanager.java
字号:
if (menuActive ){menuX = 120 ; menuActiveSpeed = 11;menuActive = false;}
menuX -= menuActiveSpeed ;
menuActiveSpeed --;
if(menuX <65){menuX = 65;}
if (menuActiveSpeed<0 ){ menuActiveSpeed =0 ; }
g.setClip(0,0,W,H);
triangleR( g ,120,198);
triangleL( g ,58,198);
if ( keyState[6]){
keyState[6]=false;
//sleep(50);
//cover = null;
switch(slt){
case 0:
cover = null;
System.gc();
cz4 = load("cz4");
cz5 = load("cz5");
cz6 = load("cz6");
cz7 = load("cz7");
long1 = load("long1");
long2 = load("long2");
long3 = load("long3");
manState = load("manState");
magicMenu = load("magicMenu");
magicMenuColorful = load("magicMenuColorful");
magicEffect = load("magicEffect");
magicHealth = load("magicHealth");
messageReady = load("messageReady");
gameRestart();
snow = true;
gameState = stateLoading;
break;
case 1:
cover = null;
System.gc();
cz4 = load("cz4");
cz5 = load("cz5");
cz6 = load("cz6");
cz7 = load("cz7");
long1 = load("long1");
long2 = load("long2");
long3 = load("long3");
manState = load("manState");
magicMenu = load("magicMenu");
magicMenuColorful = load("magicMenuColorful");
magicEffect = load("magicEffect");
magicHealth = load("magicHealth");
messageReady = load("messageReady");
saveAndRead(false);
gameState = stateLoading;
break;
case 2:gameState = stateHelp;break;
case 3:gameState = stateAbout;break;
case 4:gameState = stateGroup;break;
case 5:gameState = stateExit;break;
}
slt = 0;
}
}
//=================================菜單三角(shu)========================================ok //
private void triangle(Graphics g ,int x,int y){
//tAdd++; if (tAdd >3)tAdd =0;
g.setColor(200,0,0);
y += 2*(tAdd%2);
g.drawLine(x,y,x+4,y);
g.drawLine(x+1,y+1,x+3,y+1);
g.drawLine(x+2,y+2,x+2,y+2);
}
//=================================菜單三角(you)========================================ok //
private void triangleR(Graphics g ,int x,int y){
//tAdd++; if (tAdd >3)tAdd =0;
g.setColor(200,0,0);
x += 2*(tAdd%2);
g.drawLine(x,y,x,y+4);
g.drawLine(x+1,y+1,x+1,y+3 );
g.drawLine( x+2 , y+2,x+2,y+2 );
}
private void triangleL(Graphics g ,int x,int y){
tAdd++; if (tAdd >2)tAdd =0;
g.setColor(200,0,0);
x -= 2*(tAdd%2);
g.drawLine(x,y,x,y+4);
g.drawLine(x-1,y+1,x-1,y+3 );
g.drawLine( x-2 , y+2,x-2,y+2 );
}
//==================================== 幫 助/關 於 ==========================================
public void helpAndAbout(Graphics g ,int mode){
g.setColor(0,0,0);
g.fillRect(0,0,W,H);
g.setColor(255,255,255);
fontHeight = g.getFont().getHeight();
switch(mode){
case 1:
g.setColor(255,255,255);
g.drawString("代理商",10,10,0);
g.drawString("寶石星球股份有限公司",10,30+fontHeight,0);
g.drawString("02-2702-5154",10,30+fontHeight*2,0);
g.drawString("www.gemmyplanet.com",10,30+fontHeight*3,0);
/*
setText("發行商:\n北京中傳視訊科技有限公司\n開發商:\n北京澳唐科技有限公司\n網 址:\nwww.looklook.cn\n客服熱線:\n800-810-6684\n傳 真:\n010-85862775\n客服郵箱:\ngame@looklook.cn",g);
drawText("發行商:\n北京中傳視訊科技有限公司\n開發商:\n北京澳唐科技有限公司\n網 址:\nwww.looklook.cn\n客服熱線:\n800-810-6684\n傳 真:\n010-85862775\n客服郵箱:\ngame@looklook.cn",g);
*/
break;
case 2:
g.setColor(255,255,255);
g.drawString("方向鍵:",10,10,0);
g.drawString("上/2:向上移動",24,10+fontHeight,0);
g.drawString("下/8:向下移動",24,10+fontHeight*2,0);
g.drawString("左/4:向左移動",24,10+fontHeight*3,0);
g.drawString("右/6:向右移動",24,10+fontHeight*4,0);
g.drawString("確定鍵:使用武器/對話",10,10+fontHeight*5,0);
g.drawString("左軟鍵:選擇武器",10,10+fontHeight*6,0);
g.drawString("右軟鍵:功能表/跳過對話",10,10+fontHeight*7,0);
g.setColor(1 ,55,255);
g.drawString("方向鍵:",11,11,0);
g.drawString("確定鍵: ",11,11+fontHeight*5,0);
g.drawString("左軟鍵: ",11,11+fontHeight*6,0);
g.drawString("右軟鍵: ",11,11+fontHeight*7,0);
break;
case 3:
g.setColor(1 ,55,255);
g.drawString("Powered BY",20,20,0);
g.setColor(255,255,255);
g.drawString("花卷兒 & 鞋帶兒",W/2-49,H/2-30,0);
g.setColor(1 ,55,255);
g.drawString("花卷兒 & 鞋帶兒",W/2-48,H/2-29,0);
break;
}
if( keyState[5] ) {keyState[5] = false ;gameState = stateStart;}
}
//================================= 遊戲螢幕 ====================================== // 22 x 36 = 33x 36
boolean showSubMenu = false;
private void gameScreen(Graphics g, boolean[] keyState ){
//g.setFont(Font.getFont(32,0,8));
//System.out.println("a1");
if(foeAdd%5 ==0){
manMagic++;
if(manMagic >100){manMagic =100;}
}
//if(manRun){manSpeed = 15;}else {manSpeed =6;}
if(manHealth <0){ snow = true;}
/* if (midiPlayer.getState()==midiPlayer.PREFETCHED){
try{
midiPlayer.start();
}catch(Exception e){};
}
if (midiPlayer2.getState()==midiPlayer2.PREFETCHED){
try{
midiPlayer2.start();
}catch(Exception e){};
}*/
//某方向的動作圖塊序列橫向放置, 不同方向的動作圖序列應分佈在不同行。
//後期準備添加人物呼吸動作!
tmpMapPassable_man = (byte)Math.abs(currentMap_Under[tmpManPositionY][tmpManPositionX]); // 取值
//System.out.println("a2");
currentMap_Under[tmpManPositionY][tmpManPositionX] = (byte)-tmpMapPassable_man; // 阻止通行
// System.out.println("a3");
if ( tmpManPositionX != winX + (manX - mapX)/16 || tmpManPositionY != winY + (manY - mapY)/16){
currentMap_Under[tmpManPositionY ][tmpManPositionX] = (byte)tmpMapPassable_man;
tmpManPositionX = manPositionX;
tmpManPositionY = manPositionY;
}
manPositionX = winX + (manX - mapX)/16;//人物座標(地圖)
manPositionY = winY + (manY - mapY)/16;
// System.out.println("a4");
//tmpDirection = direction;
// keyWait--;if( keyWait <0){keyWait = 0;keyWatch = false; manRun = false; manSpeed = 16;}
for ( int i = 0 ; i<= 6 ; i++ ){//處理按鍵回應
if (keyState[i] && i<= 3 && !snow && !showSubMenu && !talking){
direction = i;
//if (tmpDirection != direction)keyWait = 20;
//if ( tmpDirection == direction && keyWatch){ manRun = true;}
if (!talking && !showSubMenu) {manMove = true;}
}
if(!talking ){
if (keyState[4] && !useMagic && !snow ){keyState[4] = false;currentMagic--;if (currentMagic < 0){currentMagic =2;}}
if (keyState[6] && !useMagic && nearly == false && !showSubMenu && manMagic >20&& !snow ){ //fire
keyState[6] = false;
/*manMove = false;mapMove = false;*/
magicAdd = 0;
switch(currentMagic){
case 0 :
magicPositionX = 0;
magicPositionY = 0;
break;
case 1:
manDart-=1;if(manDart<0)manDart=0;
if(manDart>0){
manMagic -= 10;if(manMagic<0){manMagic =0;}///////////////////////
switch(direction){
case 0:
magicStepX = 0;
magicStepY = -1;
magicX = 0;
magicY = -6;
magicPositionX = manPositionX ;
magicPositionY = manPositionY ;
break;
case 1:
magicStepX = 0;
magicStepY = 1;
magicX = 0;
magicY = 6;
magicPositionX = manPositionX ;
magicPositionY = manPositionY ;
break;
case 2:
magicStepX = -1;
magicStepY = 0;
magicX = -6;
magicY = 0;
magicPositionX = manPositionX ;
magicPositionY = manPositionY ;
break;
case 3:
magicStepX = 1;
magicStepY = 0;
magicX = 6;
magicY = 0;
magicPositionX = manPositionX ;
magicPositionY = manPositionY ;
break;
}
useMagic = true;
magicStart = true;
magicHit = false;
}
break;
case 2:
manMagic -= 1;if(manMagic<0){manMagic =0;}
switch(direction){
case 0:
magicStepX = 0;
magicStepY = -1;
magicPositionX = manPositionX ;
magicPositionY = manPositionY -1;
break;
case 1:
magicStepX = 0;
magicStepY = 1;
magicPositionX = manPositionX ;
magicPositionY = manPositionY +1;
break;
case 2:
magicStepX = -1;
magicStepY = 0;
magicPositionX = manPositionX -1;
magicPositionY = manPositionY ;
break;
case 3:
magicStepX = 1;
magicStepY = 0;
magicPositionX = manPositionX +1;
magicPositionY = manPositionY ;
break;
}
break;
}
/// System.out.println("magic :" + magicPositionX + " - - - " + magicPositionY );
/// System.out.println("foe :"+ foePoint[0][0] + " * * * " + foePoint[0][1] );
useMagic = true;
magicStart = true;
magicHit = false;
}
if (keyState[5] && !snow ){showSubMenu = !showSubMenu; keyState[5] = false;}
}
}
//----------------------------------------------
//if ( !keyState[direction] && keyWait >0 ){keyWatch = true;}
//if ( manRun ){ manSpeed = 16;}
//----------------------------------------------]
if ( manMove ){ // 人物移動 && !talking
pAdd ++;
switch(direction){
case 0:
if( currentMap_Under[manPositionY-2][manPositionX] >= 0 && currentMap_Under[manPositionY-1][manPositionX] >= 0 ){ // 可移動性判斷
manY -= manSpeed;
if (manY <= H/2 && winY>0){
manY = H/2;
mapMove = true;
}
}
break;
case 1:
if( currentMap_Under[manPositionY+1][manPositionX] >= 0 ){ // 可移動性判斷
manY += manSpeed;
if (manY >= H/2 && winY<currentMap_Under.length-H/16-1){
manY = H/2;
mapMove = true;
}
}
break;
case 2:
if( currentMap_Under[manPositionY][manPositionX-1] >= 0 && currentMap_Under[manPositionY-1][manPositionX-1] >= 0){ // 可移動性判斷
manX -= manSpeed;
if (manX <= W/2 && winX>0){
manX = W/2 ;
mapMove = true;
}
}
break;
case 3:
if( currentMap_Under[manPositionY][manPositionX+1] >= 0 && currentMap_Under[manPositionY-1][manPositionX+1] >= 0){ // 可移動性判斷
manX += manSpeed;
if (manX >= W/2 && winX <currentMap_Under[0].length-W/16 -1){
manX = W/2;
mapMove = true;
}
}
break;
}
manMove = false;
}else{ // 人物靜止
pAdd = 0;
mapMove = false;
}
if (mapMove ){
switch(direction){
case 0:
mapY += manSpeed;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -