         {
             moveBall = true;
             gameState.battleField.ballSpeed.y = -gameState.battleField.ballSpeed.y;
+            gameState.battleField.xratio = 2;
+            if (gameState.battleField.ball.x < gameState.battleField.platform.p1.x + 3)
+            {
+                gameState.battleField.ballSpeed.x = -1;
+            }
+            else if (gameState.battleField.ball.x > gameState.battleField.platform.p2.x - 3)
+            {
+                gameState.battleField.ballSpeed.x = +1;
+            }
+            else
+            {
+                gameState.battleField.xratio = 1;
+            }
         }
         if (checkBlockHit())
         {

    }
    while (moveBall);
    engine.refreshPoint( gameState.battleField.ball );
}

void loadLevel(void)

    gameState.battleField.platform.setRect( 20, 56, 31, 58 );
    gameState.battleField.ball.setPoint( 25, 55);
    gameState.battleField.ballSpeed.setPoint( 1, -1);
    gameState.battleField.xratio = 2;
    gameState.battleField.ratioCounter = gameState.battleField.xratio;
    engine.drawCallback( drawBattleField );
    engine.loopCallback( battleFieldLoop );
    loadLevel();
