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


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

megainformatic - Моделируем девушку в 3d - Подготовка 2d-эскиза тела человека
              [к содержанию] [
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Как скачивать торрент-раздачу ?

megainformatic - Автотелега фильтр

megainformatic - Фильмы

megainformatic - Fahrengeit Фаренгейт игра 2006 для PC

megainformatic - Fez игра для PC 2013

megainformatic - Дневник памяти - фильм 2004

megainformatic - Scooter - The night - Video and Lyrics - Скутер - Ночь - Видео и лирика

megainformatic - Если всё же неудача

megainformatic - Смерть или искупление или избавление

megainformatic - По ту сторону

cj megainformatic - музыкальный альбом БЕСКОНЕЧНОЕ ДВИЖЕНИЕ ОЖИДАНИЕ И ДЕЙСТВИЕ

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

megainformatic - Основы анимации во флеш на примере анимирования простейшей окружности

megainformatic - Парсер сайтов Введение

megainformatic - Я пишу музыку для себя и для продажи

megainformatic - Статьи на околомузыкальные темы - осень 2014 часть 1

megainformatic - рассказ - Чужие воспоминания - автор Синицин Андрей - 24.09.2014

megainformatic - Сайты живущие вне поисковых систем. Есть ли такие и как их найти ?

megainformatic - Game craft - проект разработки игровых и мультимедийных проектов

megainformatic - Game craft - моделируем scv

megainformatic - Game craft - моделируем scv - шаг 1 (часть 2)

megainformatic - Game craft - моделируем scv - шаг 2 (часть 3)

megainformatic - Game craft - Наложение текстуры на модель робота scv (часть 4)

megainformatic - Game craft - Прорисовка текстуры робота SCV шаг 5

megainformatic - Game craft - Экспорт модели из 3ds max в формат X

megainformatic - Game craft - отображение scv модели в формате x в d3d9-приложении

megainformatic - Game craft - управление игрой от Direct Input в d3d9 - приложении

megainformatic - Game craft - игровая камера в d3d9 - приложении

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 1

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 2

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 3

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 4

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 5

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 6

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 7

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 1

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 2

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 3

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 4

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 5

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 6

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 7

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 1

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 2

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 3

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 4

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 5

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 6

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 7

megainformatic - Веселый Буквоежка - онлайн комикс - страница 1

megainformatic - Веселый Буквоежка - онлайн комикс - страница 2

megainformatic - Веселый Буквоежка - онлайн комикс - страница 3

megainformatic - Веселый Буквоежка - онлайн комикс - страница 4

megainformatic - Веселый Буквоежка - онлайн комикс - страница 5

megainformatic - Веселый Буквоежка - онлайн комикс - страница 6

megainformatic - Веселый Буквоежка - онлайн комикс - страница 7

подробнее

Создание сайта бесплатно или под заказ

Для чего Вам нужнен собственный сайт ? Это ваш собственный выбор.

Для меня сайт - это средство самовыражения, а также возможность предложить свои программные продукты и услуги.

Итак, что я Вам хочу и могу предложить ?

Это полный спектр решений от бесплатных до сайтов за вполне умеренную цену и имеющих широкий набор возможностей.

Новичкам могу сразу посоветовать бесплатное решение - megainformatic cms free. Вы сразу же познакомитесь с основами создания небольшого, но уже полностью рабочего сайта или блога.

Для более опытных пользователей подойдут такие решения как megainformatic cms express files, megainformatic cms express.

Эти системы отличает от free наличие дополнительных модулей - карта сайта, поиск, а также то, что система megainformatic cms express имеет встроенный инсталлятор для быстрого развертывания сайта на вашем хостинге, а также использует базы данных My SQL.

Система megainformatic cms express files не использует My SQL-базы данных и не требуется инсталлятора, т. к. установка сайта заключается в простом копировании файлов на ваш хостинг.

Более подробно с каждой из этих систем Вы можете познакомиться кликнув на соответствующую иконку продукта из представленных ниже. Если у вас возник какой-то вопрос или Вы желаете приобрести один из указанных программных продуктов - оставьте сообщение через форму КОММЕНТАРИЯ внизу данной страницы. Я обязательно прочитаю и Вам отвечу.

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

megainformatic cms e-mailer - система включает в себя полнофункциональный сайт + систему для организации e-mail рассылок.

megainformatic cms e-shop - представляет собой несложный по функционалу интернет-магазин с приёмом оплаты в вебмани, яндекс.деньги, робокасса, единый кошелек, qiwi и некоторых других платежных систем.

megainformatic cms e-pro - представляет собой самостоятельный сайт + систему по автоматизированной обработке заказов

megainformatic cms express files + template selector - быстрый и простой по возможностям сайт + возможность смены шаблонов оформляющих внешний вид вашего сайта.

megainformatic cms express files + slider - простой сайт + слайдер в котором вы можете разместить анимированные баннеры или любые другие изображения или объекты.

megainformatic cms admin - сайт позволяет вам заложить основы социальной сети - включает админ-панель и некоторые другие необходимые инструменты.

megainformatic cms express - быстрый и эффективный сайт, использует My SQL базы данных, включает инсталлятор.

megainformatic cms seo - эффективный сайт + инструменты для его продвижения.

megainformatic cms stat kit - сайт и набор инструментов для отслеживания посещаемости вашего интернет-ресурса.

megainformatic cms multi gallery - сайт + инструмент для организации фотогалерей на сайте. При желании можно реализовать видео-галереи, а также галереи из mp3- или swf- файлов. Примеры Вы можете найти на сайте Мега Информатик.

megainformatic cms multi lang - сайт + возможности использования нескольких языков на вашем сайте - базовые это RU|EN|UA. При необходимости количество языков может быть расширено без ограничений.

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

megainformatic cms social - полнофункциональный сайт для создания социальной сети или системы личных кабинетов на вашем сайте. Система успешно применяется для создания фриланс-биржи, а также внедрена в несколько сайтов на других cms.

megainformatic cms groupon - сайт организации коллективных покупок. Включает полный спектр необходимых модулей, в том числе подключенные платежные системы, такие как ИнтерКасса.

megainformatic cms free
бесплатно
megainformatic cms e-mailer
1800 руб.
megainformatic cms e-shop
1000 руб.
megainformatic cms e-pro
500 руб.
Что нужно знать для создания сайта ?
бесплатно
template selector
150 руб.
megainformatic cms express files + модуль slider
200 руб.
megainformatic cms admin
250 руб.
Уроки php и создания сайтов
бесплатно
megainformatic cms express - Ваш Персональный Сайт на php + my sql
100 руб.
megainformatic cms seo
350 руб.
megainformatic cms stat kit
500 руб.
Модуль галерей для любой cms
1500 руб.
Поддержка сайтом нескольких языков
400 руб.
megainformatic cms rs
14000 руб.
megainformatic cms express
100 руб.
megainformatic cms social
12000 руб.
megainformatic cms groupon
14000 руб.


В завершение хочу отметить, что данные программные продукты воплощают весь накопленный мною опыт в области создания сайтов. Опыт мой включает разработку сайтов с использованием самых различных cms - joomla, drupal, wordpress, opencart, shop script le, prestashop, hostcms, bitrix, pg dating pro, webassyst, dle, modx, symphony framework, а также целый ряд менее известных cms и движков для социальных сетей.

Примеры некоторых моих работ представлены в портфолио - портфолио - список сайтов и других выполненных проектов

портфолио сайтов в виде галереи

Я постоянно работаю над совершенствованием своих продуктов, т. к. накапливаю новый опыт и новые знания. Еще с самого начала, когда я только начал осваивать создание сайтов, я пришел к выводу, что нет ничего лучше, чем создать собственную CMS, такую, которая будет полностью меня устраивать и реализует все поставленные задачи и замыслы. Именно такая CMS и была мною создана и успешно развивается. Буду рад, если Вы обратите внимание на один из представленных продуктов на базе megainformatic cms.

Если у Вас остались вопросы - задайте их через форму КОММЕНТАРИЯ.

Спасибо за ваше внимание к нашему проекту !

подробнее


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

DirectX9. Создаем основной класс обработки графики.

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

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

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

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

Здесь я хочу затронуть основные, интересные для меня, моменты. Рассказать вам с чего нужно начинать делать свое первое 3д или 2д приложение.


Существует 2 основные низкоуровневые библиотеки для вывода графики, над которыми пишутся движки, применяемые как в сфере разработки игр, так и прочих графических приложений не связанных с геймдевом. Это DirectX, на данный момент вышла 11 версия и OpenGl. В этой статье мы будем касаться 9 версии директа. Другие версии могут немного отличаться.

Результат наших действий будет такой, как на скриншоте.

И так, перейдем к делу... У нас получается такой интерфейс класса. Здесь все, что необходимо для работы с графическим устройством. По крайней мере, что нам интересно на данный момент. Часть методов я приведу, снабдив, необходимыми для понимания комментариями. Класс у нас в единственном экземпляре, что дает нам возможность объединить возможности в одном классе. В том числе хранение и работа с текстурами и шейдерами. Это будет тема для одной из следующих статей. Смотрим код.

class Graphics : public singleton<Graphics>
{
friend class singleton<Graphics>;
private:

int _width,_height; //размеры экрана(сделал для удобства)

//интерфейс directX
LPDIRECT3D9 m_pD3D;

//интерфейс устройства вывода
LPDIRECT3DDEVICE9 m_pd3dDevice;

// структкура с параметрами девайса
D3DPRESENT_PARAMETERS m_d3dpp;

typedef std::vector<CTexturePtr> vecTextures;
vecTextures m_vecTextures;

typedef std::vector<CShaderPtr> vecShaders;
vecShaders m_vecShaders;

protected:

//закрыто. нет смысла создавать все равно singleton
Graphics(void);
~Graphics(void);

public:

//возвращает устройство
LPDIRECT3DDEVICE9 GetDevice();

//инициализация устройства
bool Init(HWND hRenderWnd, int width, int height);

//возвращает ширину
int getWidth() const {return _width;}

//возвращает высоту
int getHeight() const {return _height;}

//удаление интерфейсов
void Cleanup();

//сброс
HRESULT Reset();

//начало рендера
bool StartRender(D3DCOLOR bgColor=0xff808080);
//устанавливает формат вершин
HRESULT SetFVF(DWORD FVF);

//устанавливает пиксельный и верш шейдер( в статье не будем рассматривать. рано еще)))
HRESULT SetPixelShader(CShaderPtr shader);
HRESULT SetVertexShader(CShaderPtr shader);

//установка характеристик рендера
HRESULT SetRenderState(D3DRENDERSTATETYPE State, DWORD Value);

//установка характеристик текстур(смешивание, альфа и тд)
HRESULT SetTextureStageState(DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value);

//установка способа отображения семплов( фильтрация)
HRESULT SetSamplerState(DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value);

//установка текстуры
HRESULT SetTexture(DWORD stage, CTexturePtr pTex);

//начало блока настроек рендера
HRESULT BeginStateBlock();

//конец блока настроек рендера
HRESULT EndStateBlock(LPDIRECT3DSTATEBLOCK9* block);

//отрисовка премитива
HRESULT DPUP( D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride);

//конец отрисовки

bool EndRender();

//загрузка текстур и шейдеров(про текстуры будет отдельная статья)
CTexturePtr LoadTexture(const std::wstring& szFileName);
CShaderPtr LoadShader( const std::string& strFileName, const std::string& strFuncName, const std::string& profile);
};

Сейчас нам интересны два интерфейса:

//интерфейс directX
LPDIRECT3D9 m_pD3D;

//интерфейс устройства вывода
LPDIRECT3DDEVICE9 m_pd3dDevice;

Для начала их необходимо обнулить.

Graphics::Graphics()
{
m_pD3D = NULL;
m_pd3dDevice = NULL;
ZeroMemory(&m_d3dpp, sizeof(D3DPRESENT_PARAMETERS)); // обнулим
}

А сейчас посмотрим, как инициализируется устройство.

bool Graphics::Init(HWND hRenderWnd, int width, int height)
{
// сначала проицициализируем сам DirectX 9
m_pD3D = Direct3DCreate9( D3D_SDK_VERSION );
if (m_pD3D==NULL)
return false;
//создаем структуру с режимами дисплея
D3DDISPLAYMODE d3ddm;
//пробуем определить параметры дисплея
if(FAILED(m_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm)))
{
//генерируем исключение
ExceptionBase err(GETDISPLAYMODEERROR,L"Не могу определить параметры дисплея");
throw err;
return false;
}

//характеристики заднего буфера---------------------------------------------------------
m_d3dpp.BackBufferWidth = width; // указываем ширину и
m_d3dpp.BackBufferHeight = height; // высоту области рендера
m_d3dpp.BackBufferCount = 1; // один внеэкранный буфер

m_d3dpp.BackBufferFormat = d3ddm.Format;

//-------------------------------------------------------------------------------------------------------
m_d3dpp.Windowed = TRUE; // рендер в окне, а не в полный экран

m_d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; // так лучше делать всегда
m_d3dpp.EnableAutoDepthStencil = TRUE; // нам нужен Z-буфер
m_d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8; // формат Z-буфера
m_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_ONE;

// и теперь создадим сам девайс
HRESULT hr = m_pD3D->CreateDevice( D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL, hRenderWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING,
&m_d3dpp, &m_pd3dDevice );
if (FAILED(hr))
return FALSE;
_height = height;
_width = width;
return TRUE;
}

Чтобы освободить интерфейс, необходимо вызвать Release. Посмотрим, как удаляются, созданные нами, объекты.

void Graphics::Cleanup()
{
// освобождаем текстуры
vecTextures::iterator itr = m_vecTextures.begin();
while(itr!=m_vecTextures.end())
{
(*itr)->Release();
delete *itr;
itr++;
}
m_vecTextures.clear();

// освобождаем шейдеры
vecShaders::iterator itr2 = m_vecShaders.begin();
while(itr2!=m_vecShaders.end())
{
(*itr2)->Release();
delete *itr2;
itr2++;
}
m_vecShaders.clear();

if (m_pd3dDevice)
{
m_pd3dDevice->Release();
m_pd3dDevice = NULL;
}
if (m_pD3D)
{
m_pD3D->Release();
m_pD3D = NULL;
}
}

Следующим шагом, посмотрим на методы, необходимые для отрисовки.

bool Graphics::StartRender(D3DCOLOR bgColor)
{
if (FAILED(m_pd3dDevice->BeginScene())) // начинаем рисовать
return false;

// очистка экрана
if (FAILED(m_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET|
D3DCLEAR_STENCIL| D3DCLEAR_ZBUFFER, bgColor, 1, 0)))
return false;

return true;
}

bool Graphics::EndRender()
{
m_pd3dDevice->EndScene(); // закончили рисовать

// копируем на экран
HRESULT hr = m_pd3dDevice->Present(NULL, NULL, NULL, NULL);
if (FAILED(hr)/*==D3DERR_DEVICELOST*/)
Reset();

if (FAILED(hr))
return false;

return true;
}

Установка формата вершин и отрисовка примитивов.

HRESULT Graphics::SetFVF( DWORD FVF )
{
return m_pd3dDevice->SetFVF(FVF);
}

HRESULT Graphics::DPUP( D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride )
{
return m_pd3dDevice->DrawPrimitiveUP(PrimitiveType, PrimitiveCount, pVertexStreamZeroData, VertexStreamZeroStride);
}

И напоследок, посмотрим на настроечные функции.

HRESULT Graphics::SetRenderState( D3DRENDERSTATETYPE State, DWORD Value )
{
return m_pd3dDevice->SetRenderState(State, Value);
}

HRESULT Graphics::SetTextureStageState(DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value )
{
return m_pd3dDevice->SetTextureStageState(Stage,Type,Value);
}

HRESULT Graphics::SetSamplerState( DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value )
{
return m_pd3dDevice->SetSamplerState(Sampler, Type, Value);
}

На этом пока все. Применение смотрите в следующей части.

 

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

подробнее


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

Регистрация. Часть 1. Создаем страничку регистрации на сайте.

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

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

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

Начинаю его с регистрации, так как это неотъемлемая часть любого сайта.

В этой статье опишу, как создавать простую страничку регистрации. Выглядеть она может как угодно. Например, так.

Регистрация на сайте

Обязательные поля помечены звездочкой. Код на картинке простой и генерируется PHP кодом.

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

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

Посмотрим, какие элементы управления содержит это окошко? Логин, адрес почтового ящика, ФИО, город - обычные текстовые редактируемые поля, которые на языке разметки выглядят следующим образом.

<TD width="72">Логин:<font color="#FF0000">*</font></TD>
<TD width="204">
<INPUT name=nickname size="20"></TD>

Адрес почтового ящика, ФИО указываем как строку таблицы

<TR>
<TD width="72"><span lang="en-us">E-Mail</span><font color="#FF0000">*</font></TD>
<TD width="204"><INPUT name=email size="20"></TD>
<TD width="98">ФИО<font color="#FF0000">*</font></TD>
<TD width="193"><INPUT name=fio size="37"></TD>
</TR>

Поле пароля, как вам известно, формируется с помощью такого html тега

<TD width="98">Пароль:<font color="#FF0000">*</font></TD>
<TD width="193"><INPUT type=password name=pass size="20"></TD>

Комбинированный список

Комбинированный список вопросов к пользователю это тег <select>

<TR>
<TD width="72">
Секретный вопрос<font color="#FF0000">*</font></p>
</TD>
<TD style="PADDING-BOTTOM: 10px" width="204">
<select size="1" name="question">
<option value="1">Любимое время года</option>
<option value="2">Любимый напиток</option>
<option value="3">Кличка домашнего животного</option>
</select></i></TD>
<TD style="PADDING-BOTTOM: 10px" width="98">Секретный ответ<font color="#FF0000">*</font></TD>
<TD style="PADDING-BOTTOM: 10px" width="193">
<INPUT name=answer size="37"></TD>
</TR>

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

Радио кнопки, используемые для указания пола посетителя, формирует следующий код

<TR>
<TD width="72">
Ваш пол:<font color="#FF0000">*</font><BR>
&nbsp;</TD>
<TD style="PADDING-BOTTOM: 10px" width="307" colspan="2">
<INPUT TYPE="radio" NAME="gender" value="Мужской" style="cursor:hand" ID=A1 checked><LABEL FOR=A1> Мужской </LABEL>
<INPUT TYPE="radio" NAME="gender" value="Женский" style="cursor:hand" ID=A2><LABEL FOR=A2> Женский</LABEL></TD>
<TD style="PADDING-BOTTOM: 10px" width="193">&nbsp;</TD>
</TR>

Число, год, месяц, комбобокс

Число, год, месяц рождения - обычные комбинированные списки, например

<TR>
<TD width="72">
Дата рождения:<font color="#FF0000">*</font></TD>
<TD style="PADDING-BOTTOM: 10px" width="495" colspan="3">Число:&nbsp;

<select size="1" name="day">
<option value="1">01</option>
<option value="2">02</option>

...

<option value="31">31</option>
</select>

<select size="1" name="month">
<option value="01">январь</option>
<option value="02">февраль</option>

...

<option value="11">ноябрь</option>
<option value="12">декабрь</option>
</select>&nbsp; Год: <select size="1" name="year">

<option value="1960">1960</option>
<option value="1961">1961</option>

...

<option value="1999">1999</option>
<option value="2000">2000</option>

<option value="2001">2001</option>
<option value="2002">2002</option>

</select></TD>
</TR>

Чек бокс, для подтверждения прочтения и согласия с правилами ресурса.

<TR>
<TD width="567" colspan="4">
<br>
<INPUT TYPE="checkbox" ID=A4 NAME="law" style="cursor:hand">
<span lang="ru">Я ознакомился с <a href="law.html">правилами</a> игры </span></TD>
</TR>

Сама кнопка регистрации - обычная кнопка описывается таким образом

<TD width="72">
<INPUT class=SubmitButton type=button value=Регистрация name=reg onClick="feedbackSubmit()"></TD>
<TD style="PADDING-BOTTOM: 10px" width="204">&nbsp;</TD>
<TD style="PADDING-BOTTOM: 10px" width="98">&nbsp;</TD>
<TD style="PADDING-BOTTOM: 10px" width="193">&nbsp;</TD>
</TR>

Когда данные введены их необходимо проверить. Существует два варианта такой проверки:

1) на стороне клиента

2) на стороне сервера

На стороне клиента проверяется средствами Java script. На стороне сервера - язык PHP.

Для формирования капчи будем использовать такой код

<TR>
<TD width="107">
</TD>
<TD width="462" colspan="3">
<INPUT TYPE="text" NAME="digits" size=10 maxlength=40>
Введите код с картинки <font color="#FF0000">*</font>

<?php
$code = ''.mt_rand(1000,9999);
$md5code = md5($code);
echo "<img src=code.php?code=$code><p>";
?>
<input type="hidden" name="check" class=inup size="20" value="<?php echo $md5code ?>">
</TD>
</TR>

 

Наш код формируется генератором случайных чисел. Шифруется по алгоритму md5. У данной функции нет расшифровки, потому проверка осуществляется посредством сравнивания 2-х зашифрованных слов. Передается это поле в обработчик, как скрытое.

Напоследок, опишем как будем проверять информацию на стороне клиента.

<script>
function feedbackSubmit(){
var cUserMail = document.regform.email.value;
if (document.regform.nickname.value=="") {
alert("Заполните ник персонажа!");
document.regform.nickname.focus();
return false;
}
if (document.regform.pass.value=="") {
alert("Поле пароля не должно оставаться пустыми!");
document.regform.pass.focus();
return false;
}

if ( (cUserMail.indexOf("@") == -1) || (cUserMail.indexOf(".") == -1) ) {
alert("Неправильно заполнено поле e-mail!");
document.regform.email.focus();
return false;
}

if (document.regform.fio.value=="") {
alert("Пожалуйста укажите ФИО!");
document.regform.fio.focus();
return false;
}

if (document.regform.law.checked==false)
{
alert("Вам нужно ознакомиться с правилами клуба!");
return false;
}

document.regform.submit();

}

</script>

Что здесь интересно? alert("Вам нужно ознакомиться с правилами клуба!"); выводит сообщение с текстом, указанным в скобках.

document.regform.pass.focus() подсвечивает то поле, где введена некорректная информация.

var cUserMail = document.regform.email.value;

Возвращает значение введенного поля. В данном случае, поля текстовые и мы проверяем, заполнены ли они.

Поле почтового ящика проверяем на корректность посредством поиска в нем символа @ и точек отделяемых домен первого и второго уровней.

Если все замечательно вызываем

document.regform.submit();

И переходим в обработчик. Как раз об этом в сдедующей моей статье.

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

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

подробнее

Убираем лимит на размер импортируемого файла в PhpMyAdmin

При импорте базы в PhpMyAdmin максимальный размер загружаемого файла по умолчанию равен 2М.

Чтобы изменить это значение нужно исправить upload_max_filesize в файле php.ini.

Однако, этого может быть недостаточно.

Если нужное значение больше заданного в переменной post_max_size в том же файле, если нужно можно поменять и его. Но нужно учитывать, что оба этих значения должны быть меньше указанного в memory_limit.

И еще: если файл велик, то возможно, для его обработки понадобится много времени, ограничение в переменной max_execution_time может дать отрицательный эффект.

Ну и конечно же, нужно перезапустить apache.

по материалам сайта - http://www.pmdesign.ru/blog/695-ubiraem-limit-na-razmer-importiruemogo-fajla-v-phpmyadmin

     
     
  уроки Photoshop - чудеса  
     
  Уроки Photoshop - Чудеса  
     
  Коллаж от нуля - страница 3  
     
  [содержание] [страница 2] [страница 3] [страница 4] [далее]  
     
  Мы рассматриваем как создать коллаж - сначала рисуем пейзаж взяв в качестве примера фотографию  
     
 

итоговый результат того, что у Вас может получиться -

создаем удаленный лес на горизонте

 
     
  Нужно задать радиус размытия порядка 50 пикселей и нажать <Да>, а вообще всё будет зависеть от Вашего вкуса и опыта. Это придаст больше реалистичности облаку.  
     
  Далее при помощи Редактирование > Трансформирование > Масштабирование уменьшаем облако до нужных размеров  
     
  Далее при помощи Редактирование > Трансформирование > Масштабирование уменьшаем облако до нужных размеров  
     
  Растягивая мышью за управляющие маркеры  
     
  Растягивая мышью за управляющие маркеры  
     
  Затем можно дублировать слои и перемещать их в новое место. Но так мы получим абсолютно одинаковые облака  
     
  Затем можно дублировать слои и перемещать их в новое место. Но так мы получим абсолютно одинаковые облака  
     
  Поэтому нужно сделать для них разный масштаб, можно также применить другие трансформации, можно изменять форму облаков используя инструмент Клон-Штамп  
     
  После внесения этих дополнений можно склеить все слои с облаками в один слой  
     
  Поэтому нужно сделать для них разный масштаб, можно также применить другие трансформации, можно изменять форму облаков используя инструмент Клон-Штамп  
     
  Инструмент Клон-Штамп работает по следующему принципу - Выбираем инструмент Клон-Штамп, нажимаем и удерживаем клавишу [Alt] и щелкаем левую кнопку мыши в том месте изображения, куда наведен указатель Клон-Штампа - для взятия образца  
     
  Выбираем инструмент Клон-Штамп, нажимаем и удерживаем клавишу [Alt] и щелкаем левую кнопку мыши в том месте изображения, куда наведен указатель Клон-Штампа - для взятия образца  
     
  далее отпускаем [Alt] и щелкаем указывая мышью там, где хотим поставить взятые образцы изображения -  
     
  далее отпускаем [Alt] и щелкаем указывая мышью там, где хотим поставить взятые образцы изображения  
     
  Таким образом, получается, что Клон - Штамп копирует куски изображения, позволяя вставлять их в новое место. Регулируя размер Кисти Клон-Штампа, жесткость её краев, Непрозрачность, Опцию Выравнивание и другие доступные параметры можно не просто делать копии кусков изображения, но и видоизменять их, менять "на-лету" форму изображения. Клон - Штамп широко применяется при ретуши старых фотографий для заделки повреждений - трещин, царапин, грязи и прочего. Т. е. это не просто инструмент копирования, но и достаточно мощный инструмент видоизменения - надо только набраться опыта в работе в с ним. Это мы и будем делать на протяжении всех наших уроков.  
     
  3) на отдельном слое создаем изображение дороги - для этого Вам понадобится скрыть все слои, кроме нового, который нужно создать, назвав Дорога или Road, для Кисти лучше выбрать Пурпурный оттенок, размер кисти задать примерно 2-4 пикселя, жесткость краев 70%, непрозрачность 45%  
     
  3) на отдельном слое создаем изображение дороги - для этого Вам понадобится скрыть все слои, кроме нового, который нужно создать, назвав Дорога или Road, для Кисти лучше выбрать Пурпурный оттенок, размер кисти задать примерно 2-4 пикселя, жесткость краев 70%, непрозрачность 45%  
     
  Далее ориентируясь на изображение дороги на фото, создаем контуры дороги -  
     
  Далее ориентируясь на изображение дороги на фото, создаем контуры дороги -  
     
  Я специально показал на рисунке выше дорогу на белом фоне, у Вас в качестве фона на нижележащем слое должна быть фотография, таким образом Вам всего лишь нужно будет обвести дорогу по контуру кистью  
     
  Далее на отдельном, расположенном под контуром дороги слое выполняем закраску дороги базовым цветом, можно слегка варьировать оттенки, что придаст больше живости и реалистичности  
     
   
     
  Контуры дороги теперь можно сделать черного цвета - см. рисунок Выше. Обратите внимание, что делать это нужно на слое Road, а не на слое, где у Вас заливка дороги, иначе черной станет не контур, а вся дорога !  
     
  Чтобы контуры дороги не слишком выделялись на фоне заливки, а плавно переходили в него их можно сделать полупрозрачными - изменив непрозрачность для слоя с контурами дороги -  
     
  Чтобы контуры дороги не слишком выделялись на фоне заливки, а плавно переходили в него их можно сделать полупрозрачными - изменив непрозрачность для слоя с контурами дороги  
     
  мазки, которыми делалась закраска заливки дороги можно перемешать между собой, используя инструмент Размытие - это сделает плавными переходы между отдельными контрастирующими по цвету областями, этого же самого эффекта можно добиться выделив всю заливку дороги инструментом Волшебная палочка, с последующим применением Размытия по Гауссу.  
     
  мазки, которыми делалась закраска заливки дороги можно перемешать между собой, используя инструмент Размытие - это сделает плавными переходы между отдельными контрастирующими по цвету областями, этого же самого эффекта можно добиться выделив всю заливку дороги инструментом Волшебная палочка, с последующим применением Размытия по Гауссу.  
     
  Далее используя Кисть и оттенки зеленого и желтого рисуем траву, кусты. Детально можно нарисовать лишь по одному кусту, а затем размножить кусты используя Клон-Штамп  
     
  используя Кисть и оттенки зеленого и желтого рисуем траву, кусты  
     
  В итоге этих работ у Вас должно получиться что-то подобное -  
     
  добавляем еще больше растительности  
     
  Отдельные элементы удобнее располагать на отдельных слоях, я надеюсь это Вы уже прочно усвоили  
     
  Аналогично создаются небольшие деревца вдалеке. Для большего эффекта к ним можно применить небольшую степень Размытия по Гауссу  
     
  рисуем небольшие деревца находящиеся вдалеке  
     
  И наконец лес вдалеке, на линии горизонта можно полностью нарисовать Кистью, а затем применить к изображению более сильное Размытие по Гауссу  
     
  создаем удаленный лес на горизонте  
     
  Пейзаж готов !  
     
  [содержание] [страница 2] [страница 3] [страница 4] [далее]  
     
megainformatic live chat
Начать беседу
X
 

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



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


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