📄 frontend.java
字号:
g.setColor(color);
g.fillRect(x + 1, y, w - 2, 1);
g.fillRect(x, y + 1, w, h - 2);
g.fillRect(x + 1, y + h - 1, w - 2, 1);
}
private void PaintGameResults(Graphics g)
{
int iPosX =((176 -(2 * 20))/ 3);
int iPosY =(20 +((208 - 20 - 20)/ 3))- 20;
int iDestX = 20;
int iDestY = 20;
drawNotchRect(g, iPosX, iPosY, iDestX, iDestY, 0);
drawCountry(g, Basketball.iAwayTeam, iPosX, iPosY, Basketball.bSelTeam1);
iPosX = 176 -((176 -(2 * 20))/ 3)- 20;
drawNotchRect(g, iPosX, iPosY, iDestX, iDestY, 0);
drawCountry(g, Basketball.iHomeTeam, iPosX, iPosY, !Basketball.bSelTeam1);
}
private void PaintTeamSel(Graphics g)
{
PaintTeamLogos(g);
int iPosX =((176 -(2 * 20))/ 3);
int iPosY =(20 +((208 - 20 - 20)/ 3));
g.setClip(176 / 2 - 20, iPosY + 20 / 2 - 5, 40, 20);
bhFont bold = getColoredFont(0x0000FF, true);
bold.stringCharNew(g, 176 / 2, iPosY + 20 / 2 - 5, "()", 2, 0x02);
if(Basketball.bSelTeam1 == true)
iPosX =((176 -(2 * 20))/ 3)+ 20 / 2;
else
iPosX = 176 -((176 -(2 * 20))/ 3)- 20 / 2;
drawVerticalArrows(g, iPosX,(20 +((208 - 20 - 20)/ 3)), 20);
}
private void PaintSelTeamRats(Graphics g)
{
int iPosX =((176 -(2 * 20))/ 3)- 6;
int iPosY =(20 +((208 - 20 - 20)/ 3))- 8;
int iDestX = 20;
int iDestY = 20;
drawNotchRect(g, iPosX, iPosY, iDestX, iDestY, 0);
if(m_iState == 13 || Basketball.iTeamSel == 0)
drawCountry(g, Basketball.iAwayTeam, iPosX, iPosY, true);
else
drawCountry(g, Basketball.iHomeTeam, iPosX, iPosY, true);
iPosX =((176 -(2 * 20))/ 3)- 6 + 20 / 2;
drawVerticalArrows(g, iPosX, iPosY, 20);
}
private void PaintTeamLogos(Graphics g)
{
int iPosX =((176 -(2 * 38))/ 3);
int iPosY =(20 +((208 - 20 - 20)/ 3))- 24;
int iDestX = 38;
int iDestY = 12+6;
drawNotchRect(g, iPosX, iPosY, iDestX, iDestY, 0);
iPosX +=((176 -(2 * 38))/ 3)+ 38;
drawNotchRect(g, iPosX, iPosY, iDestX, iDestY, 0);
iPosX =((176 -(2 * 20))/ 3);
iPosY =(20 +((208 - 20 - 20)/ 3));
iDestX = 20;
iDestY = 20;
drawNotchRect(g, iPosX - 1, iPosY - 1, iDestX + 2, iDestY + 2, 0);
drawCountry(g, Basketball.iAwayTeam, iPosX, iPosY, Basketball.bSelTeam1);
iPosX = 176 -((176 -(2 * 20))/ 3)- 20;
drawNotchRect(g, iPosX - 1, iPosY - 1, iDestX + 2, iDestY + 2, 0);
drawCountry(g, Basketball.iHomeTeam, iPosX, iPosY, !Basketball.bSelTeam1);
}
private void drawCountry(Graphics g, int country, int x, int y, boolean selected)
{
int iSrcX = 20 *(country % 6);
int iSrcY = 20 *(country / 6)+ 23;
g.setClip(x, y, 20, 20);
g.drawImage(Basketball.pFrontEndArt, x - iSrcX, y - iSrcY, 0);
if(selected == true && m_iState == 11)
{
drawRect(g, x, y, 20, 20, 0x0099FF);
}
return;
}
private void drawVerticalArrows(Graphics g, int x, int y, int idY)
{
g.setClip(x - 10, y - 10, 10 * 2, 10);
bhFont bold = getColoredFont(0x0000FF, true);
bold.stringCharNew(g, x, y - 10, "*", 1, 0x02);
g.setClip(x - 10, y + idY, 10 * 2, 10);
bold.stringCharNew(g, x, y + idY - 3, "+", 1, 0x02);
return;
}
private void PaintTeamSelIcons(Graphics g)
{
int iPosX = 176 / 2 + Basketball.iTeamSel * 26;
int iPosY =(20 +((208 - 20 - 20)/ 3))+ 20 + 12;
bhFont bold = getColoredFont(0x0000FF, true);
g.setClip(0, 0, 176, 208);
bold.stringChar(g, iPosX, iPosY + 0, "<您>", - 1, 0x02);
iPosX = 176 / 2 -(Basketball.iTeamSel * 26);
bold.stringChar(g, iPosX, iPosY + 12, "<电脑>", - 1, 0x02);
g.setColor(0xffffff);
g.drawString( "按左右键选择队伍",176/2, 208-30, g.HCENTER|g.TOP);
}
private void PaintStatBars(Graphics g)
{
int iPosX =((176 -(70 + 17 * 2))/ 4);
int iPosY =(20 +((208 - 20)/ 2)-(4 * 13))+ (13+3) - 1;
int iDestX = 176 - 2 *((176 -(70 + 17 * 2))/ 4);
int iDestY = 11+2;//050428
for(int i = 0; i < 6; i++)
{
int iColor = 0x0000FF;
int iPosX2 =((176 -(70 + 17 * 2))/ 4)+ 70;
int iPosY2 = iPosY + (13+1) * i;
if(i == 0)
iColor = 0x003580FD;
else if(Basketball.iPlayerSel == i - 1)
iColor = 0x00ff9933;
drawNotchRect(g, iPosX, iPosY2, iDestX, iDestY, iColor);
g.setColor(0xE0E070);
g.setClip(iPosX2, iPosY2, 1, iDestY);
g.fillRect(iPosX2, iPosY2, 1, iDestY);
iPosX2 += 17 +((176 -(70 + 17 * 2))/ 4);
g.setClip(iPosX2, iPosY2, 1, iDestY);
g.fillRect(iPosX2, iPosY2, 1, iDestY);
}
iPosX =((176 -(70 + 17 * 2))/ 4)* 2 + 70 + 17;
iPosY += (13) * 6 ;
g.setClip(iPosX - 17, iPosY, 17 * 2, iDestY);
bhFont bold = getColoredFont(0x0000FF, true);
bold.stringCharNew(g, iPosX, iPosY+5, "( )", 5, 0x02);
}
Font sFont=Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_PLAIN,Font.SIZE_SMALL);
private void PaintFakeSoftKeys(Graphics g)
{
g.setClip(0,0, 176, 208);
g.setColor(0xFFFFFF);
g.setFont(sFont);
g.drawString(SCREEN_TYPES[Screen_SelType[m_iState]][0], 0, 208 - 15, 0);
g.drawString(SCREEN_TYPES[Screen_SelType[m_iState]][1], 176,208 - 15,(Graphics.TOP | Graphics.RIGHT));
}
private void PaintLoadBar(Graphics g, int iPercent)
{
int iPosX = 5;
int iPosY = 208 - 22;
int iDestX = 176 - 10;
int iDestY = 12;
int iFillX =((iDestX - 4)* iPercent)/ 140;
g.setClip(iPosX, iPosY, iDestX, iDestY);
g.setColor(0x000000);
g.fillRect(iPosX, iPosY, iDestX, iDestY);
g.setColor(0x0000FF);
g.fillRect(iPosX + 1, iPosY + 1, iDestX - 2, iDestY - 2);
g.setColor(0x00ff9933);
g.fillRect(iPosX + 2, iPosY + 2, iFillX, iDestY - 4);
g.setClip(0, 0, 176, 208);
}
private void updateMarquee()
{
m_iMarqueePosX -= 5;
if(m_iMarqueePosX < m_pMarqeeText.length()* -5)
{
m_iMarqueeState++;
InitMarqueeText();
}
}
private void InitMarqueeText()
{
int iHomeTeam = Basketball.hGameWnd.GetHomeTeam();
int iAwayTeam = Basketball.hGameWnd.GetAwayTeam();
m_iMarqueePosX = 176;
switch(m_iState)
{
case 33 :
m_pMarqeeText = Basketball.hGameWnd.GetName(iAwayTeam)+ " 对 " + Basketball.hGameWnd.GetName(iHomeTeam)+ /*". Coming to you live from "*/" 欢迎来到" + Basketball.hGameWnd.GetCity(iHomeTeam)+ "!";
break;
default :
case 34 :
switch(m_iMarqueeState)
{
case 0 :
InitMarqueeHighScorer();
break;
case 1 :
InitMarqueeDefender();
break;
case 2 :
default :
InitMarqueeTeamShooting();
m_iMarqueeState = -1;
break;
}
}
}
private String CheckPlural(int x)
{
if(x != 1)
//050428 return "s";
return "";
else
return "";
}
private void InitMarqueeHighScorer()
{
int iHomeTeam = Basketball.hGameWnd.GetHomeTeam();
int iAwayTeam = Basketball.hGameWnd.GetAwayTeam();
Player pHomLdScr = Basketball.hGameWnd.GetLeadScorer(iHomeTeam);
Player pAwyLdScr = Basketball.hGameWnd.GetLeadScorer(iAwayTeam);
int iHomScrShts = pHomLdScr.Get2PtFGAttempts()+ pHomLdScr.Get3ptFGAttempts();
int iHomScrPnts = pHomLdScr.Get2PtFGMade()* 2 + pHomLdScr.Get3ptFGMade()* 3;
int iAwyScrShts = pAwyLdScr.Get2PtFGAttempts()+ pAwyLdScr.Get3ptFGAttempts();
int iAwyScrPnts = pAwyLdScr.Get2PtFGMade()* 2 + pAwyLdScr.Get3ptFGMade()* 3;
// String pStr1 = pHomLdScr.GetFirstName()+ " " + pHomLdScr.GetLastName()+ " leads the " + Basketball.hGameWnd.GetName(iHomeTeam)+ " with " + iHomScrPnts + " points on " + iHomScrShts + " shot" + CheckPlural(iHomScrShts)+ ". ";
// String pStr2 = pAwyLdScr.GetFirstName()+ " " + pAwyLdScr.GetLastName()+ " leads the " + Basketball.hGameWnd.GetName(iAwayTeam)+ " with " + iAwyScrPnts + " points on " + iAwyScrShts + " shot" + CheckPlural(iAwyScrShts)+ ".";
String pStr1 = pHomLdScr.GetFirstName()+ "." + pHomLdScr.GetLastName()+ " 率领" + Basketball.hGameWnd.GetName(iHomeTeam)+ "独得" + iHomScrPnts + "分 ,投篮次数" + iHomScrShts + "投" + CheckPlural(iHomScrShts)+ ". ";
String pStr2 = pAwyLdScr.GetFirstName()+ "." + pAwyLdScr.GetLastName()+ " 率领" + Basketball.hGameWnd.GetName(iAwayTeam)+ "独得" + iAwyScrPnts + "分 ,投篮次数" + iAwyScrShts + "投" + CheckPlural(iAwyScrShts)+ ".";
m_pMarqeeText = pStr1 + pStr2+" ";
}
private void InitMarqueeDefender()
{
int iHomeTeam = Basketball.hGameWnd.GetHomeTeam();
int iAwayTeam = Basketball.hGameWnd.GetAwayTeam();
Player pHomDfnder = Basketball.hGameWnd.GetLeadDefender(iHomeTeam);
Player pAwyDfnder = Basketball.hGameWnd.GetLeadDefender(iAwayTeam);
int iHomStls = pHomDfnder.GetStls();
int iHomBlks = pHomDfnder.GetBlks();
int iAwyStls = pAwyDfnder.GetStls();
int iAwyBlks = pAwyDfnder.GetBlks();
String pStr1 = pHomDfnder.GetFirstName()+ " " + pHomDfnder.GetLastName()+ " 率领 " + Basketball.hGameWnd.GetName(iHomeTeam)+ " 防守取得抢断 " + iHomStls + " 次 " + CheckPlural(iHomStls)+ " 和 " + iHomBlks + " 次盖帽" + CheckPlural(iHomBlks)+ ".";
String pStr2 = " " + pAwyDfnder.GetFirstName()+ " " + pAwyDfnder.GetLastName()+ " 率领 " + Basketball.hGameWnd.GetName(iAwayTeam)+ " 取得抢断 " + iAwyStls + " 次 " + CheckPlural(iAwyStls)+ " 和 " + iAwyBlks + " 次盖帽" + CheckPlural(iAwyStls)+ ".";
m_pMarqeeText = pStr1 + pStr2+" ";;
}
private void InitMarqueeTeamShooting()
{
int iHomeTeam = Basketball.hGameWnd.GetHomeTeam();
int iAwayTeam = Basketball.hGameWnd.GetAwayTeam();
int iHomShotPercentage = Basketball.hGameWnd.GetTeamShotPct(iHomeTeam);
int iAwyShotPercentage = Basketball.hGameWnd.GetTeamShotPct(iAwayTeam);
// m_pMarqeeText = "As a Team the " + Basketball.hGameWnd.GetName(iHomeTeam)+ " are shooting " + iHomShotPercentage + " percent. The " + Basketball.hGameWnd.GetName(iAwayTeam)+ " are shooting " + iAwyShotPercentage + " percent.";
m_pMarqeeText = "" + Basketball.hGameWnd.GetName(iHomeTeam)+ "的命中率是" + iHomShotPercentage + " %. " + Basketball.hGameWnd.GetName(iAwayTeam)+ "的命中率是" + iAwyShotPercentage + " %.";
}
private void HandlePlayerStatsRatsInput(int param1)
{
int iColMax = 8;
if(m_iState == 16)
iColMax = 11;
switch(param1)
{
case Canvas.UP :
Basketball.iPlayerSel =(Basketball.iPlayerSel > 0)? Basketball.iPlayerSel - 1 : 4;
break;
case Canvas.DOWN :
Basketball.iPlayerSel =(Basketball.iPlayerSel < 4)? Basketball.iPlayerSel + 1 : 0;
break;
case Canvas.LEFT :
Basketball.iStatSel =(Basketball.iStatSel > 0)? Basketball.iStatSel - 1 : iColMax - 1;
break;
case Canvas.RIGHT :
Basketball.iStatSel =(Basketball.iStatSel < iColMax - 1)? Basketball.iStatSel + 1 : 0;
break;
}
if(m_iState == 16)
ResetPlayerStats();
else
ResetPlayerRatings();
Basketball.paintAllWindows();
}
private void HandleTeamSelStatsInput(int param1)
{
switch(param1)
{
case Canvas.UP :
case Canvas.DOWN :
Basketball.iTeamSel =(Basketball.iTeamSel + 1)% 2;
break;
case Canvas.LEFT :
case Canvas.RIGHT :
break;
default :
break;
}
ResetTeamStats();
Basketball.paintAllWindows();
}
private void ResetTeamRatings()
{
win pWin;
pWin = getDlgItem(108);
Basketball.pTeamOvrRat = "" + Basketball.iOverallRating[1];
pWin.setText(Basketball.pTeamOvrRat);
pWin = getDlgItem(109);
Basketball.pTeamOffRat = "" + Basketball.iOffenseRating[1];
pWin.setText(Basketball.pTeamOffRat);
pWin = getDlgItem(110);
Basketball.pTeamDefRat = "" + Basketball.iDefenseRating[1];
pWin.setText(Basketball.pTeamDefRat);
}
private void ResetTeamStats()
{
win pWin;
Game pGame = Basketball.hGameWnd;
int iTeam = pGame.GetAwayTeam();
if(Basketball.iTeamSel > 0)
iTeam = pGame.GetHomeTeam();
pWin = getDlgItem(103);
Basketball.pHomeTeamName = /*pGame.GetCity(iTeam)+ " " +*/ pGame.GetName(iTeam);
pWin.setText(Basketball.pHomeTeamName);
pWin = getDlgItem(128);
Basketball.pTeamOvrRat = "" + pGame.GetTotalScore(iTeam);
pWin.setText(Basketball.pTeamOvrRat);
pWin = getDlgItem(129);
Basketball.pTeamOffRat = "" + pGame.GetTeamShotPct(iTeam);
pWin.setText(Basketball.pTeamOffRat);
pWin = getDlgItem(130);
Basketball.pTeamDefRat = "" + pGame.GetTeamTurnOvers(iTeam);
pWin.setText(Basketball.pTeamDefRat);
}
private void SetStats(win pWin, int pRats[], int iStatSel, int iIndex, int iCol)
{
switch(iStatSel)
{
case 0 :
Basketball.pPlayerStat[iCol][iIndex]= PLAYER_TYPE[iIndex];
break;
default :
Basketball.pPlayerStat[iCol][iIndex]= "" + pRats[iStatSel];
break;
}
pWin.setText(Basketball.pPlayerStat[iCol][iIndex]);
}
private void ResetPlayerStats()
{
win pWin;
int iStatIndex1 = Basketball.iStatSel;
int iStatIndex2 =(Basketball.iStatSel + 1)% 11;
pWin = getDlgItem(131);
String pStatHeader = STATSSTRING;
pWin.setText(pStatHeader);
pWin = getDlgItem(103);
Game pGame = Basketball.hGameWnd;
int iTeam;
if(Basketball.iTeamSel == 0)
{
pWin.setText(Basketball.pAwayTeamName);
iTeam = pGame.GetAwayTeam();
}
else
{
pWin.setText(Basketball.pHomeTeamName);
iTeam = pGame.GetHomeTeam();
}
pWin = getDlgItem(111);
pStatHeader = STATHEADERS[iStatIndex1];
pWin.setText(pStatHeader);
pWin = getDlgItem(112);
pStatHeader = STATHEADERS[iStatIndex2];
pWin.setText(pStatHeader);
for(int i = 0; i < 5; i++)
{
int pStats[]= new int[11];
pStats[0]= i;
pStats[1]= pGame.GetPlayerPts(iTeam, i);
pStats[2]= pGame.GetPlayerShotPercentage(iTeam, i);
pStats[3]= pGame.GetPlayer(iTeam, i).Get3ptFGMade();
pStats[4]= pGame.GetPlayer(iTeam, i).Get3ptFGAttempts();//pGame.GetPlayer(iTeam, i).Get2PtFGMade();
pStats[5]= pGame.GetPlayer(iTeam, i).Get2PtFGMade(); //pGame.GetPlayer(iTeam, i).Get3ptFGAttempts();
pStats[6]= pGame.GetPlayer(iTeam, i).Get2PtFGAttempts();
pStats[7]= pGame.GetPlayer(iTeam, i).GetStls();
pStats[8]= pGame.GetPlayer(iTeam, i).GetAsts();
pStats[9]= pGame.GetPlayer(iTeam, i).GetRebs();
pStats[10]= pGame.GetPlayer(iTeam, i).GetBlks();
pWin = getDlgItem(113 + i);
Basketball.pPlayerNames[i]= /*pGame.GetPlayer(iTeam, i).GetFirstName().charAt(0)+ ". " +*/ pGame.GetPlayer(iTeam, i).GetLastName();
pWin.setText(Basketball.pPlayerNames[i]);
pWin = getDlgItem(118 + i);
SetStats(pWin, pStats, iStatIndex1, i, 0);
pWin = getDlgItem(123 + i);
SetStats(pWin, pStats, iStatIndex2, i, 1);
}
}
private void ResetPlayerRatings()
{
win pWin;
int iStatIndex1 = Basketball.iStatSel;
int iStatIndex2 =(Basketball.iStatSel + 1)% 8;
pWin = getDlgItem(131);
String pStatHeader = RATINGSTRING;
pWin.setText(pStatHeader);
pWin = getDlgItem(103);
pWin.setText(Basketball.pAwayTeamName);
pWin = getDlgItem(111);
pStatHeader = RATHEADERS[iStatIndex1];
pWin.setText(pStatHeader);
pWin = getDlgItem(112);
pStatHeader = RATHEADERS[iStatIndex2];
pWin.setText(pStatHeader);
for(int i = 0; i < 5; i++)
{
int pRats[]= new int[8];
byte pBuf[]= new byte[1];
pRats[0]= i;
pRats[1]= Basketball.pPlayerStats_iSpeed[1][i];
pRats[2]= Basketball.pPlayerStats_i2ptShotRating[1][i];
pRats[3]= Basketball.pPlayerStats_i3ptShotRating[1][i];
pRats[4]= Basketball.pPlayerStats_iDunkRating[1][i];
pRats[5]= Basketball.pPlayerStats_iReboundRating[1][i];
pRats[6]= Basketball.pPlayerStats_iBlockRating[1][i];
pRats[7]= Basketball.pPlayerStats_iDribPassRating[1][i];
pWin = getDlgItem(113 + i);
//pBuf[0]=(byte)Basketball.pPlayerStats_pFirstName[1][i].charAt(0);
//String pInitial = new String(pBuf);
Basketball.pPlayerNames[i]= /*"" + Basketball.pPlayerStats_pFirstName[1][i].charAt(0)+ ". " + */Basketball.pPlayerStats_pLastName[1][i];
pWin.setText(Basketball.pPlayerNames[i]);
pWin = getDlgItem(118 + i);
SetStats(pWin, pRats, iStatIndex1, i, 0);
pWin = getDlgItem(123 + i);
SetStats(pWin, pRats, iStatIndex2, i, 1);
pRats = null;
}
}
// static String temp=null;
public static String bufferToString(byte buf[], int maxLen)
{
int len = 0;
String temp = "i am null";
while(len < maxLen)
{
if(buf[len]== 0)
break;
len++;
}
try {
temp = new String(buf, 0, len,"UTF-8");
}
catch(Exception e){
temp = "error!!!";
}
// System.out.println(temp);
return temp;
}
public static void LoadTeamStats(int iTeamID, int iIndex)
{
try
{
ByteArrayInputStream pIn = new ByteArrayInputStream(Basketball.m_pStatBuf);
DataInputStream pDI = new DataInputStream(pIn);
byte pBuf[]= new byte[16];
pDI.skip(iTeamID * 284);
int iID = pDI.read();
Basketball.iOverallRating[iIndex]= pDI.read();
Basketball.iOffenseRating[iIndex]= pDI.read();
Basketball.iDefenseRating[iIndex]= pDI.read();
for(int j = 0; j < 4; j++)
{
for(int k = 0; k < 4; k++)
{
Basketball.pHomeRemaps[iIndex][j][k]= pDI.readByte();
}
}
for(int l = 0; l < 4; l++)
{
for(int m = 0; m < 4; m++)
{
Basketball.pAwayRemaps[iIndex][l][m]= pDI.readByte();
}
}
pDI.read(pBuf, 0, 16);
Basketball.pTeamName[iIndex]= bufferToString(pBuf, 16);
pDI.read(pBuf, 0, 16);
Basketball.pTeamCity[iIndex]= bufferToString(pBuf, 16);
pDI.read(pBuf, 0, 16);
Basketball.pNickName[iIndex]= bufferToString(pBuf, 16);
for(int i = 0; i < 5; i++)
{
Basketball.pPlayerStats_iSpeed[iIndex][i]=(byte)pDI.read();
Basketball.pPlayerStats_i2ptShotRating[iIndex][i]=(byte)pDI.read();
Basketball.pPlayerStats_i3ptShotRating[iIndex][i]=(byte)pDI.read();
Basketball.pPlayerStats_iDunkRating[iIndex][i]=(byte)pDI.read();
Basketball.pPlayerStats_iReboundRating[iIndex][i]=(byte)pDI.read();
Basketball.pPlayerStats_iBlockRating[iIndex][i]=(byte)pDI.read();
Basketball.pPlayerStats_iDribPassRating[iIndex][i]=(byte)pDI.read();
int iHeight = pDI.read();
pDI.read(pBuf, 0, 16);
Basketball.pPlayerStats_pFirstName[iIndex][i]= bufferToString(pBuf, 16);
pDI.read(pBuf, 0, 16);
Basketball.pPlayerStats_pLastName[iIndex][i]= bufferToString(pBuf, 16);
}
pDI.close();
pIn.close();
pDI = null;
pBuf = null;
}
catch(Exception e)
{
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -