Результаты поиска
| |
last2424 | Дата: Среда, 30 Июля 2014, 17:03 | Сообщение # 761 | Тема: Новые уроки по создание броузерной игры – 3 |
30 мл. блоков
Сейчас нет на сайте
| Folleah, затем, для меня всегда удобнее всё делать на php, нежели юзать отдельный сервер. Да и наконец избавить сайт от вопроса кхм... цитирую: Цитата Как сделать браузерную онлайн игру.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 16:57 | Сообщение # 762 | Тема: Новые уроки по создание броузерной игры – 3 |
30 мл. блоков
Сейчас нет на сайте
| Vinchensoo, это уже 3 часть.
Folleah, блин, раз такой умный иди свои уроки по браузерке пиши а меня не учи, как надо писать, надо думать что бы всё было нормально, а не как курица лапой. Как ты будешь писать код не думая, что писать?
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 16:58 |
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 16:47 | Сообщение # 763 | Тема: Новые уроки по создание броузерной игры – 3 |
30 мл. блоков
Сейчас нет на сайте
| Folleah, мне нужно подумать, прежде чем написать. Эти раздумья уходят на час-два.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 16:31 | Сообщение # 764 | Тема: Новые уроки по создание броузерной игры – 3 |
30 мл. блоков
Сейчас нет на сайте
| Vinchensoo, все ответы во второй части. Мне лень писать, я устал. Я пилил этот урок с 11:00 до 17:00.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 15:35 | Сообщение # 765 | Тема: Новые уроки по создание броузерной игры – 3 |
30 мл. блоков
Сейчас нет на сайте
| dima9595, это не для таких как ты. А для тех, кто в этом вообще нифига не понимает. Цитата Нужно все таки отделять HTML код от PHP кода, потому что это очень засоряет проект Буду, буду отделять.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 15:36 |
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 15:01 | Сообщение # 766 | Тема: Новые уроки по создание броузерной игры – 3 |
30 мл. блоков
Сейчас нет на сайте
| Всем привет. Вот и 3 часть подошла к своему началу. В этом уроке мы наконец то начнём пилить пилой код. В данном случае авторизацию и регистрацию.
Графическое оформление базы данных. Перед тем, как начать, давайте дадим графики базе данных.
Откройте “C:\WebServers\home\”, и создайте в ней новую папку, ну например thebestgame. Внутри thebestgame создайте папку www, там будут находиться наши файлы. Внутри www создайте папку sessions, там будут находиться наши игровые сессий.
“Для умных людей: Почему там будут находиться сессий? Потому что папка с сессиями которую имеет Denwer, не подходит для игры, ведь сессия через 30 минут пропадает.”
Тыц , скачиваем графический интерфрейс для MongoDB. Скачали, откройте архив и залейте папку в “C:\WebServers\thebestgame\www”. Теперь открываем браузер и переходим по http://thebestgame/rockmongo/index.php или http://вашапапка/rockmongo/index.php
Host: Localhost Логин: Admin Пароль: Admin
Последнюю строчку не трогаем, это для тех у кого нет права на админку. Нажимаем “Войти и отжечь”.
Если же когда вы зашли в БД, у вас в браузере белый экран с ошибкой(не запомнил слова). Выключаем denwer, открываем cmd и пишем “net stop mongodb”. Переходим по “C:\WebServers\database”, и удаляем от туда файл mongod.lock. После этого пишем “net start mongodb”. И включаем denwer. Воуля, заработало.
Авторизируйтесь, в самом вверху нажмите на ссылку “Базы данных”. У вас появится список всех БД которые у вас есть, в данном случае у вас есть только local. Нажмите создать новую базу данных, назовите её "thebestgame" или как вам угодно.
Для работы с кодом я рекомендую использовать NodPad++, но если хотите можете работать в блокноте(только потом не обижайтесь что у вас, ошибка с session_start() и какие то корявые символы в начале страницы).
Теперь давайте приступим к коду. Открываем папку “thebestgame” и создаём в ней файл “conf.php”.
В него записываем: conf.php Код <?session_start(); // запускаем сессию ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'] .'../sessions/'); //меняем место положение наших сессий(возможно на бесплатных хостингах работать не будет закомементируйте, если что) ini_set('session.gc_maxlifetime', 120960); //долгая жизнь сессий $dbhost = 'localhost'; //адрес хоста к mongodb $dbname = 'thebestgame'; //имя базы данных
//подключение к mongodb $m = new Mongo("mongodb://$dbhost"); $db = $m->$dbname;
//коллекций из которых делается выборка $users = $db->users; ?>
С начала идёт функция session_start(); которая инициализирует данные сессии, в дальнейшем они нам пригодятся.
Через ini_set я устанавливаю настройки так что бы все сессий сохранялись у нас в “C:\WebServers\home\thebestgame\sessions\”.
Через следующий ini_set я устанавливаю настройки долговечности сессий.
После этого у нас идёт подключение к базе.
$dbhost – адрес сервера базы данных $dbname – имя базы данных. Название базы не “thebestgame”, то стоит поменять название на то которое у вас.
После комментариев “Подключение к mongodb” у нас идёт функция подключения к серверу базы данных.
Ну а в конце указываются коллекций в которых делается выборка. Коллекций – этакая замена таблицам.
После первой записи в БД коллекция users появится самостоятельно.
index.php Код <? include 'conf.php'; //подключаем конфиг $log_in = $users->findOne(array('login' => $_POST['login'], 'password' => $_POST['password'])); //делаем выборку по логину и паролю if(isSet($_POST['log-in']) && $log_in && preg_match('/[0-9a-zA-Z]/', $_POST['password']) && preg_match('/[0-9a-zA-Z]/', $_POST['login'])){ $_SESSION['login_player'] = $_POST['login']; //записываем в сессию логин echo '<script> document.location.href = "http://25.120.133.229/game.php"; </script>';//и переходим на страницу с игрой } ?> <!DOCTYPE html> <html> <head> <title>THE BEST GAME</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <form action="index.php" method="post"> <body> <input type="text" placeholder="Login" name="login" class="textinputlogin"/> <input type="password" placeholder="Password" name="password" class="textinputpassword"/> <input type="submit" value="Войти" name="log-in" class="button"/> <a href="reg.php" class="reg">Регистрация</a> </form> </body> </html> Про html я рассказывать не буду, про формы и дизайн вы сами должны всё прекрасно знать.
А вот про php я расскажу. В начале у нас идёт include, это подключение другого скрипта, html, php, javascript – всё равно подключит. В данном случае подключается conf.php.
$log_in содержит в себе выборку данных из базы по логину и паролю. Потом идёт уловие: Если кнопка войти нажата, данные указанные в $log_in есть в базе, в логине и в пароле что-нибудь написано. Тогда заводим сессию с логином и перебрасываем на страницу с игрой.
Данные о логине и пароле передаются из формы(<form>) методом post(<form action=”index.php” method=”post”>), которые берутся из данных введённых пользователем в input login и input password. Вместо моего 25.120.133.229(мой айпи в хамачи) вы должны поставить название вашей папки “thebestgame” или как-нибудь ещё.
Стили я вам дам без картинок, объяснять по ним ничего не буду, если вы пытались создать браузерные игры, наверняка вы думали что их надо делать на html+css.
style.css Код .textinputlogin{ position: fixed; top: 40%; left: 44% } .textinputpassword{ position: fixed; top: 50%; left: 44% } .button{ background: #eee; position: fixed; top: 60%; left: 44% } .reg{ position: fixed; top: 60%; left: 49% } body{ background: #eee; }
stylereg.css
Код .textinputlogin{ position: fixed; top: 20%; left: 44% } .textinputpassword{ position: fixed; top: 40%; left: 44% } .textinputrepassword{ position: fixed; top: 50%; left: 44% } .textinputemail{ position: fixed; top: 30%; left: 44% } .button{ background: #eee; position: fixed; top: 60%; left: 44% } body{ background: #eee; }
Ну и у нас остался последний скрипт на сегодня.
reg.php
Код <? include 'conf.php'; //подключаем конфиг if(isSet($_POST['regestration']) && $_POST['password'] == $_POST['repassword'] && preg_match('/[0-9a-zA-Z]/', $_POST['password'] && preg_match('/[0-9a-zA-Z]/', $_POST['login'])){ $users->insert( //запись в бд array( 'login' => $_POST['login'], //логин пользователя 'password' => $_POST['password'], //пароль пользователя 'email' => $_POST['email'], //эмэйл пользователя //основные характеристики персонажа 'charaster_class' => 0, 'lvl' => 0, 'xp' => 0, 'hp' => 0, 'mn' => 0, //второстепенные характеристики персонажа 'strength' => 0, 'speed' => 0, 'intelligence' => 0, 'faith' => 0 )); $_SESSION['login_player'] = $_POST['login']; echo '<script> document.location.href = "http://25.120.133.229/charcreater.php"; </script>';//и переходим на страницу с с созданием персонажа } ?> <!DOCTYPE html> <html> <head> <title>THE BEST GAME</title> <link rel="stylesheet" type="text/css" href="stylereg.css"> </head> <form action="reg.php" method="post"> <body> <input type="text" placeholder="Login" name="login" class="textinputlogin"/> <input type="email" placeholder="Email" name="email" class="textinputemail"/> <input type="password" placeholder="Password" name="password" class="textinputpassword"/> <input type="password" placeholder="Repeat password" name="repassword" class="textinputrepassword"/> <input type="submit" value="Зарегистрироваться" name="regestration" class="button"/> </form> </body> </html> Html код почти такой же, там только изменены имена некоторых объектов, и некоторые объекты типа emai,l или повторения пароля были добавлены.
Перейдём к php.
В начале всё так же, подключён conf.php.
Дальше идёт условие: Если кнопка зарегистрироваться нажата, пароль равен повторению пароля, и в логине с паролем чего-нибудь написано, тогда делаем запись в БД.
Записываем: Login, который равен,введённому логину. Password, который равен введённому паролю. Email, который равен введённому эмейлу. Про остальные вы узнаете в следующей части когда мы будем делать редактор персонажа, пока что они все по нулям.
Умникам, которые спросят почему ты не проверяешь что бы в эмейле что то было: Ответ прост, если не будет написано name@email.com, без “@” и без домена, скрипт просто не пропустит. Ну и вроде бы как всё. До встречи, пошёл отдыхать.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Четверг, 07 Августа 2014, 15:42 |
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 13:21 | Сообщение # 767 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| lvovand, не парься, просто не парься.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 12:44 | Сообщение # 768 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| Чатом? Прокачкой можно даже накрыть всё. Это сугубо моё личное мнение, что скуль для такого не подходит, если можете доказать что сможет выдержать, аргументы в студию. MongoDB, я использую не только во этой причине, он удобен, длиннющие строки на PHP(я очень криво обращаюсь с вызовами Mysql в PHP, у меня выходит на одна строчка на это), в то время, как на вызов MongoDB мне хватает одной строчки на то что бы просто сделать выборку из базы.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 13:09 |
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 11:25 | Сообщение # 769 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| Assasin, да, верно, как всегда на высоте. Но по сути HerrPotapov хотел аргументов к тому что Mysql не выдержит 1000 игроков.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 11:44 |
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 09:43 | Сообщение # 770 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| liker, но опять же, она не реал-тайм.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 10:02 |
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 09:36 | Сообщение # 771 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| Блин, зыбыл ответить на счёт реал-тайма, вон человечек 7 часов проснулся и отписался. Нет, игра не реал-тайм. Зафига реал-тайм мморпг? Хотя бывают квесты здать которые надо в определённый час, но смысл тут парится?Добавлено (30.07.2014, 09:36) --------------------------------------------- P.S. пошёл пилить 3 часть.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 09:29 |
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 00:38 | Сообщение # 772 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| Paugep, ну я думаю умный человек может понять, в первой части ведь было указано, что нужны хоть какие-нибудь знания. Потому что я думаю что при изучении php, хоть раз ссылались на denwer. В крайнем случаю, можно почитать, посмотреть про эту систему.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 00:20 | Сообщение # 773 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| Paugep, хм, сейчас посмотрим. Добавлено (30.07.2014, 00:20) --------------------------------------------- Блин, надо скинуть не в C:\WebServers\denwer, а в C:\WebServers\.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 00:15 | Сообщение # 774 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| HerrPotapov, он сможет выдержать сразу 1000 запросов в секунду? Нет!
Каждую секунду с клиента на сервер отправляется запрос к базе данных. Таким образом получается место расположение и направление движения тех или иных игроков. Если игрок передвигается, то делается еще одно обращение к бд в котором производится запись о текущей точке расположения и точке в которую двигается игрок. Данная система проверенна и работает на ура, но проблема заключается в том, сто mysql не выдерживает такого количества запросов в секунду.
P.S. информация о том что не выдержит Mysql 100 игроков взята с другого, но достоверного источника.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 00:41 |
|
| |
last2424 | Дата: Среда, 30 Июля 2014, 00:05 | Сообщение # 775 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| HerrPotapov, ну в принципе я знаю как это делается, меня пока что бросает в ступор такая вещь, как сортировка. Как записывать, обновлять, выводить всё знаю. JavaScript ещё. P.S. а эти два слова случайно не "Sharding Introduction"?
Добавлено (30.07.2014, 00:05) --------------------------------------------- HerrPotapov, на счёт мускуля, это не банально моя выдумка, ты считаешь что мускуль выдержить хотя бы 1000 игроков?
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 00:06 |
|
| |
last2424 | Дата: Вторник, 29 Июля 2014, 23:34 | Сообщение # 776 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| ты папку mongodb выложил в denwer? Переименуй скинутую папку в "mongodb".
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Вторник, 29 Июля 2014, 23:49 |
|
| |
last2424 | Дата: Вторник, 29 Июля 2014, 23:12 | Сообщение # 777 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| Folleah, да, я соединил их. Мне очень линиво переустанавливать Denwer и MongoDB.
Добавлено (29.07.2014, 23:12) --------------------------------------------- Folleah, Node.JS сам подсказывает что тут кроме HTML5 надо использовать JS. Куда ты торопишься. Мы с Saitei уже думаем на счёт такого варианта, но опять же, не все хосты, машины поддерживают его.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Вторник, 29 Июля 2014, 23:15 |
|
| |
last2424 | Дата: Вторник, 29 Июля 2014, 22:55 | Сообщение # 778 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| DeadDay, ты бы знал что было когда я впервые XAMPP поставил, у меня был такой с ним кипеш, так и не смог его запустить. Denwer для меня удобен и мне комфортно с ним работать. Я в принципе не говорю что нужен именно Denwer, умеете пользоваться чем то другим - воляйте, только потом не жалуйтесь что у вас ошибки в коде из-за разных компиляторов.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Вторник, 29 Июля 2014, 22:57 |
|
| |
last2424 | Дата: Вторник, 29 Июля 2014, 22:52 | Сообщение # 779 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| Paugep, да нет. Не должно быть. Нам в принципе функций которые есть только в PHP 5.3 не нужны.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Вторник, 29 Июля 2014, 22:57 |
|
| |
last2424 | Дата: Вторник, 29 Июля 2014, 22:49 | Сообщение # 780 | Тема: Новые уроки по создание броузерной игры – 2. |
30 мл. блоков
Сейчас нет на сайте
| Paugep, да, придётся. Если только, сейчас... Добавлено (29.07.2014, 22:49) --------------------------------------------- mongo-1.1.4-php5.2vc6ts поставь эту.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
|