Однако вы можете изменить этот порядок и посылать информацию в процессе движения шара-битка, чтобы создать ощущение большего реализма.
Перезапуск – Этот ход посылается вашему противнику, когда вы щелкаете на кнопке Restart (перезагрузка, перезапуск). Когда ваш противник получает информацию, вся игра перезапускается.
Если вы хотите сделать эту игру более совершенной, вы можете добавить другие типы ходов. Например, пока игрок крутит кий вокруг шара или отводит кий от шара для увеличения силы удара, вы можете посылать эту информацию. Эти виды усовершенствований могут придать игре большую реалистичность. Эти три хода, которые были реализованы в данной игре, минимально необходимы для того, чтобы она работала.
Давайте рассмотрим функцию moveReceived():
1 function moveReceived(ob){
2 if (ob.type =="shot"){
3 game.ball1.x =ob.x;
4 game.ball1.y =ob.y;
5 shoot(ob.speed,ob.angle);
6 }else if (ob.type =="place_cue"){
7 game.ball1.x =ob.x;
8 game.ball1.y =ob.y;
9 game.ball1.clip._x =ob.x;
10 game.ball1.clip._y =ob.y;
11 }else if (ob.type =="restart"){
12 restart();
13 }
14 }
Эта функция вызывается при получении хода. Объект, содержащий информацию, посланную вашим противником, передается в нее. Для хода типа «shot» мы выделяем координаты шара-битка x и y, и устанавливаем его позицию на их основе. Шар-биток представлен объектом ball1, который хранится в объекте game. (Вы узнаете об это больше позднее.) Затем мы вызываем функцию shoot(), передавая в нее скорость и угол. Функция shoot(), которая обрабатывает ударяемый шар, будет рассмотрена позднее. Когда ход имеет тип "cue", мы обновляем позицию шара-битка как в памяти, так и на экране. А если ход имеет тип «restart», то мы вызываем функцию restart().
Теперь давайте рассмотрим три различные функции, которые используются для посылки этих типов ходов:
1 function sendShot(speed,angle){
2 var ob ={speed:speed,angle:angle,x:game