Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.01.2016, 20:31
Аспирант
Отправить личное сообщение для diga Посмотреть профиль Найти все сообщения от diga
 
Регистрация: 13.01.2016
Сообщений: 57

программирование на javascript
Доброго времени суток!
Я только начинаю разбирать JS и возникли не большие (с точки зрения программирования глупые) вопросы.
1) Какова основная идея программирования на JS? Каким образом выполняются функции на JS? Понимаю что функция выполняется у каждого пользователя при загрузки скрипта и при определенных событиях. Вот например,

Пользователь подключился в игровой сервер, сервер представляет собой некоторую игру 2 пользователей. Как определить каким образом подключается второй?

если подключился игрок 1 для него выполнилось это

usr1 = true; /*первый пользователь в сервер*/
usr2 = false; /*первый еще не вошел в сервер*/

if (usr1 && usr2) {
	/*выполняется какая та функция*/
}


т.е. не выполнилась функция
гарантирует ли выполнение этого скрипта если подключиться второй игрок?
и если не выполнилась функция для первого игрока (из-за условия), а когда зашел второй, выполнится ли условие для первого игрока, т.к. usr2 = true, и что происходит в тот момент со скриптом для первого игрока когда второй игрок не подключен, он не выполняется? приостанавливается? или он закрывается и автоматически запускается когда запускается скрипт для второго игрока?

p.s. извините за такие глупые вопросы. Как язык я его начал понимать, но смысл и идею работы скриптов пока уловить не могу.
Заранее благодарю ответы
Ответить с цитированием
  #2 (permalink)  
Старый 22.01.2016, 11:37
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

Q1. основная идея программирования на JS?
A1. такая же как и в любом другом языке.
Q2. Каким образом выполняются функции на JS?
A2. Последовательно, как и была написана. В начале ты определяешь функцию, затем ты ее вызываешь в нужном тебе месте.
Q3. Как определить каким образом подключается второй?
A3. В момент подключения к серверу второго игрока, сервер отлавливает это событие посылает другому своему клиенту уведомление о том, что второй игрок подключился, после чего на стороне первого клиента отрабатывает обработчик этого события.
Q4. гарантирует ли выполнение этого скрипта если подключиться второй игрок?
A4. Нет. Вообще в твоем случае нужно использовать WebSockets и передавать состояние готовности обоим клиентам сразу + отслеживать живы ли соединения с ними, и при каждом изменении состояния клиентов проводить уведомления всех остальных.

От себя:
JavaScript это клиентский язык. Для мультиплеерной игры тебе в любом случае нужна серверная часть, на которой и происходит взаимодействие всех клиентов друг с другом. Сервер будет опрашивать клиентов, проверять их состояния, клиенты будут отправлять на сервер сообщения, все это на сервере передается другим клиентам, и в зависимости от передаваемых данных, будут отрабатывать те или иные обработчики уже на клиентской части.
Ответить с цитированием
  #3 (permalink)  
Старый 22.01.2016, 21:12
Аспирант
Отправить личное сообщение для tourniquet Посмотреть профиль Найти все сообщения от tourniquet
 
Регистрация: 04.04.2014
Сообщений: 58

"JavaScript это клиентский язык." - а как же NodeJS? Как же ExpressJS, Koa, SailsJS, MeteorJS итд итп?
Ответить с цитированием
  #4 (permalink)  
Старый 25.01.2016, 11:18
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

tourniquet,
Node.js – платформа, основанная на JavaScript движке.
Express - фреймворк
Koa - фреймворк
SailsJS- фреймворк
Meteor JS - фреймворк

Если для тебя нет никакой разницы, то ок.
Ответить с цитированием
  #5 (permalink)  
Старый 26.01.2016, 12:00
Аспирант
Отправить личное сообщение для diga Посмотреть профиль Найти все сообщения от diga
 
Регистрация: 13.01.2016
Сообщений: 57

А что если, выполняется скрипт у первого игрока (второй игрок не подключен) а когда подключается второй игрок, каким образом нужно запускать выполнение того же скрипта? т.е. каким образом мы узнаем что второй игрок подключился, с каким событием это связано?
Хотя могу предположить, что идет отклик от сервера о том что подключен второй игрок, а как этот отклик можно отрабатывать? можно ли сделать таким образом, что пока второй игрок не подключен, приостановить выполнение скрипта, как только второй игрок подключается, с сервера отправляется отклик, на клиенте проверяем подключен ли второй игрок и продолжаем выполнение скрипта, или как лучше?
Ответить с цитированием
  #6 (permalink)  
Старый 26.01.2016, 13:07
Аспирант
Отправить личное сообщение для tourniquet Посмотреть профиль Найти все сообщения от tourniquet
 
Регистрация: 04.04.2014
Сообщений: 58

Siend, а разве это не бэкенд? Разве на бэкенде не используется JavaScript?
Ответить с цитированием
  #7 (permalink)  
Старый 27.01.2016, 10:23
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

tourniquet, учитывая конкретный вопрос в топе и суть того что хочет понять автор, мне кажется ему до фени на js в бекэнде) Так то да, NodeJS использует синтаксис js, так что спору нет, утверждать что js исключительно клиентский не стану.

diga,
Цитата:
А что если, выполняется скрипт у первого игрока (второй игрок не подключен) а когда подключается второй игрок, каким образом нужно запускать выполнение того же скрипта? т.е. каким образом мы узнаем что второй игрок подключился, с каким событием это связано?
либо используя веб-сокеты мы имеем постоянную связь с сервером и у нас есть обработчик принимающий от сервера сообщения (в том числе и о подключении второго игрока), либо любой другой технологией позволяющий реализовывать схожий механизм обработки. В целом, чтобы лучше понять что происходит - тебе стоит разобрать любой проект простенького чата, он реализует все нужные тебе моменты и куда проще игры.
Ответить с цитированием
  #8 (permalink)  
Старый 27.01.2016, 23:26
Интересующийся
Отправить личное сообщение для kosuha606 Посмотреть профиль Найти все сообщения от kosuha606
 
Регистрация: 30.08.2015
Сообщений: 12

На самом деле нет никакой "основной" идеи программирования на js. Как и любой язык программирования js просто инструмент. А что уже у тебя получится сделать зависит от идей в твоей голове, и тут ни js ни какой либо другой язык ни думать, ни писать программу за тебя не будет.

Мне кажется тебе стоит вообще понять что из себя представляет процесс программирования, что такое циклы, условия, функции, объекты, переменные, массивы, структуры. Потом собрать свои знания придумать идею и начать реализацию возможно и на javascript
Ответить с цитированием
  #9 (permalink)  
Старый 29.01.2016, 00:59
Аспирант
Отправить личное сообщение для diga Посмотреть профиль Найти все сообщения от diga
 
Регистрация: 13.01.2016
Сообщений: 57

Сообщение от kosuha606 Посмотреть сообщение
Мне кажется тебе стоит вообще понять что из себя представляет процесс программирования, что такое циклы, условия, функции, объекты, переменные, массивы, структуры. Потом собрать свои знания придумать идею и начать реализацию возможно и на javascript
это то я все знаю, правда на C++ и python на js посмотрел принципиальных различий не заметил.


Сообщение от Siend Посмотреть сообщение
В целом, чтобы лучше понять что происходит - тебе стоит разобрать любой проект простенького чата, он реализует все нужные тебе моменты и куда проще игры.
хорошая идея, спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование / сайты на C#,Ruby, Android, C++, C, Delphi, Pascal, JavaScript, PHP avizer Работа 12 11.11.2016 09:36
Программирование под заказ (JavaScript, Meteor, Node.js, AngularJS) UnityCat Работа 4 21.10.2015 13:57
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34