📄 adseesaw.java
字号:
}
private int getMykey(){ //僉乕傪庢傝弌偡
int result = key; //曐娗偝傟偰偄傞僉乕傪庢傝弌偟丄
key = 0; //曐娗屔偼僋儕傾偟偰偍偔
return result; //
}
//------------------------ 僌儔僼傿僢僋儕僜乕僗偺撉傒崬傒
private final int grseeSaw1 = 0; //儕僜乕僗攝楍偺斣崋傪巜掕
private final int grseeSaw2 = 1; //丂僔乕僜乕偺奊偺2斣栚
private final int grman = 2; //丂恖娫偺奊
private Image [] gr = new Image[3]; //梫慺3偺儕僜乕僗攝楍傪嶌惉
private void loadResource() { //懳墳偡傞儕僜乕僗僼傽僀儖傪巜掕偺攝楍梫慺偵曐娗
gr[grseeSaw1] = loadGres("dai1.png"); //僔乕僜乕1恾暱偺撉傒崬傒
gr[grseeSaw2] = loadGres("dai2.png"); //僔乕僜乕2恾暱偺撉傒崬傒
gr[grman] = loadGres("man.png"); //恖娫恾暱偺撉傒崬傒
}
private Image loadGres(String s){ //儕僜乕僗撉傒崬傒傛偆娭悢
Image a = null; //丂僀儊乕僕偺杮懱傪嶌惉偟偰丄
try { //
a = Image.createImage("/"+s); //丂柤徧傪巜掕偟偰撉傒崬傓
} catch (Exception ex) { //偍偦傜偔巊傢傟側偄僄儔乕張棟
ex.printStackTrace(); //
} //
return a; //撉傒崬傫偩僀儊乕僕傪曉偡
}
//------------------------ 僎乕儉杮懱偺曗彆娭悢
private void initGame(){ //PLAY捈慜偺弶婜壔
score = 0; //揰悢偼侽偵
key = 0; //擖椡僉乕傕僋儕傾
seesawPosX = grXWidth/2; //僔乕僜乕偼夋柺拞墰偵
manSwitch = ismanRight; //嵍懁偺恖娫傪曻傝弌偡偙偲偵偟偰
manX = seesawPosX+manRightPos; //丂忋婰偺X埵抲
manY = manFirstHight; //丂忋婰偺Y埵抲
manVectX = 0; //嵍塃偺堏摦偼柍偟
manVectY = 0; //忋壓偺堏摦傕柍偟乮偟偩偄偵帺桼棊壓乯
}
private void keyAction(){ //僉乕擖椡偵傛傞僀儀儞僩張棟
int pushedkey = getMykey(); //墴偝傟偨僉乕傪曔傜偊傞
if(pushedkey == keyLeft){ //嵍堏摦僉乕偱偁傟偽丄
seesawPosX -= seeSawMoveSize; //丂偲傝偁偊偢堏摦偝偣偰
if(seesawPosX < seeSawXLeftLimit){ //丂嵍尷搙傪挻偊偰偄傟偽
seesawPosX = seeSawXLeftLimit; //丂挻偊側偄斖埻偵栠偡
}
}else if(pushedkey == keyRight){ //塃堏摦僉乕偱偁傟偽丄
seesawPosX += seeSawMoveSize; //丂偲傝偁偊偡堏摦偝偣偰丄
if(seesawPosX > seeSawXRightLimit){ //丂塃尷搙傪挻偊偰偄傟偽
seesawPosX = seeSawXRightLimit; //丂挻偊側偄斖埻偵栠偡
}
}
}
private boolean moveman(){ //旘傫偱偄傞恖娫偺堏摦
manVectY -= gravity; //枅夞丄廳椡偵傛傞壓曽岦傊偺堏摦検傪憹戝偝偣傞
manX += manVectX; //嵍塃堏摦傪峴偆
manY += manVectY; //忋壓堏摦傪峴偆
if(manY > grYWidth){ //揤堜偵傇偮偐偭偨側傜偽丄
manY = grYWidth; //丂Y埵抲傪揤堜傑偱偵婯惂偟偰丄
manVectY = 0; //丂偦偙偐傜帺桼棊壓
}
if(manX < 0){ //X埵抲偑嵍尷搙傪挻偊偰偄傟偽丄
manX = 0; //丂尷搙尷奅埲撪偵偟偰
manVectX = -manVectX; //丂暻偱挼偹曉傞乮堏摦偺岦偒傪斀懳偵偡傞乯
} else if(manX > grXWidth){ //X埵抲偑塃尷搙傪挻偊偰偄傟偽丄
manX = grXWidth; //丂尷搙尷奅埲撪偵偟偰
manVectX = -manVectX; //丂暻偱挼偹曉傞乮堏摦偺岦偒傪斀懳偵偡傞乯
}
if(manY < seeSawHight){ //Y埵抲偑懌応偺崅偝埲壓偵側偭偨傜丄
//丂峔憿懱傛傝僙乕僼椞堟偺僆僼僙僢僩傪庢傝崬傒丄
//丂僔乕僜乕埵抲傪懌偟偰幚抣偺僙乕僼椞堟傪嶌惉
int mini = seesawPosX + seeSawPedal[manSwitch*seeSawPedalDim+seeSawPedalDimMini];
int max = seesawPosX + seeSawPedal[manSwitch*seeSawPedalDim+seeSawPedalDimMax];
if((mini <= manX)&&(manX <= max)){ //恖娫偺X埵抲偑僙乕僼椞堟撪偱偁傟偽乮柍帠拝抧乯丄
manSwitch = (manSwitch == ismanLeft)?(ismanRight):(ismanLeft); //崱搙偼斀懳懁偺恖娫偑旘傫偱偄傞偙偲偵偟偰丄
manY = seeSawHight; //丂偲傝偁偊偢Y偼懌応偺崅偝
manX = seesawPosX + seeSawPedal[manSwitch*seeSawPedalDim+seeSawPedalDimJpos]; //X偼懌応偺埵抲
manVectY = manJumpPower; //丂Y堏摦検偼懪偪忋偘弶懍搙偲偟
manVectX = Math.abs((rand.nextInt()) % 3)-1; //丂X堏摦検偼庤敳偒偟偰棎悢偵偰揔摉偵巜掕
score++; //惉岟偟偨偺偱僗僐傾傾僢僾
PhoneSystem.onIncallLed(PhoneSystem.COLOR_GREEN,PhoneSystem.PATTERN1,500); //椢LED傪婰擮偵揰柵
return true; //惗偒偰偄傞僼儔僌傪曉偡
}
//懌尦偵懌応偑側偐偭偨傜丄
PhoneSystem.onIncallLed(PhoneSystem.COLOR_RED,PhoneSystem.PATTERN3,1500); //愒LED傪揰柵偝偣偰
PhoneSystem.onVibration(500); //偍傑偗偵500msec傎偳偺僶僀僽儗乕僔儑儞偱帺屓庡挘
return false; //巰傫偩僼儔僌傪曉偡
}
return true; //惗偒偰偄傞僼儔僌傪曉偡
}
//------------------------ 夋柺昞帵
public void paint(Graphics g) { //昤夋偑梫媮偝傟偨傜偙偙偵棃傞
clearDisplay(g); //偲傝偁偊偢夋柺傪儀乕僗怓偱僋儕傾
switch(gameMode){ //尰嵼偺僎乕儉忬懺偵傛傝張棟暘婒
case gameMode_StartWait: //丂奐巒慜偺懸偪偱偁傟偽丄
if((loopCount & 2) != 0){ //丂丂僎乕儉儖乕僾僇僂儞僞偺抣偵墳偠偰丄
dispStringCenter(g,"PUSH START"); //丂丂丂暥帤楍傪彂偔
} //丂丂偙傟偱揰柵偡傞偙偲偵側傞
break;
case gameMode_Play: //僾儗僀拞偐
case gameMode_End: //廔椆堏峴拞偐
case gameMode_EndWait: //廔椆昞帵拞側傜丄
dispSeesaw(g); //丂僔乕僜乕傪昞帵
dispJumpman(g); //丂旘傫偱偄傞恖娫傪昞帵
dispOtherman(g); //丂旘傫偱偄側偄傎偆傕昞帵
dispscore(g); //丂僗僐傾傕昞帵
break;
}
}
/*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -