📄 eventwindow.java
字号:
setState_skating( iState, iCurrentTime );
break;
//#ifndef _LIMITED_EVENTS
// case EVENT_SKI_JUMP:
// setState_skiJump( iState, iCurrentTime );
// break;
//#endif
case 1/*@EVENT_BIATHLON*/:
setState_biathlon( iState, iCurrentTime );
break;
case 2/*@EVENT_SKIING*/:
setState_skiing( iState, iCurrentTime );
break;
}
m_canvas.m_bNeedPaint = true;
}
private void createAthlete( int iAthlete ) throws IOException
{
switch ( m_data.iEvent )
{
case 0/*@EVENT_SKATING*/:
createAthlete_skating( );
break;
//#ifndef _LIMITED_EVENTS
// case EVENT_SKI_JUMP:
// createAthlete_skiJump( iAthlete );
// break;
//#endif
case 1/*@EVENT_BIATHLON*/:
createAthlete_biathlon( iAthlete );
break;
case 2/*@EVENT_SKIING*/:
createAthlete_skiing( iAthlete );
break;
}
}
public void onIdle() throws IOException
{
if (m_canvas.m_iLoadStatus < 100)
return;
if ( m_bPaused )
return;
switch ( m_data.iEvent )
{
case 0/*@EVENT_SKATING*/:
onIdle_skating( );
break;
//#ifndef _LIMITED_EVENTS
// case EVENT_SKI_JUMP:
// onIdle_skiJump( );
// break;
//#endif
case 1/*@EVENT_BIATHLON*/:
onIdle_biathlon( );
break;
case 2/*@EVENT_SKIING*/:
onIdle_skiing( );
break;
}
}
public void keyPressed( int iKeyCode, int iGameAction ) throws IOException
{
if (m_canvas.m_iLoadStatus < 100)
return;
// do this to "clear" key presses during init
if (m_canvas.getCurrentTime() - m_iInitTime < 100)
return;
if (m_bPaused && iGameAction != 0x400000/*@VKEY_BACK*/)
{
unpause();
return;
}
if (iGameAction == 0x400000/*@VKEY_BACK*/)
{
m_data.bWasPaused = true;
m_canvas.m_iPauseReturn = -1;
m_canvas.openMenu( MenuWindow.MENU_EVENTMENU );
// JCC - I don't think this is needed
// if (m_data.iEvent == EVENT_BIATHLON)
// m_data.aiFrame[PLAYER]=m_aSprites[PLAYER][m_data.iCurrentSprite[PLAYER]].m_iCurrentFrame;
return;
}
switch ( m_data.iEvent )
{
case 0/*@EVENT_SKATING*/:
handleKey_skating( iKeyCode,iGameAction );
break;
//#ifndef _LIMITED_EVENTS
// case EVENT_SKI_JUMP:
// handleKey_skiJump( iKeyCode, iGameAction );
// break;
//#endif
case 1/*@EVENT_BIATHLON*/:
handleKey_biathlon( iKeyCode, iGameAction );
break;
case 2/*@EVENT_SKIING*/:
handleKey_skiing( iKeyCode, iGameAction );
break;
}
}
private void update( int iCurrentTime ) throws IOException
{
switch ( m_data.iEvent )
{
case 0/*@EVENT_SKATING*/:
update_skating( iCurrentTime );
break;
//#ifndef _LIMITED_EVENTS
// case EVENT_SKI_JUMP:
// update_skiJump( iCurrentTime );
// break;
//#endif
case 1/*@EVENT_BIATHLON*/:
update_biathlon( iCurrentTime );
break;
case 2/*@EVENT_SKIING*/:
update_skiing( iCurrentTime );
break;
}
}
public void paint( Graphics g )
{
switch ( m_data.iEvent )
{
case 0/*@EVENT_SKATING*/:
paint_skating( g );
break;
//#ifndef _LIMITED_EVENTS
// case EVENT_SKI_JUMP:
// paint_skiJump( g );
// break;
//#endif
case 1/*@EVENT_BIATHLON*/:
paint_biathlon( g );
break;
case 2/*@EVENT_SKIING*/:
paint_skiing( g );
break;
}
}
////////////Skating Window Begin///////////////
private void init_skating( ) throws IOException
{
if (!m_data.bInitialized)
{
m_data.iElapsedTime = 0;
m_data.iLastUpdateTime = (-1)/*@TIME_INVALID*/;
m_data.iStateStartTime = (-1)/*@TIME_INVALID*/;
m_data.iState = STATE_INVALID;
m_data.bFault = false;
}
int iStartOffset = (m_canvas.getWidth()>>1);
int iEndOffset = iStartOffset;
m_iMaxScrollX = 8000/*@MAX_DIST_PIXELS_COMMON*/ - iEndOffset + iStartOffset;
// Set initial human position
m_aiSkaterXPos[0/*@PLAYER*/] = iStartOffset - 30/*@P1_XOFFSET*/;
m_aiSkaterYPos[0/*@PLAYER*/] = m_canvas.getCanvasHeight() - 53/*@P1_YOFFSET*/;
// Set initial CPU position or ghost position
m_aiSkaterXPos[1/*@AI_PLAYER*/] = iStartOffset - 38/*@P2_XOFFSET*/;
m_aiSkaterYPos[1/*@AI_PLAYER*/] = m_canvas.getCanvasHeight() - 66/*@P2_YOFFSET*/;
// create athletes first(takes more memory)
m_aSprites = new Sprite[2/*@NUM_ATHLETES*/][SPRITE_COUNT_SKATING];
// this now creates both athletes and the background in one call
createAthlete( 0 );
m_canvas.updateLoadStatus(30);
// create interface
//////////INIT TIMING BAR BEGIN///////////////
m_iBarXPos = 0;
m_iBarYPos = m_canvas.getCanvasHeight() - 9;// -8 - 1;
m_iTimePeriod = 833/*@MAX_TIME_WINDOW_SKATING*/<<1;
//#ifdef _IS_NokiaS60
// m_timingBarFill = TorinoCanvas.loadPackedImage( RESFILE_SKATING, 5/*@RES_BARFILL*/ );
// m_timingBarLeft = TorinoCanvas.loadPackedImage( RESFILE_SKATING, 6/*@RES_BARLEFT*/ );
// m_timingBarRight = TorinoCanvas.loadPackedImage( RESFILE_SKATING, 7/*@RES_BARRIGHT*/ );
//#else
m_timingBarFill = TorinoCanvas.loadPackedImage( RESFILE_GFX, 5/*@RES_BARFILL*/ );
m_timingBarLeft = TorinoCanvas.loadPackedImage( RESFILE_GFX, 6/*@RES_BARLEFT*/ );
m_timingBarRight = TorinoCanvas.loadPackedImage( RESFILE_GFX, 7/*@RES_BARRIGHT*/ );
//#endif
m_iBarWidth = ( m_timingBarLeft.getWidth() << 1 ) + ( NUM_BAR_FILL * m_timingBarFill.getWidth() );
m_iBarXPos = (m_canvas.getWidth()>>1) - (m_iBarWidth>>1);
//#ifndef _SIMPLE_TIMING_BAR
//#ifdef _IS_NokiaS60
// Image src = TorinoCanvas.loadPackedImage( RESFILE_SKATING, 38/*@RES_BARHILR*/ );
//#else
// Image src = TorinoCanvas.loadPackedImage( RESFILE_GFX, 38/*@RES_BARHILR*/ );
//#endif
//
// m_sTimingBarHiliteR = new Sprite( src );
// m_sTimingBarHiliteR.setPosition( m_iBarXPos + m_iBarWidth - src.getWidth(), m_iBarYPos );
// m_sTimingBarHiliteR.m_bVisible = false;
// addToFront( m_sTimingBarHiliteR );
//
//#ifdef _IS_NokiaS60
// src = TorinoCanvas.loadPackedImage( RESFILE_SKATING, 37/*@RES_BARHILL*/ );
//#else
// src = TorinoCanvas.loadPackedImage( RESFILE_GFX, 37/*@RES_BARHILL*/ );
//#endif
//
// m_sTimingBarHiliteL = new Sprite( src );
// m_sTimingBarHiliteL.setPosition( m_iBarXPos, m_iBarYPos );
// m_sTimingBarHiliteL.m_bVisible = false;
// addToFront( m_sTimingBarHiliteL );
//
//#ifdef _IS_NokiaS60
// src = TorinoCanvas.loadPackedImage( RESFILE_SKATING, 9/*@RES_BARMAXHIT*/ );
//#else
// src = TorinoCanvas.loadPackedImage( RESFILE_GFX, 9/*@RES_BARMAXHIT*/ );
//#endif
//#else
//#ifdef _IS_NokiaS60
// Image src = TorinoCanvas.loadPackedImage( RESFILE_SKATING, 9/*@RES_BARMAXHIT*/ );
//#else
Image src = TorinoCanvas.loadPackedImage( RESFILE_GFX, 9/*@RES_BARMAXHIT*/ );
//#endif
//#endif
//#ifdef _IS_NokiaS60
// m_sMaxHit = new Sprite( src, 12, 12 );
//#else
m_sMaxHit = new Sprite( src, 8, 8 );
//#endif
m_sMaxHit.m_bVisible = false;
//#ifdef _SIMPLE_TIMING_BAR
m_sMaxHit.setFPS( 6 );
//#else
// m_sMaxHit.setFPS( 10 );
//#endif
addToFront( m_sMaxHit );
//#ifdef _IS_NokiaS60
// src = TorinoCanvas.loadPackedImage( RESFILE_SKATING, 8/*@RES_BARMARKER*/ );
//#else
src = TorinoCanvas.loadPackedImage( RESFILE_GFX, 8/*@RES_BARMARKER*/ );
//#endif
//#ifdef _IS_NokiaS60
// m_sMarker = new Sprite( src, 6, 10 );
//#else
m_sMarker = new Sprite( src, 3, 6 );
//#endif
m_sMarker.m_bVisible = false;
addToFront( m_sMarker );
//#ifdef _IS_NokiaS60
// src = TorinoCanvas.loadPackedImage( RESFILE_SKATING, 4/*@RES_BARCURSOR*/ );
//#else
src = TorinoCanvas.loadPackedImage( RESFILE_GFX, 4/*@RES_BARCURSOR*/ );
//#endif
m_sCursor = new Sprite( src );
addToFront( m_sCursor );
//////////INIT TIMING BAR END///////////////
m_canvas.updateLoadStatus(40);
//int iFlags = Flag_Hundredths|Flag_Minutes;
initClock(Flag_Hundredths|Flag_Minutes, 0);
m_canvas.updateLoadStatus(50);
//#ifndef _SIMPLE_LABELS
// m_label = new Label(m_canvas.m_largeFont, 0, 0, 0, 0x9DACFD/*@COLOR_GAME_TEXT*/, 0x000000/*@COLOR_BLACK*/, Label.STYLE_OUTLINE);
//#else
m_label = new Label(m_canvas.m_largeFont, 0, 0, 0, 0x000000/*@COLOR_BLACK*/, 0x000000/*@COLOR_BLACK*/, 0);
//#endif
m_label.setAlignment( Drawable.ALIGNH_CENTER );
m_label.m_iY = m_clockShelf[0].m_iY + m_clockShelf[0].m_iHeight;
addToFront(m_label);
m_label.m_bVisible = false;
if( m_data.bInitialized )
{
/*if( m_data.iState > STATE_FAULT )
{
// restore AI calcs after resume
m_data.iCPUDeltaV = m_data.iCPUDeltaV;
m_data.iCPUDeltaTime = m_data.iCPUDeltaTime;
}*/
updateLabel_skating();
}
//#ifndef _NO_GHOST
// if( m_data.iGameMode == 3/*@GAMEMODE_CHALLENGE*/ )
// {
//#ifndef _SIMPLE_LABELS
// m_GhostName = new Label(m_canvas.m_menuFont, 0, 0, 0, 0xFFFF00/*@COLOR_YELLOW*/, 0x000000/*@COLOR_BLACK*/, Label.STYLE_OUTLINE);
//#else
// m_GhostName = new Label(m_canvas.m_menuFont, 0, 0, 0, 0x000000/*@COLOR_BLACK*/, 0x000000/*@COLOR_BLACK*/, 0);
//#endif
// m_GhostName.setText( m_data.sGhostName );
// }
//#endif
m_canvas.updateLoadStatus(80);
//#if defined(_IS_NokiaS60) && !defined(_MMAPI)
// m_canvas.loadSound( 2/*@SOUND_FAULT*/, true );
// m_canvas.loadSound( 3/*@SOUND_GUNSHOT*/, true );
//#else
m_canvas.loadSound( 2/*@SOUND_FAULT*/ );
m_canvas.loadSound( 3/*@SOUND_GUNSHOT*/ );
//#endif
init_common();
m_canvas.updateLoadStatus(90);
}
private void init_common() throws IOException
{
createPauseLabels();
if (!m_data.bInitialized)
{
m_data.iLastUpdateTime = 0;
setState( STATE_READY, 0 );
m_data.bInitialized = true;
if ( m_data.iGameMode != 2/*@GAMEMODE_COMPETITION*/ )
{
unpause();
if( m_data.iState <= STATE_GO )
m_label.m_bVisible = true;
}
}
else
update( m_data.iLastUpdateTime );
//#if defined(_USE_THREAD) || defined(_USE_KEY_QUEUE)
// m_canvas.clearKeyEvents();
//#endif
m_iInitTime = m_canvas.getCurrentTime();
m_canvas.m_bNeedPaint = true;
}
private void createAthlete_skating() throws IOException
{
for( int iAthlete = 0; iAthlete < 2/*@NUM_ATHLETES*/; iAthlete++ )
{
m_data.aSimData[iAthlete].bInitialized = m_data.bInitialized;
m_aSim[iAthlete] = new Simulator( m_data.aSimData[iAthlete] );
m_aSim[iAthlete].setPosConstraint( 1/*@AXIS_Y*/, 0, Simulator.CONSTRAINT_ABOVE);
// determine the nation for the AI opponent
if (!m_data.bInitialized)
{
if ( iAthlete != 0/*@PLAYER*/ )
{
//#ifndef _NO_GHOST
// if( m_data.iGameMode != 3/*@GAMEMODE_CHALLENGE*/ )
// {
//#endif
int iPlayer = m_data.iNumPlayers + m_data.iCurrentPlayer;
if (iPlayer < m_data.iMaxPlayers && m_data.iGameMode == 2/*@GAMEMODE_COMPETITION*/
//#ifndef _NO_ONLINE
// && !m_data.bOnline
//#endif
)
{
m_data.iAINation = m_data.aiCountry[iPlayer];
}
else
{
do
{
m_data.iAINation = m_canvas.getRand(11/*@NATION_COUNT*/);
}
while ( (m_data.iGameMode == 2/*@GAMEMODE_COMPETITION*/ && m_data.iAINation ==
m_data.aiCountry[m_data.iCurrentPlayer])
|| ( m_data.iGameMode == 1/*@GAMEMODE_PRACTICE*/ && m_data.iAINation == 10/*@NATION_EPYX*/ ));
}
//#ifndef _NO_GHOST
// }
//#endif
}
}
// load palettes
int iPal = getPalette( iAthlete );
// load the sprites
// load the skating sprite
//#ifdef _IS_NokiaS60
// short src[] = TorinoCanvas.loadPackedPalPixels( RESFILE_SKATING, 1/*@RES_SKATECYCLE*/,
// RESFILE_SKATING, iPal );
// byte abyData[] = TorinoCanvas.loadPackedResource( RESFILE_SKATING, 3/*@RES_CYCLEDAT*/ );
//#else
Image src = TorinoCanvas.loadPackedPalImage( RESFILE_GFX, 1/*@RES_SKATECYCLE*/, RESFILE_COUNTRY, 2/*@RES_SKATEPAL*/ + iPal );
byte abyData[] = TorinoCanvas.loadPackedResource( RESFILE_GFX, 3/*@RES_CYCLEDAT*/ );
//#endif
m_aSprites[iAthlete][SPRITE_SKATING] = new Sprite( src, abyData );
m_aSprites[iAthlete][SPRITE_SKATING].setPosition((FP.toInt(m_aSim[iAthlete].getPos(0/*@AXIS_X*/)) * 16/*@PIXEL_PER_M*/)
+ m_aiSkaterXPos[iAthlete], m_aiSkaterYPos[iAthlete]);
//#ifdef _SHORT_ANIM
int shortCycle[] = {0,1,2,3,0,4,5,6};
m_aSprites[iAthlete][SPRITE_SKATING].setFrameSequence( shortCycle );
m_aSprites[iAthlete][SPRITE_SKATING].setFPS(5);
//#else
// m_aSprites[iAthlete][SPRITE_SKATING].setFPS(6);
//#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -