Результаты поиска
| |
Sektoid | Дата: Воскресенье, 25 Сентября 2011, 03:38 | Сообщение # 61 | Тема: Как создать такое игровое поле? |
почетный гость
Сейчас нет на сайте
| Первое уже читал, а за второе огромное спасибо)) Жаль на винде нету нода((
|
|
| |
Sektoid | Дата: Суббота, 24 Сентября 2011, 02:00 | Сообщение # 62 | Тема: Как создать такое игровое поле? |
почетный гость
Сейчас нет на сайте
| Ок, спс. Пошел курить нод, потом возьмусь за socket.io Может накидаете немного ссылок или примеров пока-что плз?)) Блин, придется виртуалку ставить
|
|
| |
Sektoid | Дата: Пятница, 23 Сентября 2011, 04:01 | Сообщение # 63 | Тема: Как создать такое игровое поле? |
почетный гость
Сейчас нет на сайте
| Quote (guerrero) У вас совершенно не рабочий код! Вы тянете из базы помимо аватарки, еще и кординаты игрока, но непонятно как их используете.
Ну он стал нерабочим когда я аватары начал загружать. А если убрать с него загрузку аватаров, то все работает Тоесть координаты и местонахождение игрока определяет нормально. А вот аватары принесли с собой опаньки А JS я не вылаживал, потому что ошибка где-то в php, и она связана с аватарами. Спасибо за помощь
Добавлено (23.09.2011, 04:01) --------------------------------------------- Вобщем теперь возникла потребность юзать ajax. Персонажа мы грузим, обьекты тоже. Надо отображать всех персонажей и отслеживать их перемещение не перезагружая страницу. Погуглил, почитал. Все конечно хорошо, но я не нашел нормальных примеров. Приведите плз пару примеров использования ajax. Что должно быть на стороне сервера, а что на стороне клиента? Ато реально читаю - вроде понятно, но хз что с этим делать теперь. А как посмотрю на пример - сразу все понятно)
Сообщение отредактировал Sektoid - Пятница, 23 Сентября 2011, 04:16 |
|
| |
Sektoid | Дата: Пятница, 05 Августа 2011, 01:16 | Сообщение # 64 | Тема: Как создать такое игровое поле? |
почетный гость
Сейчас нет на сайте
| Code
<?php class User { var $user_sector_x; var $user_sector_y; var $user_ava; }
$query = "SELECT * FROM ".TABLES_USERS." WHERE map_user='map1'"; $result = mysql_query ($query); //Выбираем игроков, которые на этой карте
$query_count = "SELECT COUNT(map_user) AS nc FROM ".TABLES_USERS." WHERE map_user='map1'"; $result_count = mysql_query ($query_count); $check_count = mysql_fetch_array($result_count); //Пощитали сколько игроков на карте чтобы создать в джаваскрипте массив
echo "<script type='text/javascript'> var users_avas=new Array (".$check_count['nc']."); </script>"; //Создаем массив в JS с аватарами. Его длинна равна количеству игроков на map1
for ($c=0; $c=$check_count['nc']; $c++){ $check_id_user = "".($check['id_user']).""; //Записываем в переменную id пользователя $check_user_sector_x = "".$check['user_sector_x'].""; //Записываем в переменную его кординату х $check_user_sector_y = "".$check['user_sector_y'].""; //Записываем в переменную его кординату у $user [''.$check_id_user.''] = new User; //Создаем обьект класса User, номер которого = id юзера $user [''.$check_id_user.'']->user_sector_x = ''.$check_user_sector_x.''; //Забиваем туда его координату х $user [''.$check_id_user.'']->user_sector_y = ''.$check_user_sector_y.''; //Забиваем туда его координату у $query_ava_vid = "SELECT vid FROM avatar where id_ava='".$check_id_user."'"; //Считываем аву с БД $user [''.$check_id_user.'']->user_ava = ''.$query_ava_vid.''; //Забиваем туда его аву
echo "<script type='text/javascript'>users_avas[".$check_id_user."]='".($user [''.$check_id_user.'']->user_ava)."';</script>"; //Теперь есть массив юсерс_авас[номер юсера] = ава юсера. } ?> Но при загрузке страницы хром выдает опаньки. Искал ошибки - не смог найти. Может кто найдет что не так плзззз? ЗЫ: код писал сам, так что понимаю что он может выглядеть ужасно, но прокоментировал вроде что надо.
Сообщение отредактировал Sektoid - Пятница, 05 Августа 2011, 01:47 |
|
| |
Sektoid | Дата: Среда, 03 Августа 2011, 15:09 | Сообщение # 65 | Тема: Создание браузерной игры |
почетный гость
Сейчас нет на сайте
| Quote (Assasin) Вот пример моей работы node.js+socket.io (1,5 месяца работы) линк Прикольно Подскажи плз, может где-то есть обучалки node.js и socket.io ??? Ато я сейчас начал писать движок к своей игре (спасибо за уроки еще раз ), но она должна быть рилтайм.
Сообщение отредактировал Sektoid - Среда, 03 Августа 2011, 15:09 |
|
| |
Sektoid | Дата: Среда, 03 Августа 2011, 14:24 | Сообщение # 66 | Тема: Как создать такое игровое поле? |
почетный гость
Сейчас нет на сайте
| Quote (Demeron) Хм... Я бы на C++ сделал что-то типо такого:
Создал новую структуру: struct KLETKA { int pro4nost; //тут будет храниться прочность клетки int uvorot; //тут будет шанс уворота от пули int type1,type2; //тут будет храниться тип 1,1 (земля) или 3,3 (окоп или что там у тебя) int user; //номер воина стоящего тут (ведь только 1 может стоять здесь, правильно?) };
Потом создаю массив: KLETKA pole_boya[y][x]; // где "KLETKA" - нас класс, "pole_boya" - название переменной, "x" -ширина, "y" - высота
И работать с массивом. Предворительно можно создать пару функций для перемещения, попадания пуль и рытья окопов. Надеюсь принцип ты понял. Если есть вопросы - обращайся!
Вот это нравиться, щас буду пытаться.Добавлено (03.08.2011, 14:24) --------------------------------------------- Вобщем сделал что-то такое:
Code <?php class Sector { var $type; var $id_x; var $id_y; }
//Допустим у меня есть сектор 4-7 $x=4; $y=7; $sector [$x][$y]= new Sector; $sector [$x][$y]->id_x = $x; $sector [$x][$y]->id_y = $y;
$type='grass'; $sector [$x][$y]->type = $type; ?>
Как мне теперь передать это в JavaScript? Допустим вот кусок кода js:
Code <script type="text/javascript"> var map = [['0','0','0','0','0','1','0','0','1','1'], ['0','0','0','0','0','1','0','1','1','1'], ['1','0','0','0','0','1','0','1','1','1'], ['1','1','0','0','0','1','0','0','1','1'], ['1','1','1','0','0','1','0','0','0','0'], ['0','1','0','0','0','1','1','1','0','0'], ['0','0','1','0','0','0','1','1','0','1'], ['0','0','1','1','1','1','0','0','1','1'], ['0','0','0','1','1','1','0','0','1','1'], ['0','0','0','1','1','1','0','0','1','1']];
//Это был массив, в котором потом в зависимости от числа будет определятся номер значения картинки из следущего массива: var tiles = [ 'media/images/grass.jpg', 'media/images/water.jpg' ]; </script> Вопрос: как мне засунуть в первый массив значения 0 и 1 в зависимости от $sector [$x][$y]->type = $type из пхп кода? Надо чтоб JS считал эти данные и засунул в массив значения - если grass, то 0, а если water, то 1?
Сообщение отредактировал Sektoid - Среда, 03 Августа 2011, 00:31 |
|
| |
Sektoid | Дата: Суббота, 30 Июля 2011, 15:07 | Сообщение # 67 | Тема: Как рационально создать бд инвентаря? |
почетный гость
Сейчас нет на сайте
| Вобщем сделал так и понял что это ненужно. Решил сделать проще. Будет всего одна таблица Items. В ней будет:
item_id INT auto_increment owner_id (будет равняться user_id и при передаче вещи кому-то будет меняться) sector_id (если шмотку выкинули на землю) возможность одеть одето или нет прочность бонусы вес
а вес инвентаря и максимальный вес пихну в статы юзера
выглядеть будет так: Code $user_id = $_GET['id']; $items_in_bag = mysql_query("SELECT * FROM Items WHERE owner_id=$user_id") Всем спасибо за советы
|
|
| |
Sektoid | Дата: Суббота, 30 Июля 2011, 13:37 | Сообщение # 68 | Тема: Как рационально создать бд инвентаря? |
почетный гость
Сейчас нет на сайте
| Quote (maker-rus) 4. Записываем это все в таблицу 2 (invent). Code
$inven_item = $item['item_id']; $insertItem = mysql_query("INSERT INTO invent ('items_ids') VALUES ('$inven_item') ") or die("Error sql: ".mysql_error());
Тоесть значения inven_item будут в строчке items_ids тупо через запятую или как? И много ли значений туда можно будет вставить? Я не хочу ограничивать инвентарь игроков количеством шмота. И каким должен тогда быть столбец items_ids? CHAR?
Сообщение отредактировал Sektoid - Суббота, 30 Июля 2011, 14:05 |
|
| |
Sektoid | Дата: Суббота, 30 Июля 2011, 04:32 | Сообщение # 69 | Тема: Как рационально создать бд инвентаря? |
почетный гость
Сейчас нет на сайте
| Я решил что у меня в бд будет две таблицы. Первая - шмотки, вторая - инвентари. Первая будет содержать просто шмотки, которые есть в игре. Вторая уже будет для того, чтоб отображать какие шмотки в инвентаре игроков. Потому что шмотки могут быть и на земле, и в сундуке. Но для этого я создам потом другие таблицы.
Первая таблица: item_id INT auto_increment item_odeto INT(1) DEFAULT 0 прочность бонусы название тип вес
тут вроде все понятно
а теперь Вторая таблица: inventar_id INT auto_increment items_ids ????????? (как сделать так, чтоб в одной строчке можно было высветить весь список item_id игрока?) текущий вес инвентаря максимальный вес
Или предлогайте свои варианты
Сообщение отредактировал Sektoid - Суббота, 30 Июля 2011, 04:35 |
|
| |
Sektoid | Дата: Четверг, 28 Июля 2011, 22:02 | Сообщение # 70 | Тема: GEngine |
почетный гость
Сейчас нет на сайте
| интересно.. буду следить
|
|
| |
Sektoid | Дата: Пятница, 08 Июля 2011, 15:43 | Сообщение # 71 | Тема: Как создать такое игровое поле? |
почетный гость
Сейчас нет на сайте
| Quote (TimKruz) двумерных массивов я это и имел ввиду Quote (TimKruz) отпустить несколько байт каждой ячейки в двумерном массиве, и в одном байте будут указываться простые свойства (проходимость, простреливаемость, разрушаемость, нанесение ущерба персонажам и т.п.), а в остальных байтах - числовые данные (прочность, бонус, и т.п.). Вот тут недопонял Это уже 3хмерный массив? Можешь показать на примере плз? Quote (TimKruz) А вообще-то, проще будет сделать по-другому: тип поверхности - земля, вода, песок, и т.п., а окопы, укрепления, лес, и т.п. - это уже объекты, которые хранятся в отдельном массиве и выводятся поверх земли. Т.е. у земли и т.п. только простые свойства, а объекты уже имеют прочность, бонусы и т.п. У земли тоже будут свойства - плотность (сколько надо копать чтоб вырыть окоп. Чем больше скилл землекопа, тем быстрее копается) и т.д. Так что смысла разделять их нету, потому что фактически земля это такой же обьект как укрепление. Только у неё не будет некоторых свойств, которые есть у укрепления, и наоборот. Quote (lvovand) а то что приходит на скрипт от юзера должно в обязательном порядке на правильность проверяться как?
Сообщение отредактировал Sektoid - Пятница, 08 Июля 2011, 15:48 |
|
| |
Sektoid | Дата: Пятница, 08 Июля 2011, 15:20 | Сообщение # 72 | Тема: Как создать такое игровое поле? |
почетный гость
Сейчас нет на сайте
| Ну вот и нубские вопросы пошли : Допустим в моем game.php есть такой код:
if (массивы клеток [х][у] = 1,1) {SET массивы клеток to [3][3];} else {$error1 = 1 ;}
Юзер заходит на game.php он сможет подменить этот код таким? SET массивы клеток to [3][3];
Сообщение отредактировал Sektoid - Пятница, 08 Июля 2011, 15:25 |
|
| |
Sektoid | Дата: Пятница, 08 Июля 2011, 14:47 | Сообщение # 73 | Тема: Как создать такое игровое поле? |
почетный гость
Сейчас нет на сайте
| Вобщем я хочу чтоб моя игра имела вид 2д бегалки как бои в z-war или time-zero, но не только бои, а весь процесс беганья по карте. Тоесть игровое поле делиться на клетки(или гексы, но пока-что пусть будут клетки). На каждой клетке может находиться только 1 юзер. Главная особенность - можно модифицировать игровое поле. Тоесть выкопать окоп на одной клетке, и став на него, например, добавиться 3 уворота. Или построить укрепление, на которое нельзя наступить. Спрятавшись за него можно укрыться от пуль. Вобщем чтоб можно было менять параметры каждой клетки, если есть соответствующий навык. Я еще только учу пхп\мускул\ас3, поэтому помогите плз
Вот как я думаю это сделать: Допустим у нас есть поле 5на5 клеток. Создаем массив, в котором 5 массивов. Тоесть массив [5][5]. Это будут значения каждого сектора на нашем поле. Изначально каждое значение в массивах равно 1. Это значит, что все клетки сейчас равны "земля". Еще может быть значение 2(окоп) и 3 (укрепление). Делаем в базе данных таблицу sector_id, в которой содержится информация типа: Тип клетки: проходимость, пропускание пуль, прочность, возможность строить, бонус при нахождении на клетке, картинка клетки 1 = 1,1,0,1,0, ground.png 2 = 1,1,30,0,3 trench.png 3 = 0,0,50,0,0 wall.png У игрока при нажатии на сектор появляеться меню, в котором можно его изменить (вырыть окоп или построить укрепление). Он выбирает построить укрепление. Отсылаеться запрос в БД, в котором содержаться координаты клетки в нашем массиве и запрос на изменение их значений на 3 (потому что строим укрепление). Образно выражаясь: if (массивы клеток [х][у] = 1,1) //тоесть если клетка равняеться "земля", {SET массивы клеток to [3][3];} else {$error1 = 1 ;}
Итак графическая часть будет в флеше. Он считывает из базы данных наш массив [5][5]. Потом он считывает таблицу sector_id и прорисовывает каждую клетку в соответствии её значению.
Вот так я придумал. Это все схематически, но надеюсь вы поняли. Скажите плз это рационально? Или можно как-то реализовать это проще? Посоветуйте что-то плз. И второй вопрос: как сделать так, чтоб все манипуляции с БД выполнялись на сервере, а не клиенте. Потому что кулхацкеры просто заменят if (массивы клеток [х][у] = 1,1) {SET массивы клеток to [3][3];} else {$error1 = 1 ;} на SET массивы клеток to [3][3]; и не будут париться.
Сообщение отредактировал Sektoid - Пятница, 08 Июля 2011, 15:04 |
|
| |
Sektoid | Дата: Пятница, 08 Июля 2011, 04:37 | Сообщение # 74 | Тема: Урок по созданию браузерной игры № 12 |
почетный гость
Сейчас нет на сайте
| Огромное спасибо за уроки! С пхп\мускул\флеш не был знаком вообще, но теперь, думаю, смогу медленными шагами, заглядывая назад, смастерить кое-какую мморпг)) Даже то, что в коде были ошибки - заставило лучше разобраться в нем, и научиться им управлять РЕСПЕКТ ЗА ЭТО Кстати, так и не разобрался с переадресацией при реге. Может кто знает как?
Сообщение отредактировал Sektoid - Пятница, 08 Июля 2011, 14:05 |
|
| |
Sektoid | Дата: Пятница, 08 Июля 2011, 00:56 | Сообщение # 75 | Тема: Урок по созданию браузерной игры № 6 |
почетный гость
Сейчас нет на сайте
| Quote (Dizelist) а можно ли сделать чтоб инфа об игроках выводилась также как профиль игрока? ну чтоб при нажатии на i в чате выскакивало окно с профиле осматриваемого игрока во флеше а не в отдельном окне ! очень хочется,но не получается Присоединяюсь к вопросу. Пытался так сделать, но так и не смог разобраться Как-то там все запутано
Сообщение отредактировал Sektoid - Пятница, 08 Июля 2011, 03:11 |
|
| |
Sektoid | Дата: Четверг, 07 Июля 2011, 04:40 | Сообщение # 76 | Тема: Урок по созданию браузерной игры № 5 |
почетный гость
Сейчас нет на сайте
| Все, что смог найти перепробовал, всеравно не хочет перенаправлять(( Походу ошибка реально в пхп файле, потому что я так и не смог найти переменную е, которая отправляеться флешке.
Добавлено (07.07.2011, 03:03) --------------------------------------------- Обьясни плз если не сложно откуда взялся результат здесь Code /* Функция определения результата */ private function onResult(e:ResultEvent):void { if (int(String(e.result)) > 0) { //если результат больше 0, тоесть существует, то per = int(String(e.result)); //переменная равна данным, что считали с php файла if (per > 0){ //если данные равны 1, то переадресовываем в игру var url:URLRequest = new URLRequest("localhost/game.php"); navigateToURL(url,"_self"); } Если в пхп файле у нас такое Code echo "1"; $result = mysql_query("UPDATE users SET name='".$nameChar."' WHERE email='".$_SESSION['user']."'"); $who_online = mysql_query("UPDATE users SET online='1' WHERE email='".$_SESSION['user']."'"); echo "1"; session_register("nameChar"); $_SESSION["name"] = $_POST["nameChar"]; $ava = mysql_query("INSERT INTO avatar (gander, vid, path) VALUES ('".$gander."', '".$vid."', '".$patch."')"); echo "1"; ?> И главное что если он равняеться -1, -2 и -3, то вылазят разные ошибки в флешке, типа "этот ник уже есть". Но я никак не могу найти где он ![cry](http://s12.ucoz.net/sm/1/cry.gif) Добавлено (07.07.2011, 04:40) --------------------------------------------- Мда, застрял на этом ![wacko](http://s12.ucoz.net/sm/1/wacko.gif)
Сообщение отредактировал Sektoid - Четверг, 07 Июля 2011, 03:04 |
|
| |
Sektoid | Дата: Среда, 06 Июля 2011, 19:41 | Сообщение # 77 | Тема: Урок по созданию браузерной игры № 2 |
почетный гость
Сейчас нет на сайте
| Assasin, спасибо
|
|
| |
Sektoid | Дата: Среда, 06 Июля 2011, 17:40 | Сообщение # 78 | Тема: Урок по созданию браузерной игры № 2 |
почетный гость
Сейчас нет на сайте
| Quote (Assasin) обьявить эти переменные в начале скрипта Таким образом я убрал все остальные надписи, но эти две почему-то не хотят обьявляться. Может их по-другому как-то обьявить надо? Остальные переменные я обьявлял так: $errm = " "; $errp = " "; $errr = " "; $errr = " ";
Quote (Assasin) Убрать эту строку Code if(!preg_match("/^[_\.0-9a-z-]{1,}@[_\.0-9a-z-]{1,}\.[_\.0-9a-z-]{2,}$/", $_POST ["email"])) {$errm .= "Неправильный e-mail"; $error =1;} Ну это совсем уберет ответ о Неправильном мыле. А я хотел сделать только так, чтоб ошибка "Неправильный e-mail" не высвечивалась тогда, когда ничего не введено (потому что будет высвечиваться "Введите мыло"), но высвечивалась если пользователь неправильно ввел мыло. Походу просто надо добавить в эту строку несовпадение не только с теми символами, но и с незаполненым полем, но я не смог найти как это сделать.
Сообщение отредактировал Sektoid - Среда, 06 Июля 2011, 18:33 |
|
| |
Sektoid | Дата: Среда, 06 Июля 2011, 04:47 | Сообщение # 79 | Тема: Урок по созданию браузерной игры № 5 |
почетный гость
Сейчас нет на сайте
| Спасибо за уроки! При том, что у меня до этого были только базовые знания жабы, я медленно, но верно учусь не только делать мморпг, но и юзать пхп\мускул. Комментарии к коду бесценны Вот только никак не могу сделать переадресацию на гейм.пхп Может кто знает как?
|
|
| |
Sektoid | Дата: Среда, 06 Июля 2011, 00:29 | Сообщение # 80 | Тема: FlashDevelop |
почетный гость
Сейчас нет на сайте
| Quote (AGENTX001) При открытии файла mxml высвечивает ошибку
Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) в System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid) в System.Windows.Forms.AxHost.CreateWithoutLicense(Guid clsid) в System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid) в System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid) в System.Windows.Forms.AxHost.CreateInstance() в System.Windows.Forms.AxHost.GetOcxCreate() в System.Windows.Forms.AxHost.TransitionUpTo(Int32 state) в System.Windows.Forms.AxHost.CreateHandle() в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) в System.Windows.Forms.AxHost.EndInit() в FlexDesignView.Controls.FlexDesignViewArea.InitializeComponent() в FlexDesignView.Controls.FlexDesignViewArea..ctor() в FlexDesignView.PluginMain.addControls() в FlexDesignView.PluginMain.HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) в PluginCore.Managers.EventManager.DispatchEvent(Object sender, NotifyEvent e)
И кнопка Design Viem не пашет, хотя сделал всё чтоговорили, по всем постаи пробовал(
Столкнулся с таким же приколом. Если кому понадобиться - решил установкой флеш плеера из-под Интернет Експлорера
Сообщение отредактировал Sektoid - Среда, 06 Июля 2011, 00:57 |
|
| |
|