settings.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. var CANVAS_WIDTH = 790;
  2. var CANVAS_HEIGHT = 1410;
  3. var CANVAS_WIDTH_HALF = CANVAS_WIDTH * 0.5;
  4. var CANVAS_HEIGHT_HALF = CANVAS_HEIGHT * 0.5;
  5. var EDGEBOARD_X = 150;
  6. var EDGEBOARD_Y = 212;
  7. var DISABLE_SOUND_MOBILE = false;
  8. var FONT_GAME = "Arial";
  9. var SECONDARY_FONT = "blackplotanregular";
  10. var MS_FADE_SOUNDTRACK = 750;
  11. var FPS = 30;
  12. var FPS_DESKTOP = 60;
  13. var FPS_TIME = 1 / FPS;
  14. var ROLL_BALL_RATE = 60 / FPS;
  15. var TIME_REFRESH_DIRECTION = 0.05;
  16. var TIME_RESET_LAUNCH = 3;
  17. var DIRECTION_VELOCITY = -2;
  18. var DIRECTION_CHARACTER_VELOCITY = 6;
  19. var LAUNCH_TURN = 10;
  20. var TURNS_BOARD_POS = {x: 0, y: 362};
  21. var NUM_SPRITE_MONITOR = 52;
  22. var NUM_SPRITE_PLAYER = 36;
  23. var CHARACTER_START_POS = {x: 40, y: 702};
  24. var STATE_LOADING = 0;
  25. var STATE_MENU = 1;
  26. var STATE_HELP = 1;
  27. var STATE_GAME = 3;
  28. var ON_MOUSE_DOWN = 0;
  29. var ON_MOUSE_UP = 1;
  30. var ON_MOUSE_OVER = 2;
  31. var ON_MOUSE_OUT = 3;
  32. var ON_DRAG_START = 4;
  33. var ON_DRAG_END = 5;
  34. var ON_TWEEN_ENDED = 6;
  35. var ON_BUT_NO_DOWN = 7;
  36. var ON_BUT_YES_DOWN = 8;
  37. var STEP_RATE = 1;
  38. var TEXT_SIZE = [80, 100, 130];
  39. var TEXT_EXCELLENT_COLOR = ["#fff", "#5d96fe"];
  40. var TEXT_COLOR = "#ffffff";
  41. var TEXT_COLOR_STROKE = "#000000";
  42. var TIME_INTERVAL_STROBE = 0.2;
  43. var PHYSICS_ACCURACY = 3;
  44. var BALL_VELOCITY_MULTIPLIER = 1;
  45. var PHYSICS_STEP = 1 / (FPS * STEP_RATE);
  46. var STATE_INIT = 0;
  47. var STATE_PLAY = 1;
  48. var STATE_FINISH = 2;
  49. var STATE_PAUSE = 3;
  50. var TIME_REFRESH_POSITION;
  51. var MONITOR_STRIKE = 0;
  52. var MONITOR_SPARE = 1;
  53. var MONITOR_GUTTER = 2;
  54. var BALL_MASS = 7 * 7;
  55. var BALL_RADIUS = 12.5;
  56. var BALL = 0;
  57. var PINS = 1;
  58. var WALL = 2;
  59. var FLOOR = 3;
  60. var CHANNEL = 4;
  61. var PINS_FLOOR = 4;
  62. var WALL_TRACK = 5;
  63. var SIDE_PINS_FLOOR = 6;
  64. var BALL_LINEAR_DAMPING = 0.0;
  65. var OFFSET_BALL_POS_X = 10;
  66. var OBJECT;
  67. var MIN_BALL_VEL_ROTATION = 0.1;
  68. var FOV = 40;
  69. var INTERVAL_SHOOT = 1;
  70. var DIRECTION = 0;
  71. var POWER = 1;
  72. var EFFECT = 2;
  73. var EFFECT_POWER_RATE = -(0.4 * STEP_RATE);
  74. var MIN_FORCE_BALL_GUTTER = -30;
  75. var MAX_EFFECT_ANGLE = 45;
  76. var MONITOR_WAIT_TIME = 1;
  77. var LIMIT_HAND_RANGE_POS = {x: 35.2};
  78. var POSITION_BALL = {x: 0, y: 900, z: -7 + BALL_RADIUS};
  79. var GOAL_LINE_POS = {x: 0, y: 31, z: -2.7};
  80. var HAND_KEEPER_SIZE = {width: 1.8, depth: 0.5, height: 1.5};
  81. var WALL_PINS_SIZE = {width: 80, depth: 1, height: 150};
  82. var WALL_PINS_DOWN_SIZE = {width: 80, depth: 100, height: 1};
  83. var WALL_PINS_FORWARD_SIZE = {width: 80, depth: 2, height: 77};
  84. var WALL_PINS_POSITION = {x: 0, y: -1105, z: -27};
  85. var WALL_TRACK_POSITION = {x: 0, y: 0, z: 20};
  86. var WALL_TRACK_SIZE = {width: 1, depth: 905, height: 100, offsetX: 82};
  87. var ROOF_TRACK_SIZE = {width: 82, depth: 70, height: 1, offsetY: -835};
  88. var SIDE_WALL_PINS_SIZE = {width: 1, depth: 100, height: 150};
  89. var FLOOR_PINS_SIZE = {width: 53, depth: 875, height: 20};
  90. var FLOOR_WALL_PINS_SIZE = {width: 80, depth: 1, height: 100};
  91. var FLOOR_WALL_PINS_POSITION = {x: 0, y: -765, z: 20};
  92. var FLOOR_PINS_POSITION = {x: 0, y: -39, z: -29};
  93. var PINS_BINDER_PROPERTIES = {width: 75, depth: 2, height: 25};
  94. var PINS_BINDER_POSITION = {x: 0, y: -750, z: 10};
  95. var SENSOR_POSITION = {x: 0, y: -1005, z: -175};
  96. var SENSOR_SIZE = {width: 75, depth: 95, height: 1};
  97. /*
  98. var FLOOR_PINS_SIZE = {width: 53, depth: 78, height: 20};
  99. var FLOOR_PINS_POSITION = {x: 0, y: -839, z: -29};
  100. */
  101. var WALL_TRACK_DEPTH_SIZE = {width: 100, depth: 1, height: 100};
  102. var WALL_TRACK_DEPTH_POSITION = {x: 0, y: -914, z: 0};
  103. var FLOOR_PINS_SIDE_PROPERTIES = {width: 15, depth: FLOOR_PINS_SIZE.depth, height: 1, rot: Math.radians(0)};
  104. var PIN_PROPERTY = {radius_top: 8, radius_bottom: 7, height: 50, segments: 7, mass: 1.5875 * 1.5875, linearDamping: 0.01, angularDamping: 0.5};
  105. var PIN_DIAMETER = PIN_PROPERTY.radius_top * 2;
  106. var BALL_PROPERTY = {mass: BALL_MASS, linearDamping: 0.0, angularDamping: 0.05};
  107. var OFFSET_TRACK_POSITION = {x: 0, y: 0, z: -9};
  108. var PINS_POSITION_Z = OFFSET_TRACK_POSITION.z + PIN_PROPERTY.height * 0.5;
  109. var FIRST_PIN_POSITION = -810;
  110. var DISTANCE_PIN_OFFSET = 0.75;
  111. var MIN_VELOCITY_PINS = 0.1;
  112. var DISTANCE_PIN_Y = -5;
  113. var PIN_BINDER_TO_Y = -950;
  114. var PINS_POSITION = [{x: 0, y: FIRST_PIN_POSITION, z: PINS_POSITION_Z}, {x: PIN_DIAMETER * DISTANCE_PIN_OFFSET, y: FIRST_PIN_POSITION + DISTANCE_PIN_Y - PIN_DIAMETER, z: PINS_POSITION_Z},
  115. {x: -PIN_DIAMETER * DISTANCE_PIN_OFFSET, y: FIRST_PIN_POSITION + DISTANCE_PIN_Y - PIN_DIAMETER, z: PINS_POSITION_Z}, {x: -PIN_DIAMETER * DISTANCE_PIN_OFFSET * 2, y: FIRST_PIN_POSITION + (DISTANCE_PIN_Y - PIN_DIAMETER) * 2, z: PINS_POSITION_Z},
  116. {x: 0, y: FIRST_PIN_POSITION + (DISTANCE_PIN_Y - PIN_DIAMETER) * 2, z: PINS_POSITION_Z}, {x: PIN_DIAMETER * DISTANCE_PIN_OFFSET * 2, y: FIRST_PIN_POSITION + (DISTANCE_PIN_Y - PIN_DIAMETER) * 2, z: PINS_POSITION_Z},
  117. {x: PIN_DIAMETER * DISTANCE_PIN_OFFSET * 3, y: FIRST_PIN_POSITION + (DISTANCE_PIN_Y - PIN_DIAMETER) * 3, z: PINS_POSITION_Z}, {x: PIN_DIAMETER * DISTANCE_PIN_OFFSET, y: FIRST_PIN_POSITION + (DISTANCE_PIN_Y - PIN_DIAMETER) * 3, z: PINS_POSITION_Z},
  118. {x: -PIN_DIAMETER * DISTANCE_PIN_OFFSET, y: FIRST_PIN_POSITION + (DISTANCE_PIN_Y - PIN_DIAMETER) * 3, z: PINS_POSITION_Z}, {x: -PIN_DIAMETER * DISTANCE_PIN_OFFSET * 3, y: FIRST_PIN_POSITION + (DISTANCE_PIN_Y - PIN_DIAMETER) * 3, z: PINS_POSITION_Z}];
  119. var OFFSET_FIELD_Y = 35;
  120. var OFFSET_FIELD_X = 35;
  121. var MAX_LAUNCH_FORCE = (BALL_MASS * 100) * 2;
  122. var MIN_LAUNCH_FORCE = BALL_MASS * 0.8;
  123. var FORCE_RATE = 2.5 * BALL_MASS;
  124. var PINS_REFLECTION_LIMIT = 0.35;
  125. var BALL_SCALE_FACTOR = 0.14;
  126. var PIN_ALPHA_FACTOR = 0.9;
  127. var PIN_SCALE_FACTOR = 0.3;
  128. var SHADOW_SCALE_FACTOR = 18.5;
  129. var FADE_PIN_FACTOR = WALL_TRACK_DEPTH_POSITION.y - 0.01;
  130. var BOARD_SCALE_F = 0.25;
  131. var PIN_REF_REGY_FACTOR = 20;
  132. var BUFFER_ANIM_MONITOR = 20 * (FPS / 30);
  133. var BUFFER_ANIM_PLAYER = FPS / 20;
  134. var SHOW_3D_RENDER = false;
  135. var SHOW_DEPTH_TRACK_MODEL = false;
  136. var CAMERA_TEST_TRACKBALL = true;
  137. var CAMERA_TEST_TRANSFORM = false;
  138. var PIN_TEST = false;
  139. var SHOW_PROXY_COLLISION = false;
  140. var CAMERA_TEST_LOOK_AT = {x: 0, y: -500, z: -100};
  141. var OPACITY_INTENSITY_3D = 1;
  142. var PINS_PROPERTIES_TEST = {x: 0, y: 250, z: PINS_POSITION_Z + 20};
  143. var BALL_Z_FORCE_RANGE = {min: 3, max: 10};
  144. var CAMERA_PROPERTIES = {x: 0, y: 1500, z: 300, rot_x: 105, rot_y: 180, rot_z: 0};
  145. var NEAR = 10, FAR = 4000;
  146. var ENABLE_FULLSCREEN;
  147. var ENABLE_CHECK_ORIENTATION;