void setup() { size(ScreenWidth, ScreenHeight, P3D); colorMode(RGB, 255, 255, 255); frameRate(30); IMAGE_POOL = new ImagePool(); GAME_TABLE = new GameTable(); PLAYER = new Player(); BALL = new Ball(); INPUT = new Input(); MENUS = new Menus(); IMAGE_POOL.Initialize(); GAME_TABLE.Initialize(); PLAYER.Initialize(); BALL.Initialize(); INPUT.Initialize(); MENUS.Initialize(); } void draw() { background(0); if( MENUS.m_MenuIndex == 0 || MENUS.m_MenuIndex == 4 || MENUS.m_MenuIndex == 5 || MENUS.m_MenuIndex == 6 ) { PLAYER.Update(); BALL.Update(); if( PLAYER.m_DrunkLevel > 0.0 ) { float halfOpacity = 270.0 - PLAYER.m_DrunkOpacity; if( PLAYER.m_DrunkLevel > 0.35 ) { halfOpacity = 270.0 - (PLAYER.m_DrunkOpacity * 1.3); if( halfOpacity < 0.0 ) { halfOpacity = 0.0; } } GAME_TABLE.DrawTable( halfOpacity, PLAYER.m_DrunkOffsetX1, PLAYER.m_DrunkOffsetY1 ); GAME_TABLE.DrawCups( halfOpacity, PLAYER.m_DrunkOffsetX1, PLAYER.m_DrunkOffsetY1, BALL.m_CupRow ); PLAYER.Draw( halfOpacity, PLAYER.m_DrunkOffsetX1, PLAYER.m_DrunkOffsetY1 ); if( PLAYER.m_DrunkLevel > 0.35 ) { GAME_TABLE.DrawTable( halfOpacity, PLAYER.m_DrunkOffsetX2, PLAYER.m_DrunkOffsetY2 ); GAME_TABLE.DrawCups( halfOpacity, PLAYER.m_DrunkOffsetX2, PLAYER.m_DrunkOffsetY2, BALL.m_CupRow ); PLAYER.Draw( halfOpacity, PLAYER.m_DrunkOffsetX2, PLAYER.m_DrunkOffsetY2 ); } } float actualDrunkOpacity = PLAYER.m_DrunkOpacity + 25.0; if( actualDrunkOpacity > 255.0 ) { actualDrunkOpacity = 255.0; } GAME_TABLE.DrawTable( actualDrunkOpacity, 0.0, 0.0 ); GAME_TABLE.DrawCups( actualDrunkOpacity, 0.0, 0.0, BALL.m_CupRow ); if( BALL.m_CupRow == -1 ) { BALL.Draw( actualDrunkOpacity, 0.0, 0.0 ); } PLAYER.Draw( actualDrunkOpacity, 0.0, 0.0 ); MENUS.Draw(); } else { GAME_TABLE.DrawTable( 255.0, 0.0, 0.0 ); GAME_TABLE.DrawCups( 255.0, 0.0, 0.0, BALL.m_CupRow ); MENUS.Draw(); } }