ria pc game
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
18 февраля 2019 6:00
Вход Регистрация Забыли пароль ?

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Вставка созданной графики, звуков и музыки в игру - Inserting created graphics, sounds and music in the game.
megainformatic.ru Синицин А. С. Шарики на лифте - Как создать игру - Вставка созданной графики, звуков и музыки в игру Теперь мы научимся вставлять созданные на протяжении предыдущих уроков - спрайты, фоны, звуки и музыку в игру. к содержанию        
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
Добро пожаловать в систему управления сайтом megainformatic cms

megainformatic - Создание эскиза и макета страницы сайта

megainformatic - Верстка созданного макета

megainformatic - Добавление модулей обеспечивающих минимально необходимый функционал

megainformatic - Основы добавления контента на сайт, управления и поддержки сайта

megainformatic - Проверка работы сайта, установка на хостинг

megainformatic - Основы продвижения созданного сайта

megainformatic - Создание шаблонов

megainformatic - Создание интернет-магазина

megainformatic - Музыкальные миры - композиция Морозное утро - 10 версий

ЛЕТО

megainformatic - Нечто Необъяснимое - пре релиз

megainformatic cms admin

megainformatic cms admin

megainformatic - Основы создания 3d игр - проект Тайны Морских Глубин

megainformatic - уроки delphi directx 8.1 3d - Основы Вращений и Управления камерой

megainformatic cms seo

megainformatic cms admin

megainformatic - Моделируем девушку в 3d - Подготовка 2d-эскиза тела человека

megainformatic cms stat kit

megainformatic cms seo

megainformatic - Теория и практика 3d игр - О Кватернионах

megainformatic - Теория и практика 3d игр - Основы теории векторов

megainformatic - Теория и практика 3d игр - Важные замечания

megainformatic - Моделируем девушку в 3d используя 3ds max - Подготовка к моделированию ноги - готовим ширму

megainformatic - Моделируем девушку в 3d используя 3ds max - Выполняем моделирование ноги

megainformatic - Моделируем девушку в 3d используя 3ds max - Улучшаем созданную модель женской ножки

megainformatic cms stat kit

megainformatic - Подводная лодка и подводный мир

megainformatic - megainformatic cms - Форма для смены шаблонов сайта - модуль template selector

megainformatic cms social

megainformatic cms social Руководство пользователя

megainformatic - megainformatic cms - Форма для смены шаблонов сайта - модуль template selector

модуль слайдера

ТЗ на сайт коллективных покупок

модуль slider

megainformatic cms seo

Поддержка сайтом нескольких языков - модуль multi lang

Поддержка сайтом нескольких языков - модуль multi lang

megainformatic - Моделируем девушку в 3d используя 3ds max - другие статьи сборника статей - обзор

установка нового шаблона в joomla 2.5.4

Описание продукта megainformatic cms social

Описание продукта megainformatic cms social

megainformatic - ТЗ на сайт по аналогии rys-stroi.ru

megainformatic cms groupon

megainformatic - дизайн сайта строительной компании УЛЬТРА-СТРОЙ

megainformatic - Тестирование подключения платежной системы

megainformatic - Выпадающее окно регистрации на сайте

megainformatic - Тестирование подключения к платежной системе с использованием скрипта эмулятора

megainformatic - Модуль для регистрации пользователя на сайте

megainformatic - Код для модуля регистрации пользователя на сайте

megainformatic - Быстрый подсчёт ключевых слов в статье

megainformatic - Модуль подсчёта ключевых слов в статье

megainformatic - Онлайн-сервис для подсчёта статистики ключевых слов

megainformatic - Пишем слайдер на javascript с нуля

megainformatic - Логика работы слайдера на javascript

подробнее


[к содержанию] [другие статьи Тимонина Андрея]

Поиск файлов. Получаем список файлов каталога.

автор: Тимонин Андрей

дата публикации на сайте Мега Информатик: 18.11.2012

Добро пожаловать в цикл моих уроков посвященных программированию.

Эта статья будет посвящена поиску файлов, использую функции Win32 API.


Задача поиска тесно связана с операционной системой. В API каждой ОС можно найти свои функции для работы с файлами и каталогами. Также существует универсальные кроссплатформенные библиотеки, где реализованы свои функции для работы с файлами и каталогами с любой осью. В частности в библиотеке Boost.Filesystem , которую можно загрузить с официального сайта по адресу http://www.boost.org.

В данной статье мы рассмотрим, как можно реализовать поиск файлов, используя только функции Win32 API.

И так давайте попробуем реализовать простой класс для получения списка файлов некоторого каталога. Что нам необходимо знать для решения этой задачи? Во-первых, путь поиска нашего каталога, во-вторых, маска, по которой мы определим, что это наши файлы.

Вот такой получился класс, который я назвал ресурс. Смотрим его объявление.

//Resource.h
#pragma once
#include "Shlwapi.h"
#include
class Resource
{
typedef std::vector ListStr;
private:
//имя директории для поиска
std::string _Path;
//маска поиска
std::string _Mask;
//название ресурса
std::string _name;

BOOL Find (CHAR *Directory, std::string ext);
//список ресурсов(имен файлов данного типа в выбранной папке)
ListStr mlist;
public:
//конструктор
Resource(std::string name , std::string Path, std::string Mask );
//загрузка
bool load();
ListStr getList() const;

};

Тут открыты: конструктор, функция загрузки и функция получения списка загруженных файлов. Для хранения списка использую STL класс вектор. Функция Find, по сути, рекурсивна, используется в данном примере как обычная функция. Смотрим на реализацию класса.

//Resource.cpp
#include “Resource.h”
//---------------------------------------------------------------------------------------------------------------------------------------------------------
Resource :: Resource(std::string name , std::string Path, std::string Mask ):_Path(Path),_Mask(Mask),_name(name){ }
bool Resource:: load(){
return Find((CHAR *)_Path.c_str(),_Mask);
}
//-------------------------------------------------
ListStr Resource:: getList() cons{
return mlist;
}
//----------------------------------------------------------------------
BOOL Resource ::Find (CHAR *Directory, std::string ext)
{ if (Directory == NULL) return FALSE;
//добавляем обратный слеш к имени каталога
PathAddBackslash(Directory);
//прицепляем маску поиска
lstrcat(Directory, ext.c_str());
//структура данных поиска
WIN32_FIND_DATA FileData;
//Ищем первый файл
HANDLE hSearch = FindFirstFile(Directory, &FileData);
while (TRUE)
{
if (hSearch == INVALID_HANDLE_VALUE) break;
if (FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// Если нашли каталог(в данном примере не рассматриваем)
}
else
{
//получен нужный файл, заносим в список
mlist.push_back(FileData.cFileName);
}
if (!FindNextFile(hSearch, &FileData)) break; // ищем следующий файл
}
return TRUE;
}

Поиск, как видите, происходит в два приема. Сначала вызываем функцию FindFirstFile с директорией поиска, которая ищет первый файл и возвращает дескриптор. Если все прошло успешно мы в цикле проверяем результат этой функции в структуре поиска и заносим имя файла в список. Следующий файл определяется вызовом функции FindNextFile. Когда эта функция вернет значение FALSE, поиск прекращаем.

Для примера загрузим список фотографий каталога image:

Resource* mImage = new Resource( "JPEG"," image", "*.jpg");
mImage->load();

На этом статью заканчиваю. Надеюсь, эта информация была вам интересна.
C уважением, Андрей.

[к содержанию] [другие статьи Тимонина Андрея]

подробнее

     
  Другие уроки можно посмотреть в разделе Статьи  
     
 

Краеугольная особенность работы Web-form на примере смены состояния checkbox.

казалось бы - что может быть проще - обычный checkbox - - но оказывается надо учитывать несколько особенностей для корректной работы с этим элементом управления на ваших Web-страничках

 
     
 

В предыдущем уроке - Использование checkbox мы познакомились с простым элементом управления для установки состояний вида Да/Нет

Однако как оказалось нужно учитывать не только особенности работы самих элементов управления web-страницами представленных тегом <input>, но и web форм - <form>.

 
     
 

В данном уроке мы рассмотрим следующие особенности:

- как работают веб-формы;

- как читать/сохранять данные веб-форм в файл;

- как читать/сохранять данные веб-форм в базу данных;

 
     
 

Для начала попробуем создать простейшую веб-форму содержащую знакомый нам checkbox, но чтобы состояние checkbox'а не пропадало бесследно, а сохранялось бы (и читалось бы) из файла.

Вот пример кода на php для реализации этой цели (файл называется checkbox4.php)

 
     
 

<HTML>
<HEAD>
<TITLE>Отслеживаем состояние checkbox'a в файле</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</HEAD>
<BODY>

<div style="width: 990px; margin: 0 auto; background: #777777;">
<div style="width: 900px; margin: 0 auto; background: #aaaaaa;">

<?php

/* Особенность работы checkbox'а

если чекбокс установлен - при отправке данных формы передается его значение value
если чекбокс не установлен - при отправке данных формы не передается ничего !!!

читаем/сохраняем состояние checkbox'а из файла

*/

//первым делом объявляем константу - имя файла где будем хранить состояние checkbox

//обратите внимание - нужно вручную создать папку data т. к. функция fopen с параметром w не умеет //создавать сразу и папку и вложенный в неё файл !!!
define (CHECKBOX_STATE_FILENAME, 'data/checkbox_state.txt');

//эта функция у нас читает состояние чекбокса из файла и возвращает значение $state
function read_state()
{
$state = 0;

if ( file_exists(CHECKBOX_STATE_FILENAME) )
{

$handler = fopen(CHECKBOX_STATE_FILENAME, "r");
$state = fread($handler, filesize(CHECKBOX_STATE_FILENAME));
fclose($handler);

}

return $state;
}

//эта функция - запишет состояние $state чекбокса в файл, если файла нет - он будет создан

//обратите внимание еще раз !!! папку data вы должны предварительно создать сами иначе код не будет //работать корректно !!!

//т. к. функция fopen с параметром w не умеет создавать сразу и папку и вложенный в неё файл !!!

function write_state($state)
{
//$state = 0;

$handler = fopen(CHECKBOX_STATE_FILENAME, "w");
fwrite($handler, $state);
fclose($handler);


//return $state;
}

//Эта функция нужна нам чтобы вывести фразу - Флажок установлен (сброшен)
function show_flag_state($state)
{
$state_phrase = $state ? "установлен" : "сброшен";
echo "Флажок был ".$state_phrase." <br>";
}

//читаем состояние флажка в переменную $published
$published = read_state();
//для атрибута checked задаем пустую строку
$checked = '';

//если флажок установлен
if ( $published )
{

//задаем атрибут checked
$checked = 'checked = "checked"';

}

//эта переменная нужна просто для указания части имени для checkbox'а
$num = 1;

//если была нажата кнопка Сохранить в веб форме

if ( $_POST['save'] )
{

//выставляем переменную $state в 1 или 0 в зависимости от установленности $_POST['published-'.$num]
$state = isset($_POST['published-'.$num]) ? 1 : 0;

//сохраняем значение флажка в файл
write_state($state);

//выводим фразу о том, что произошло
show_flag_state($state);

//выводим ссылку для возврата на страницу
echo "<br><a href='checkbox4.php'>вернуться</a>";
}
else {

//если страница была только что открыта (или обновлена) без нажатия кнопки Сохранить в форме

//выводим нашу веб-форму дав ей имя save_changes

//страницу обработчик - указываем саму себя - checkbox4.php

//метод отправки данных формы - ПОСТ
echo "<form name='save_changes' action = 'checkbox4.php' method = 'POST'>";

//выводим чекбокс
echo "<input type=\"checkbox\" ".$checked." name=\"published-".$num."\" value=\"".$published."\">";

//выводим кнопку Сохранить изменения
echo "<input type = 'submit' value = 'Сохранить изменения' name='save'>

//закрываем форму закрывающим тегом
</form>";
}


?>
</div>
</div>

</BODY>
</HTML>

 
     
 

Это чудо работает таким образом - если зададим состояние чекбокса и нажмём кнопку <Сохранить изменения>, то фраза Флажок установлен или сброшен - будет показывать состояние чекбокса.

Само состояние чекбокса будет браться из файла data/checkbox_state.txt

В файл будет заноситься 1 или 0 в зависимости от установленности (сброшенности) чекбокса.

Главная особенность веб-форм состоит в том, что результат выполнения операции бывает невозможно показать на странице с тем же состоянием - как правило требуется отдельная страница или вынесение кода для показа результата в отдельный условный блок кода.

Работающий пример на php смотрите тут - checkbox4.php

ВОТ и ВСЁ на сегодня. Ждите новых уроков.

 
     
  Другие уроки можно посмотреть в разделе Статьи  
     
подробнее

Игродельня



Приветствую тебя, начинающий или опытный игродел !

Есть немного информации для тебя, итак.

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

Можно начать и свой новый уникальный проект при наличии определенных условий: проект будет интересен.

Завершенные проекты

Ну, Погоди ! эмулятор электроника ИМ-02
Donuts 3d
road2city
Веселый Буквоежка
Костя Коробкин Как я провел лето
Костя Коробкин С новым годом !
Костя Коробкин Секретный проект
Костя Коробкин В гостях у тети Светы
Костя Коробкин В гостях у тети Светы продолжение - живые машины (проект близится к завершению)

Костя Коробкин Комикс Коллекционное издание

Шарики на лифте
Нечто Необъяснимое: в плену желаний



Проекты в разработке, уже есть выпущенные демо-версии.



balls and holes
Движок: fle game engine
Код примера игры на которой основан проект: balls and holes

Участники:

программист - Синицин Андрей
сценарий, концепт, идеи - Синицин Андрей, Синицина Дарья
графика - Синицин Андрей
дизайн уровней - Синицин Андрей, Синицина Дарья
музыка, звуки - Синицин Андрей (cj megainformatic)



si cod2
Движок: fle game engine
Код примера игры на которой основан проект: fle, you visual show, si cod

Участники:

программист - Синицин Андрей
сценарий, концепт, идеи - Синицин Андрей
графика - Синицин Андрей
дизайн уровней - Синицин Андрей
музыка, звуки - Синицин Андрей (cj megainformatic)



naramise (пока нет демо-версии, но есть выпущенный вариант флеш-игры - naramise)
Движок: fle game engine
Код примера игры на которой основан проект: simple game

Участники:

Тимонин Андрей
программист - Тимонин Андрей

сценарий, концепт, идеи - Тимонин Андрей
графика - Тимонин Андрей
дизайн уровней - Тимонин Андрей
музыка, звуки - Тимонин Андрей, Синицин Андрей (cj megainformatic)



Веселые Питомцы (есть демо-версия, но пока недоступна для скачивания)

Участники:
программист - Синицин Андрей
сценарий, концепт, идеи - Синицин Андрей, Синицина Дарья
графика - Синицин Андрей, Синицина Дарья
дизайн уровней - Синицин Андрей, Синицина Дарья
музыка, звуки - Синицин Андрей (cj megainformatic)



открытые проекты к которым можно присоединиться

Дорога в Город 2

Путь фрилансера

Костя Коробкин интерактивный комикс

simple game extended

simple game

предложите ваш уникальный проект

подробнее

     
  [к содержанию] [назад] [далее]  
     
 

Рисование фона (урок 6 часть 2)

 

В первой части данного урока мы рассмотрели создание персонажа. Теперь займемся обстановкой изображенной вокруг и на задних планах.

1.      Усвоив содержание первой части данного урока Вы уже можете самостоятельно создать облако. Для градиентной заливки используйте Fountain Fill.

2.      Световой блик в нижней части облака – это фигура повторяющая по форме низ облака, белого цвета и с применением инструмента Полупрозрачность (Interactive Transparency Tool).

 

3.      Небо – это прямоугольник на заднем плане, не имеющий обводки, с градиентной заливкой.

4.      Капельки дождя, падающие из облака: создайте эллипс, создайте треугольник используя Polygon Tool и количество вершин - 3

 

разместите треугольник как показано на рисунке

 

выделите обе фигуры, обведя вокруг них мышью (для выделения лучше использовать инструмент Pick tool) и сплавьте их в единое целое.

 

Выберите инструмент Shape и выделив лишние узлы (с нажатой клавишей Shift) удалите их клавишей [Delete].

Поверните каплю: для этого выберите объект, он станет выделен. Щелкните в центре объекта (по крестику).

Появятся маркеры вращения/искажения. Используя их поверните объект.

 

Создайте для капли обводку голубого цвета, тощиной 1 pt и градиентную заливку линейного типа, в требуемом направлении, с требуемыми цветами: пока объект является текущим (выбранным) выберите в окне свойств объекта вкладку Outline (обводка). Замечание: если это окно не отображается или вы скрыли его – выберите пункт Window > Dockers > Properties

На вкладке задайте требуемые параметры – width (толщину) и color (цвет) обводки.

Для выполнения градиентной заливки откройте вкладку Заливка (Fill) и выберите режим градиентной заливки (Fountain fill)

 

Для изменения параметров градиента: задайте требуемый вид и цвета. Нажав кнопку Edit вы сможете задать и ряд дополнительных параметров, в частности: Angle – угол вращения и Mid-point – срединную точку, задающую баланс цветов градиента

 

Капля готова. Если она великовата можете ее уменьшить. Чтобы сделать много капель – дублируйте их, вначале по одной, а затем группами. Так получите дождик.

 

Равнина на рисунке – это прямоугольник, без обводки, с текстурной заливкой из группы Samples 9 > Above the Storm. Вам останется только задать в параметрах текстуры подходящие цвета.

Не забудьте пометить равнину на задний план – правая кнопка мыши в центре объекта>Order>To Back, иначе она закроет персонажа.

 

Создание объектов произвольной формы: горы, река, камень поднятый над головой – для этого можно использовать инструменты Freehand и Shape. Причем Freehand используйте для создания прототипа объекта.

 

Обратите внимание, объект должен быть замкнут, т.е. начальная и конечная точки должны встретиться! В противном случае объект не заливается.

Для автозамыкания контура используйте кнопку Auto-Close curve на панели свойств

Shape – используйте для видоизменения формы объекта – за счет перемещения существующих узлов, их добавления/удаления, изменения типа отрезков между узлами (кривая/прямая).

 

На рисунке выше показан выбранный узел (для выбора узла нужно щелкнуть его один раз), на панели свойств курсор наведен на кнопку преобразования сегмента (отрезка между узлами) в тип Curve (кривая). При этом отрезок можно будет искривлять наведя на него курсор мыши или при выбранном узле перемещая манипуляторы (касательные к кривой).

 

Надпись создается инструментом Text

Текст может быть двух видов: Artistic (художественный) и Paragraph (форматированный). Первый создается посредством простого щелчка и набором с клавиатуры, при этом доступны для изменения все стандартные свойства векторного объекта – масштаб, заливка, обводка и т.п. Второй создается путем рисования курсором мыши рамки и служит для набора блоков форматированного текста. Такой текстовый блок уже не является векторным объектом, поэтому для него доступны только свойства обычные для форматированного текста (шрифт, размер, цвет и т.п.).

Полупрозрачность надписи – см. шаг 2.

 

Тени создаются искусственно или с использованием инструмента Interactive Drop Shadow

 

Инструмент Drop Shadow (падающая тень) позволяет создавать тени от объектов по форме их силуэта. Для этого надо с выбранным инструментом нажать в нужной части объекта (например в центре) и удерживая левую кнопку мыши протянуть в нужном направлении.

Искусственные тени – это фигуры нужной формы, закрашенные черным с применением полупрозрачности Transparency.

 

Итак, применив все вышесказанное и опираясь на практику Вы сможете создать точно такую же картинку, как показано в начале 6 урока.

 
     
  [к содержанию] [назад] [далее]  
     
     
Содержимое данной страницы доступно только зарегистрированным пользователям.



Пожалуйста войдите на сайт - Вход

или пройдите процедуру регистрации - Регистрация

megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 1,0357