Результаты поиска
| |
Assasin | Дата: Четверг, 19 Ноября 2009, 12:53 | Сообщение # 621 | Тема: Урок по созданию браузерной игры № 2 |
web-coder
Сейчас нет на сайте
| Code .btn {font-size:7.5pt[b]:[/b] color:#dfddd3;font-family:Veranda,Arial,Helvetica,sans-serif;background-color:#2b2b18;border:1px double #817A63;} .inup {text-[b]aling[/b]: center;font-size:8pt; color:#dfddd3;font-family:Veranda,Arial,Helvetica,sans-serif; background-color:#151616; border: 1px double#817a63;} То что я выделил имеет ошибки. Первое - вместо двоеточия должна быть точка с запятой, второе - правильно писать align
|
|
| |
Assasin | Дата: Четверг, 19 Ноября 2009, 12:40 | Сообщение # 622 | Тема: Урок по созданию браузерной игры № 2 |
web-coder
Сейчас нет на сайте
| style.css связываеться с index.php этим тегом Code <link rel="stylesheet" href="style.css" type="text/css" /> Напишите в какую папку вы сохранили оба файла и покажите код, возможно где то допустили ошибку.
|
|
| |
Assasin | Дата: Четверг, 19 Ноября 2009, 12:36 | Сообщение # 623 | Тема: Уроки по созданию браузерной игры |
web-coder
Сейчас нет на сайте
| Quote (Torbin) возможно овладеть не имея начальных знаний основ программ Насчет программ - возможно, методом тыка, я тому пример FlashDevelop абсолютно не знал, стал вникать в него когда писал уроки, а потом разобрался и пошло-поехало. --------- Пост подправил, теперь CHAR нормально пишеться.
|
|
| |
Assasin | Дата: Среда, 18 Ноября 2009, 21:50 | Сообщение # 624 | Тема: Урок по созданию браузерной игры № 5 |
web-coder
Сейчас нет на сайте
| Можно
|
|
| |
Assasin | Дата: Среда, 18 Ноября 2009, 14:09 | Сообщение # 625 | Тема: Происхождение вашего ника...... |
web-coder
Сейчас нет на сайте
| Quote (TovTripleZ) Ложь и провокация. Не Assassin, а Assasin, т.е. ты наоборот написал слово правильно. Внимательнее надо быть. Смотри http://ru.wikipedia.org/wiki/Assassin's_Creed
|
|
| |
Assasin | Дата: Среда, 18 Ноября 2009, 13:12 | Сообщение # 626 | Тема: Происхождение вашего ника...... |
web-coder
Сейчас нет на сайте
| Думаю многие играли в Assassins Creed, но так как Assassin'ов много, то я убрал одну s
|
|
| |
Assasin | Дата: Вторник, 17 Ноября 2009, 20:24 | Сообщение # 627 | Тема: Новая структура форума. |
web-coder
Сейчас нет на сайте
| Я только "За"
|
|
| |
Assasin | Дата: Понедельник, 16 Ноября 2009, 12:43 | Сообщение # 628 | Тема: Урок по созданию браузерной игры № 2 |
web-coder
Сейчас нет на сайте
| Да, вы правы, у себя я изменил, а здесь забыл. Сейчас подправлю.
|
|
| |
Assasin | Дата: Суббота, 14 Ноября 2009, 17:31 | Сообщение # 629 | Тема: Урок по созданию браузерной игры № 8 |
web-coder
Сейчас нет на сайте
| Вот и 8 урок позади (для меня ), ох и намучался я с ним, но сделал. Только есть один баг, который я оставляю для вас, надеюсь вы с ним справитесь, а сам баг заключаеться в том, что на какой предмет не нажимай, переместиться только первый в списке. Если не поняли что я написал, то когда сделаете урок и будете его тестировать, то поймете. Также я не сделал изменения характеристик персонажа при надевании или снятии предмета, надеюсь вы справитесь сами. Начнем с того что нужно добавить новые таблицы в нашу БД, эти таблицы я взял с уроков http://www.blitz-school.info/ , надеюсь разработчики простят меня за сие «злодеяние». Заходим в phpMyAdmin в нашу БД testgame, во вкладку SQL и записываем код: Code CREATE TABLE `items_list` ( `il_id` INT(4) unsigned NOT NULL AUTO_INCREMENT, /*идентификатор предмета*/ `item_type` INT DEFAULT 0, /*Тип предмета : напр. 1 = меч, 2-топор....*/ `item_name` CHAR(50) NOT NULL, /*Название предмета*/ `item_slot_name` CHAR(15) NOT NULL DEFAULT '', /*Слот предмета*/ `item_image` CHAR(32), /*путь к картинке предмета и ее имя*/ `atk` INT(5), `def` INT(5), `lov` INT(5), `life` INT(5), PRIMARY KEY (`il_id`), KEY(`item_type`) ) TYPE=MyISAM; Данная таблица будет содержать весь список предметов, для добавления предметов в таблицу напишем небольшой скрипт, назовем его doc.php: Code <?php include "conf.php";
$data = mysql_connect($base_name, $base_user, $base_pass); mysql_select_db($db_name);
$query = mysql_query("SELECT * FROM items_list");
if ($_POST['next']){ mysql_query("INSERT INTO items_list (item_type, item_name, item_slot_name, item_image, atk, def, lov, life) VALUES ('".$_POST['item_type']."', '".$_POST['item_name']."', '".$_POST['item_slot_name']."', '".$_POST['item_image']."', '".$_POST['atk']."', '".$_POST['def']."', '".$_POST['lov']."', '".$_POST['life']."')"); }
?> <form method="post" action=""> Тип:(1-меч, 2-топор...) <input type="text" name="item_type"><br> Название: <input type="text" name="item_name"><br> Слот предмета: <input type="text" name="item_slot_name"><br> Картинка: <input type="text" name="item_image"><br> Атака+ : <input type="text" name="item_atk"><br> Защита+ : <input type="text" name="item_def"><br> Жизни+ : <input type="text" name="item_life"><br> Ловкость+ : <input type="text" name="item_lov"><br> <input type="submit" name="next" value="Next"><br> </form> <?php while ($info = mysql_fetch_array($query)){ echo $info['item_type'].", ".$info['item_name'].", ".$info['item_slot_name'].", <img src='".$info['item_image']."'>, ".$info['atk'].", ".$info['def'].", ".$info['lov'].", ".$info['life']."<br>"; } ?> Добавляем в БД есче таблицы: Code CREATE TABLE `items`( `it_id` BIGINT(20) unsigned NOT NULL auto_increment, /*уник. идентификатор предмета*/ `il_id` INT(4) unsigned NOT NULL, /* ID предмета в справочнике предметов*/ `item_owner` BIGINT(20) DEFAULT 0 NOT NULL, /*владелец предмета (ID игрока или номер системного объекта)*/ `item_position` INT REFERENCES itemposition_list(`id`), /*позиция предмета*/ PRIMARY KEY (`it_id`), KEY (`item_owner`) ) TYPE=MyISAM; /* Справочник позиций предмета */ CREATE Table `itemposition_list`( `ip_id` INT(4) unsigned NOT NULL AUTO_INCREMENT, /*идентификатор позиции*/ `item_pos_name` CHAR(30), /*Название позиции*/ PRIMARY KEY (`ip_id`) ) TYPE=MyISAM;
INSERT INTO itemposition_list (item_pos_name) VALUES('Рюкзак игрока'); INSERT INTO itemposition_list (item_pos_name) VALUES('Слот игрока'); Теперь приступим к написанию кода. Откройте FD и создайте новый файл, переименовав его на inventar.mxml: Code <?xml version="1.0" encoding="utf-8"?> <mx:TitleWindow showCloseButton="true" layout="absolute" width="250" height="300" close="handleClose(event)" creationComplete="cell()" xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script><![CDATA[ import mx.managers.PopUpManager; import mx.events.CloseEvent; import mx.rpc.events.ResultEvent; private var dataXML:XML = new XML; /* Функция закрытия всплывающего окна */ public function handleClose(evt:CloseEvent):void { PopUpManager.removePopUp(this); } /* Функция отправки данных для перенесения предмета из инвентаря в слот игрока */ public function menu_drop():void { inventfun.send(); } /* Функция отправки данных для отображения предметов */ public function cell():void { invent.send(); } public function onResult(e:ResultEvent):void { dataXML = XML(e.result); inv_img_0.load(String(dataXML.inv_img_0)); inv_img_1.load(String(dataXML.inv_img_1)); inv_img_2.load(String(dataXML.inv_img_2)); inv_img_3.load(String(dataXML.inv_img_3)); inv_img_4.load(String(dataXML.inv_img_4)); inv_img_5.load(String(dataXML.inv_img_5)); } ]]></mx:Script> <mx:HTTPService id="invent" useProxy="false" method="POST" result="onResult(event)" resultFormat="xml" url="inv.php"/> <mx:HTTPService id="inventfun" useProxy="false" method="POST" url="invfun.php"/> <mx:Image id="inv_img_0" click="menu_drop()" x="15" y="12" width="50" height="50"/> <mx:Image id="inv_img_1" click="menu_drop()" x="78" y="12" width="50" height="50"/> <mx:Image id="inv_img_2" click="menu_drop()" x="150" y="12" width="50" height="50"/> <mx:Image id="inv_img_3" click="menu_drop()" x="15" y="94" width="50" height="50"/> <mx:Image id="inv_img_4" click="menu_drop()" x="98" y="94" width="50" height="50"/> <mx:Image id="inv_img_5" click="menu_drop()" x="160" y="94" width="50" height="50"/> </mx:TitleWindow> Как видите это всплывающее окно, для его отображения изменим немного menu.mxml: Code <?xml version="1.0" encoding="utf-8"?> <mx:Application layout="absolute" width="392" height="22" xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script><![CDATA[ import flash.net.URLRequest; import mx.managers.PopUpManager; public function prof():void { var popup:profil = profil(PopUpManager.createPopUp(this, profil, false)); popup.x = 140; popup.y = 100; popup.title = "Профиль"; } private function logout():void { var logoutLink:URLRequest = new URLRequest("logout.php"); navigateToURL(logoutLink, "_self"); } public function invent():void { var popupInv:inventar = inventar(PopUpManager.createPopUp(this, inventar, false)); popupInv.x = 410; popupInv.y = 100; popupInv.title = "Инвентарь"; } ]]></mx:Script> <mx:Button click="prof()" label="Профиль" x="0" y="0" width="80" height="22"/> <mx:Button click="invent()" label="Инвентарь" x="80" y="0" width="90" height="22"/> <mx:Button label="Журнал квестов" x="170" y="0" width="123" height="22"/> <mx:Button click="logout()" label="Выход" x="292" y="0" width="100" height="22"/> </mx:Application> Мы добавили при нажатии на кнопку отображаеться всплывающее окно с инвентарем. Приступим к написанию скрипта, который будет отображать предметы в инвентаре, назовем его inv.php: Code <?php session_start();
include "conf.php";
$data = mysql_connect($base_name, $base_user, $base_pass); mysql_select_db($db_name);
$query = mysql_query("SELECT * FROM users WHERE name='".$_SESSION['name']."'"); $row = mysql_fetch_array($query); $id = $row["id_user"];
// Отобразим содержимое инвентаря $query1 = mysql_query("SELECT i.it_id, i.item_position, il.item_type, il.item_image, il.item_name FROM items i inner join items_list il on il.il_id=i.il_id WHERE item_owner='".$id."' and item_position='1'"); echo "<?xml version='1.0'?>"; echo "<inv>"; $i = 0; while ($row1 = mysql_fetch_array($query1)) { $SlotItemID = $row1["it_id"]; $ItemType = $row1["item_type"]; $ItemImage = $row1["item_image"]; $ItemName = $row1["item_name"]; echo "<inv_img_".$i.">".$ItemImage."</inv_img_".$i.">"; $i++; } echo "</inv>"; ?> И добавим скрипт, который будет обрабатывать перемещение предмета из инвентаря в слот чара, назовем его invfun.php: Code <?php session_start();
include "conf.php";
$data = mysql_connect($base_name, $base_user, $base_pass); mysql_select_db($db_name);
$query = mysql_query("SELECT * FROM users WHERE name='".$_SESSION['name']."'"); $row = mysql_fetch_array($query); $id = $row["id_user"];
$query1 = mysql_query("SELECT i.it_id, i.item_position, il.item_type, il.item_image, il.item_name FROM items i inner join items_list il on il.il_id=i.il_id WHERE item_owner='".$id."' and item_position='1'"); $row1 = mysql_fetch_array($query1); $SlotItemID = $row1["it_id"]; //Перемещаем предмет в слот чара $query2 = mysql_query("UPDATE items SET item_position='2' WHERE it_id='".$SlotItemID."'"); ?> Теперь напишем отображение слотов в Профиле чара, для этого изменим сам профиль, открываем profil.mxml: Code <?xml version="1.0" encoding="utf-8"?> <mx:TitleWindow showCloseButton="true" layout="absolute" width="250" height="400" close="handleClose(event)" creationComplete="profileComplete()" xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script><![CDATA[ import mx.managers.PopUpManager; import mx.events.CloseEvent; import mx.rpc.events.ResultEvent; private var dataXML:XML = new XML;
public function profileComplete():void { profileChar.send(); invout.send(); } public function menu_drop():void { invinp.send(); } public function onResult(e:ResultEvent):void { //обработка результатов и ошибок dataXML = XML(e.result); avatar_img.load(String(dataXML.avatar[0])); nameChar.text = dataXML.name[0]; atk.text = dataXML.atk[0]; def.text = dataXML.def[0]; lov.text = dataXML.lov[0]; life.text = dataXML.life[0]; lvl.text = dataXML.lvl[0]; exp.text = dataXML.exp[0]; } public function onResult2(e:ResultEvent):void { //обработка результатов и ошибок dataXML = XML(e.result); inv_img_0.load(String(dataXML.inv_img_0)); inv_img_1.load(String(dataXML.inv_img_1)); inv_img_2.load(String(dataXML.inv_img_2)); inv_img_3.load(String(dataXML.inv_img_3)); } private function handleClose(evt:CloseEvent):void { PopUpManager.removePopUp(this);
} ]]></mx:Script> <mx:HTTPService id="profileChar" useProxy="false" method="POST" result="onResult(event)" resultFormat="xml" url="profil.php"/> <mx:HTTPService id="invout" useProxy="false" method="POST" result="onResult2(event)" resultFormat="xml" url="invout.php"/> <mx:HTTPService id="invinp" useProxy="false" method="POST" url="invinp.php"/> <mx:Label id="nameChar" text="1" textAlign="center" x="4" y="6" width="220" height="18"/> <mx:Label id="atk" text="2" x="192" y="40" width="30" height="18"/> <mx:Label id="def" text="3" x="192" y="58" width="30" height="18"/> <mx:Label id="lov" text="4" x="192" y="75" width="30" height="18"/> <mx:Label id="life" text="5" x="192" y="93" width="30" height="18"/> <mx:Label id="lvl" text="6" x="67" y="29" width="30" height="18"/> <mx:Label id="exp" text="7" x="180" y="111" width="45" height="18"/> <mx:Image id="avatar_img" x="12" y="54" width="120" height="200"/> <mx:Label text="Атака" x="140" y="40" width="38" height="18"/> <mx:Label text="Защита" x="139" y="57" width="47" height="18"/> <mx:Label text="Ловкость" x="134" y="75" width="55" height="18"/> <mx:Label text="Жизни" x="141" y="94" width="40" height="18"/> <mx:Label text="Опыт" x="140" y="111" width="36" height="18"/> <mx:Image id="inv_img_0" click="menu_drop()" x="8" y="255" width="50" height="50"/> <mx:Image id="inv_img_1" click="menu_drop()" x="60" y="255" width="50" height="50"/> <mx:Image id="inv_img_2" click="menu_drop()" x="115" y="255" width="50" height="50"/> <mx:Image id="inv_img_3" click="menu_drop()" x="167" y="255" width="50" height="50"/> </mx:TitleWindow> Теперь отобразим предметы в слотах, создадим файл invout.php: Code <?php session_start();
include "conf.php";
$data = mysql_connect($base_name, $base_user, $base_pass); mysql_select_db($db_name);
$query = mysql_query("SELECT * FROM users WHERE name='".$_SESSION['name']."'"); $row = mysql_fetch_array($query); $id = $row["id_user"];
// Отобразим содержимое слотов $query1 = mysql_query("SELECT i.it_id, i.item_position, il.item_type, il.item_image, il.item_name FROM items i inner join items_list il on il.il_id=i.il_id WHERE item_owner='".$id."' and item_position='2'"); echo "<?xml version='1.0'?>"; echo "<inv>"; $i = 0; while ($row1 = mysql_fetch_array($query1)) { $SlotItemID = $row1["it_id"]; $ItemType = $row1["item_type"]; $ItemImage = $row1["item_image"]; $ItemName = $row1["item_name"]; echo "<inv_img_".$i.">".$ItemImage."</inv_img_".$i.">"; $i++; } echo "</inv>"; ?> И осталось отобразить функцию перемещения предметов в инвентарь, создадим файл invinp.php: Code <?php session_start();
include "conf.php";
$data = mysql_connect($base_name, $base_user, $base_pass); mysql_select_db($db_name);
$query = mysql_query("SELECT * FROM users WHERE name='".$_SESSION['name']."'"); $row = mysql_fetch_array($query); $id = $row["id_user"];
$query1 = mysql_query("SELECT i.it_id, i.item_position, il.item_type, il.item_image, il.item_name FROM items i inner join items_list il on il.il_id=i.il_id WHERE item_owner='".$id."' and item_position='2'"); $row1 = mysql_fetch_array($query1); $SlotItemID = $row1["it_id"]; //Перемещаем предмет в инвентарь $query2 = mysql_query("UPDATE items SET item_position='1' WHERE it_id='".$SlotItemID."'"); ?> Вот с инвентарем закончили, надеюсь вы справились, так как комментариев меньше чем в предыдущих уроков. Я думаю вы и так знаете что означает та или иная функция, так как в предыдущих уроках я описывал их. При копировании материала ссылка на источник обязательна!
|
|
| |
Assasin | Дата: Суббота, 14 Ноября 2009, 13:52 | Сообщение # 630 | Тема: Java vs ActionScript3 (Flash) |
web-coder
Сейчас нет на сайте
| Речь идет о Java, просто Master_Chief неправильно понял вопрос, но я ему уже объяснил. Quote (Akyltist) API как в vkontakte в контакте ни когда не сидел, но видел там такую игру как Мафия или Бандиты, не знаю как точно, Насчет контакта это я к примеру написал. Само API будет сильно отличаться, даже направленность будет немного другая. Просто для проекта нужно как можно быстрое взаимодействие пользователя с сервером, которого нету при работе с Flash. В общем небольшое описание проекта: Есть область, к примеру 3000х3000 пикселей, область отображаеться в изометрии и залита травой. На ней можно добавлять свои "приложения", например: - Здание магазина (пользователь сам пишет это приложение использую APIб добавляет свои функции, монетизацию и т.д.) - Парк - Игровой центр и т.д. В итоге будет построен город по которому можно ходить, общаться с остальными игроками... --------------------------------------------- Для такого нужна хорошая производительность, ее можно достичь используя Java. Но так как API тоже будет под Java, то возник вопрос "Многие ли знают данный язык?". Quote (Akyltist) А если речь все таки о Java, то ее знает во много раз народа больше чем AS3. Судя по друзьям с Хабры и ICFPC - Java за рубежом в разы популярнее чем в России. Есче один кубик в сторону Java, значит буду на ней делать, но все таки тему открытой подержу.
|
|
| |
Assasin | Дата: Пятница, 13 Ноября 2009, 17:45 | Сообщение # 631 | Тема: Java vs ActionScript3 (Flash) |
web-coder
Сейчас нет на сайте
| Я за Java, так как он намного шустрее Flash'a. Самый большой минус во Flash'е это его производительность. Java этим недостатком не страдает.
|
|
| |
Assasin | Дата: Четверг, 12 Ноября 2009, 23:00 | Сообщение # 632 | Тема: Урок по созданию браузерной игры № 7 |
web-coder
Сейчас нет на сайте
| Наверное он имел ввиду продолжение, на днях будет.
|
|
| |
Assasin | Дата: Четверг, 12 Ноября 2009, 21:08 | Сообщение # 633 | Тема: Java vs ActionScript3 (Flash) |
web-coder
Сейчас нет на сайте
| Есть идея создания игры, которая будет использовать API как в vkontakte. И стоит вопрос - какой язык знает большое количество людей (ваше мнение) java или AS3? Прошу проголосовать, а также оставить комментарий к вашему голосу - "Почему вы так считаете?".
|
|
| |
Assasin | Дата: Среда, 11 Ноября 2009, 18:41 | Сообщение # 634 | Тема: AGPsource Game Platform |
web-coder
Сейчас нет на сайте
| Какой то странный официальный сайт, взломали его? Или не доделали?
|
|
| |
Assasin | Дата: Среда, 11 Ноября 2009, 18:29 | Сообщение # 635 | Тема: Создание flash игры для VKontakte |
web-coder
Сейчас нет на сайте
| Quote (CARI) Интересно сколько это стоит. Например, реализация игрового приложения для социальной сети ВКонтакте займет порядка 1-2 месяцев и будет стоить $8000-$20000 (зависит от сложности проекта и количества привлеченных сотрудников)
|
|
| |
Assasin | Дата: Среда, 11 Ноября 2009, 18:25 | Сообщение # 636 | Тема: Уроки по созданию браузерной игры |
web-coder
Сейчас нет на сайте
| Это я для себя удаление сделал, так как очень часто приходилось удалять. В посте исправлю, а ручками не делал, так как привык кодом.
|
|
| |
Assasin | Дата: Вторник, 10 Ноября 2009, 09:30 | Сообщение # 637 | Тема: Подскажите путный Движок сайта |
web-coder
Сейчас нет на сайте
| Как по мне, то путным движком будет DLE
|
|
| |
Assasin | Дата: Понедельник, 09 Ноября 2009, 12:16 | Сообщение # 638 | Тема: Shoot Space - браузерная MMOARPG |
web-coder
Сейчас нет на сайте
| Quote (kirix820) Обновление клиента Shoot Space до версии 0.0.3.4: -Работа с MySQl -Изменен дизайн кнопок А скрины глянуть можно? Интересно
|
|
| |
Assasin | Дата: Понедельник, 09 Ноября 2009, 12:14 | Сообщение # 639 | Тема: Движок для онлайн 2д рпг |
web-coder
Сейчас нет на сайте
| Quote (TrueIfrit) Vinchensoo, удивляешь....... Зачем тебе двиг если есть куча конструкторов? А ты на дату первого поста смотрел? Советую обратить внимание и автору темы перенести её в корзину, так как уже не нуждаеться в движке.
|
|
| |
Assasin | Дата: Воскресенье, 08 Ноября 2009, 21:53 | Сообщение # 640 | Тема: Мобильная ММОРПГ |
web-coder
Сейчас нет на сайте
| Написать с помощью ЯП, то есть java.
|
|
| |
|