Воскресенье, 06 Октября 2024, 11:18

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
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)
возможно овладеть не имея начальных знаний основ программ

Насчет программ - возможно, методом тыка, я тому пример happy FlashDevelop абсолютно не знал, стал вникать в него когда писал уроки, а потом разобрался и пошло-поехало.
---------
Пост подправил, теперь CHAR нормально пишеться.
AssasinДата: Среда, 18 Ноября 2009, 21:50 | Сообщение # 624 | Тема: Урок по созданию браузерной игры № 5
web-coder
Сейчас нет на сайте
Можно smile
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 happy
AssasinДата: Вторник, 17 Ноября 2009, 20:24 | Сообщение # 627 | Тема: Новая структура форума.
web-coder
Сейчас нет на сайте
Я только "За" happy
AssasinДата: Понедельник, 16 Ноября 2009, 12:43 | Сообщение # 628 | Тема: Урок по созданию браузерной игры № 2
web-coder
Сейчас нет на сайте
Да, вы правы, у себя я изменил, а здесь забыл. Сейчас подправлю.
AssasinДата: Суббота, 14 Ноября 2009, 17:31 | Сообщение # 629 | Тема: Урок по созданию браузерной игры № 8
web-coder
Сейчас нет на сайте
Вот и 8 урок позади (для меня biggrin ), ох и намучался я с ним, но сделал. Только есть один баг, который я оставляю для вас, надеюсь вы с ним справитесь, а сам баг заключаеться в том, что на какой предмет не нажимай, переместиться только первый в списке. Если не поняли что я написал, то когда сделаете урок и будете его тестировать, то поймете. Также я не сделал изменения характеристик персонажа при надевании или снятии предмета, надеюсь вы справитесь сами.
Начнем с того что нужно добавить новые таблицы в нашу БД, эти таблицы я взял с уроков 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 -Изменен дизайн кнопок

А скрины глянуть можно? Интересно happy
AssasinДата: Понедельник, 09 Ноября 2009, 12:14 | Сообщение # 639 | Тема: Движок для онлайн 2д рпг
web-coder
Сейчас нет на сайте
Quote (TrueIfrit)
Vinchensoo, удивляешь....... Зачем тебе двиг если есть куча конструкторов?

А ты на дату первого поста смотрел? Советую обратить внимание и автору темы перенести её в корзину, так как уже не нуждаеться в движке.
AssasinДата: Воскресенье, 08 Ноября 2009, 21:53 | Сообщение # 640 | Тема: Мобильная ММОРПГ
web-coder
Сейчас нет на сайте
Написать с помощью ЯП, то есть java.
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг