class Input { boolean m_DragPlayer; boolean m_WaitingToPounce; float m_LastMouseX; float m_LastMouseY; int m_DragBit; void Initialize() { m_DragPlayer = false; m_WaitingToPounce = false; m_DragBit = -1; } } void mousePressed() { if( mouseButton == LEFT ) { if( EDITOR_MODE == true ) { int i; for( i = 0; i < NUM_SHADOW_BITS; ++i ) { if( mouseX > SHADOW_BITS[i].m_Position.x - (SHADOW_BITS[i].m_DrawWidth / 2.f) && mouseX < SHADOW_BITS[i].m_Position.x + (SHADOW_BITS[i].m_DrawWidth / 2.f) && mouseY > SHADOW_BITS[i].m_Position.y - (SHADOW_BITS[i].m_DrawHeight / 2.f) && mouseY < SHADOW_BITS[i].m_Position.y + (SHADOW_BITS[i].m_DrawHeight / 2.f) ) { INPUT.m_DragBit = i; break; } } /* SHADOW_BITS[EDITOR_COUNT].m_Position.x = mouseX; SHADOW_BITS[EDITOR_COUNT].m_Position.y = mouseY; EDITOR_COUNT++; if( EDITOR_COUNT >= NUM_SHADOW_BITS ) { print("OUT OF SHADOW BITS!"); EDITOR_COUNT = 0; } */ } else { if( mouseX > SHADOW_BITS[0].m_Position.x - (SHADOW_BITS[0].m_DrawWidth / 2.f) && mouseX < SHADOW_BITS[0].m_Position.x + (SHADOW_BITS[0].m_DrawWidth / 2.f) && mouseY > SHADOW_BITS[0].m_Position.y - (SHADOW_BITS[0].m_DrawHeight / 2.f) && mouseY < SHADOW_BITS[0].m_Position.y + (SHADOW_BITS[0].m_DrawHeight / 2.f) ) { INPUT.m_DragPlayer = true; INPUT.m_LastMouseX = mouseX; INPUT.m_LastMouseY = mouseY; } } } if( mouseButton == RIGHT ) { if( EDITOR_MODE == true ) { --EDITOR_COUNT; SHADOW_BITS[EDITOR_COUNT].m_Position.x = 0.f; SHADOW_BITS[EDITOR_COUNT].m_Position.y = 0.f; if( EDITOR_COUNT < 0 ) { EDITOR_COUNT = NUM_SHADOW_BITS - 1; } } else { INPUT.m_WaitingToPounce = true; PLAYER.SetReadyToPounce(); } } } void mouseReleased() { if( INPUT.m_WaitingToPounce == true ) { PLAYER.Pounce( (float)mouseX, (float)mouseY ); } INPUT.m_DragPlayer = false; INPUT.m_WaitingToPounce = false; INPUT.m_DragBit = -1; } void mouseDragged() { if( EDITOR_MODE == true && INPUT.m_DragBit != -1 ) { SHADOW_BITS[INPUT.m_DragBit].m_Position.x = mouseX; SHADOW_BITS[INPUT.m_DragBit].m_Position.y = mouseY; } else if( INPUT.m_DragPlayer == true ) { PLAYER.Move( (float)mouseX - INPUT.m_LastMouseX, (float)mouseY - INPUT.m_LastMouseY ); INPUT.m_LastMouseX = mouseX; INPUT.m_LastMouseY = mouseY; } } void keyPressed() { if( key == 'w' ) { SHADOW_BITS[0].m_Position.y -= 3.f; PLAYER.SetActive(); } if( key == 'a' ) { SHADOW_BITS[0].m_Position.x -= 3.f; PLAYER.SetActive(); } if( key == 's' ) { SHADOW_BITS[0].m_Position.y += 3.f; PLAYER.SetActive(); } if( key == 'd' ) { SHADOW_BITS[0].m_Position.x += 3.f; PLAYER.SetActive(); } if( key == ' ' ) { GAME_FREEZE ^= true; } if( key == 'o' ) { if( EDITOR_MODE == true ) { GRID.SaveShadowBits(); } } }