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


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

megainformatic - для чего нужна карта сайта
Для чего нужна карта сайта ? Современный сайт - это достаточно сложная организационная структура. Поисковый робот - yandex, google или иной может быстрее проиндексировать сайт, если найдёт файл sitemap.xml Это и есть та самая карта сайта Файл sitemap.xml содержит ссылки на все страницы сайта, а также некоторую дополнительную информацию - по частоте обновлений эти
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic Создание игры на fle game engine - Simple game - страница 9 - Реализуем корректное попадание в ямы и около ям - определяем границы спрайтов ям и спрайта прыгаюшего шарика / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 10 - Проверка столкновений / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 11 - Игровой счёт, звуки, музыка / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game extended - страница 1 - Создание новой сцены (уровня, комнаты), добавление новых возможностей / Пример простой игры - расширенная версия

Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017

Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017

Советы копирайтеру - как не обмануть и не быть обманутым

Balls and Holes игра скачать + как создать игру на fle game engine

Balls and Holes игра скачать + как создать игру на fle game engine

Something: Unexplained 2 captive of desires

KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало

KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 17

megainformatic - Игродельня

megainformatic - Новости страница 542

megainformatic - С днём защитника отечества !

megainformatic fle game engine fle / Пример простой игры fle - Скроллинг больших локаций

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 18

megainformatic - Шарики и Ямки игра PC

megainformatic - Шарики и Ямки игра PC

megainformatic fle game engine fle / Изучаем основы c++ - переменные на примере реального игрового проекта Balls and Holes

megainformatic - Реферальная ссылка

megainformatic - Изменение постоянных свойств в зависимости от контекста

megainformatic - Костя Коробкин Компания Зергов онлайн комикс читать

megainformatic - Искатели приключений Зеленый Шарик

megainformatic - Без названия

megainformatic - Мульти анимация

Pencil, Paper and the Ball PC game

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

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

megainformatic - fle game engine - создание 3d игры - simple game 3d

Pencil, Paper and the Ball PC game

I Free lancer - tale, story Я фрилансер повесть, история

Шарики и Ямки игра, Эмулятор игры Ну Погоди, Balls and Holes, Веселый Буквоежка Комикс, Костя Коробкин Комикс, Нечто: Необъяснимое в плену желаний 2 начало, simple game, с новым годом

Процесс создания игры в картинках

Сравнение различных игровых движков. Плюсы и минусы

app combainer - комбайнер настольных и веб приложений

kerbal space program - Первые впечатления

Pencil Paper and the Ball PC Game review #91 - Как я придумываю историю

We all live in a yellow submarine !

PSI Siberian Conflict Reincarnation - Сибирский Конфликт Война Миров Реинкарнация

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

Ria PC game

Cradle / Колыбель PC game 2015 история неуспеха

ria pc game история

ria pc game - видео 105 - темная сторона

ria pc game - доска почета

ria pc game - Ваше персональное место в игре

ria pc game - megainformatic развитие проекта с 2006 года обзор 108

megainformatic страница 577

ria pc game - megainformatic обзор 109_1

ria pc game - megainformatic обзор 110_2

ria pc game - история создания проекта

Развитие сайта - временная капсула

Игра Мечты - ria pc game

megainformatic - минимизация css, js

подробнее

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


Доброго времени суток, Вам, читающим эти строки !!!

Как я и обещал в предыдущей статье - Быстрый подсчёт ключевых слов в статье

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

Как всё это работает Вы можете увидеть здесь - Онлайн-сервис подсчёта ключевых слов

На самом деле логика работы такого модуля достаточно проста и сводится к следующим основным шагам:

1.) Получить текст статьи из текстового файла

2.) Убрать из текста все символы кроме букв заменив их пробелами

3.) Разбить полученный текст на массив, собирая статистику по каждому слову.

Вот собственно и всё :))))

Ну а теперь код -

<?php

// 1.) Получить текст статьи из текстового файла

//имя файла статьи берем из значения параметра pf переданного по GET
$paper_file = substr($_GET['pf'], 0, 250);
if ( !$paper_file )
$paper_file = 'home.txt';

if ( file_exists($paper_file) )
{
$content = file($paper_file);
}

?>

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

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

Этот момент уже реализован в сервисе Онлайн-сервис подсчёта ключевых слов

Но не описан здесь.

Как реализовать выгрузку файла на сайт я уже описывал в статье - Выгрузка файла на сайт

Поэтому здесь я её касаться не буду.

<?php

// 2.) Убрать из текста все символы кроме букв заменив их пробелами

//заменяем спец. символы пробелами
function kg_replace_special_chars($line)
{
//определяем длину строки
$line_len = strlen($line);
//перебираем строку
for ( $i = 0; $i < $line_len; $i++ )
{
$symbol_code = ord($line[$i]);

//если символ - это буква -
if ( ($symbol_code > 63 && $symbol_code < 91) || ($symbol_code > 95 && $symbol_code < 122)
|| ($symbol_code > 190 && $symbol_code < 256) )
{
//ничего с ним не делаем
}
else {
//заменяем на пробел
$line[$i] = ' ';
}
}

return $line;
}

?>

Кстати, если вдруг Вам понадобится исследовать коды всех символов и спец символов из кодировки ASCII, то на всякий случай привожу небольшую функцию и для этих целей :)))

<?php

//выводим табличку кодов символов
function show_symbol_codes(&$view)
{
for ( $i = 0; $i < 256; $i++ )
{
$view .= '<span style="color: #0000ff;">' . chr($i) . '</span> --- '.$i.' ';
}
}
?>

И собственно последний шаг -

<?php

// 3.) Разбить полученный текст на массив, собирая статистику по каждому слову

$view = '';

//перебираем все строки статьи
$l = 0;
$words_statistic = array(); //найденные слова
$words_statistic_count = array(); //статистика найденных слов
foreach ( $content as $line )
{
//заменяем знаки препинания и прочие спец. символы пробелами
$line = kg_replace_special_chars($line);
//$view .= $line;

//разбиваем строку на слова
$words = explode(" ", $line);

//считаем количество слов
$words_count = count($words);
for ( $i = 0; $i < $words_count; $i++ )
{
//если слово уже есть в массиве - увеличиваем его статистику
if ( in_array($words[$i], $words_statistic) )
{
$words_statistic_count[$words[$i]] = $words_statistic_count[$words[$i]] + 1;
}
else {
//если слова еще нет в массиве слов - добавляем его туда
$words_statistic[] = $words[$i];
$words_statistic_count[] = $words[$i];
$words_statistic_count[$words[$i]] = 1;
}
}


$l++;

}


//show_symbol_codes(&$view);


//показать слова, у которых статистика больше заданного значения
$value = intval($_GET['v']);
if ( !$value )
$value = 1;

$count_words_statistic = count($words_statistic_count);
for ( $i = 0; $i < $count_words_statistic; $i++ )
{
if ( $words_statistic[$i] != '' )
{
if ( $words_statistic_count[$words_statistic[$i]] > $value )
$view .= $words_statistic[$i] . ' ' . $words_statistic_count[$words_statistic[$i]] . '|';
}
}
?>

Работать описанный код будет аналогично тому, как он работает тут - kg

И самое главное - после всех манипуляций не забудьте вывести значение переменной $view на страницу в нужном месте.

т. е. примерно так -

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<title>Keywords Generator</title>
</head>

<body>
<?php
echo $view;

?>
</body>
</html>

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

Желаю Вам удачи !!! :))))

Ну а если вдруг что-то не получается или у Вас нехватает опыта, но есть маленький (или выше) :))) бюджет - обращайтесь

подробнее

Проект социальной сети

megainformatic cms social

Реализованные на нём решения -

http://megainformatic.ru/webprojects/megainformatic_cms_social/

Описание возможностей, функционал и документация

Сравнение задач поставленных в ТЗ и фактически решенных

задача по ТЗ решение по факту
     
1. Личный кабинет для 4-х категорий:

- Агенты

- Модераторы

- Администраторы

- Общий кабинет

Система личных кабинетов с ролями:

- СУПЕРАДМИНИСТРАТОР

- МОДЕРАТОР

- АГЕНТ

- Зарегистрированный

2. По сути, Личный кабинет одинаковый для всех, только с разными правами. Права устанавливает Администратор [ставит/снимает галочки] для других Реализовано в ЛК СУПЕРАДМИН пункт меню УПРАВЛЕНИЕ > НАСТРОЙКИ
3. Предназначение скрипта (сервиса) – учитывать посетителей на сайте пришедших по реф.ссылкам от Агентов. Реализована система реферальных ссылок - каждый пользователь имеет личную реферальную ссылку и набор личных страниц, связанных с ней.
4. А также дальнейшую работу Агентов с клиентами. Работа ведется в форме ответов на вопросы, которые были заданы через фомру вопроса на личной странице КОНТАКТОВ Агента. Страница также содержит редактируемый в ЛИЧНОМ КАБИНЕТЕ контент. Вопросы заданные со страницы попадают в папку ВХОДЯЩИХ сообщений ЛИЧНОГО КАБИНЕТА Агента.
5. Агент работает за проценты. Чтобы у него был интерес искать клиентов в интернете, нужно «привязать» посетителей к Агенту. Агент распространяет реф.ссылку в соц.сетях, система учитывает посетителей по реф.ссылке и «прикрепляет» их (клиентов) за Агентом. Ведется полный лог посещаемости всех страниц, лог посещаемости кандидатов на регистрацию и ждущих регистрацию. В логе четко отражены все ссылки, поэтому можно определить какие страницы каких агентов наиболее посещаемы.
6. Далее клиент знакомится с контентом сайта, переходит в «Контакты» и ему показывается контактная страница (приветственная страница) Агента, чья реф.ссылка. На этой странице есть Форма обратной связи. Клиент заполняет Форму (задает вопрос) и это сообщение уходит в личный кабинет Агента. Реализовано в форме ЛИЧНЫХ СТРАНИЦ пользователей сайта. Страницы могут редактироваться пользователем в его личном кабинете и содержат редактируемый и нередактируемый контент.
7. Личный кабинет Администратора и Общий кабинет, регистрируется в админке системы управления джумлы. Все остальные «кабинеты» регистрируются через сайт, а именно, Администратор (в своем кабинете) выбирает пользователя, кликает на кнопку «Ок», получает ссылку, и отправляет пользователю на почту Реализовано в форме визита по ссылке ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ с последующей регистрацией ЛИЧНОГО КАБИНЕТА СУПЕРАДМИНОМ или ЗАМЕНЯЮЩИМ ЕГО ЛИЦОМ.
8. Нужно сделать скрипт для сайта (одним или нескольким файлами), под системой управления Джумла. [этот скрипт должен устанавливаться через админку (администратором) стандартным методом на любой сайт джумлы. Скрипт получился таким сложным, что написание и интеграция заняли более 3 месяцев или в человеко-часах порядка - 600 часов. Скрипт устанавливается как самостоятельная система, но работает в связке с сайтом, в скрипт которого она интегрируется. Установка занимает всего 7 элементарных шагов.
9. Реф.ссылка (хвостик) подставляется номер ID. Пример реф. ссылки - http://megainformatic.ru/webprojects/megainformatic_cms_social/?rid=4
10. Вход в личный кабинет только зарегистрированным пользователям. Свободной регистрации нет. Система ссылок ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ и отслеживания этапов ВОПРОС, Посещение ХОЧУ Зарегистрироваться, Регистрация
11. Окно «Вход» (логин + пароль) располагается на первой странице сайта, с левой строны Реализовано в форме ВХОД НА САЙТ в левой колонке сайта
12. Функции кабинета и права доступа реализовано: профиль, список рефералов (у СУПЕРАДМИНА), реферальная ссылка, личные страницы, статистика посещений (только общая без фильтрации), полнофункциональная система личных сообщений, вставка контента СУПЕРАДМИНОМ в страницы пользователей
13. Создание контента на страничках в личном кабинете, редактирование, осуществляется через текстовый редактор, который установлен в Джумле для редактирования всех страниц сайта, т.е. используется один и тот же редактор. Используется встроенный текстовый редактор контента, аналогичный редактору Joomla.
14. Регистрация Агентов закрытая. Желающий сотрудничать с компанией должен написать запрос через «Форму обратной связи» на странице «Контакты» и ему пришлют реферальную ссылку. Регистрация Агентов только по реферальной ссылке. Об этом уже упоминалось в пункте 10.
15. ОПРЕДЕЛЯЕМ ПОСЕТИТЕЛЕЙ ПО IP-АДРЕСУ, МАК АДРЕСУ, КУКИСАМ Полная статистика посещаемости всех страниц сайта.
16. Каждый посетитель, зашедший на сайт имеет свой IP-адрес и мак адрес. Скрипт его распознает, а так же запоминает куки. Если посетитель регистрируется на сайте, то он включается в список того Агента, по чьей ссылке он зашел на сайт. Полная статистика посещаемости всех страниц сайта. Учёт задавших вопросы, посетивших ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ и зарегистрированных.
17. Если посетитель кликает на страничку "Контакты", то открывается общая страничка контактов, а поверх неё заставка полупрозрачная - Окно "Ваш персональный менеджер". Личная страница Контакты. Без прозрачного окна - для Персональный Менеджер зарезервирована отдельная личная страница.
18. "Ваш персональный менеджер" - это страничка с контентом, который наполняет Агент. Страница Персональный менеджер доступна для редактирования в личном кабинете Агента.
19. В этом окне предлагается нажать на кнопку «Получить персональное предложение». При нажатии на КНОПКУ посетитель переходит на Приветственную страницу. не реализовано
20. Приветственная (продающая) страница, с приветственным текстом и контактными данными того человека, по чьей ссылке он зашел на сайт, там же форма обратной связи (сообщение/вопрос уходит тому, по чьей ссылке он зарегистрировался). система личных страниц, система личных сообщений, система реферальных ссылок, редактор контента личных страниц
21. Цель приветственной странички - чтобы пользователь - позвонил, или написал через Форму обратной связи. эта цель решается на странице КОНТАКТЫ указанного пользователя и содержит форму обратной связи и дополнительный контент, который можно добавить через редактор контента в личном кабинете
22. Если чел. пришел не по реф.ссылке (пришел с Яндекса), то Окно "Ваш персональный менеджер" не открывается, а открывается страница "Контакты" компании. Открываются стандартные страницы сайта.
23. Администратор может выставлять время хранения истории посещений сайта пользователями, т.е. через заданное время очищается история посещения (удаляется IP-адрес, мак-адрес, кукисы). не реализовано
24. По истечении указанного Администратором времени история посещений очищается, т.е. след удаляется, и этот мак-адрес (IP-адрес) «чистый» в дальнейшем может «прикрепиться» к другому Агенту. нереализуемо - IP адрес может меняться, поэтому закрепление никогда не будет работать.
25. ОБРАТНАЯ СВЯЗЬ С КЛИЕНТОМ реализовано в форме системы личных сообщений.
26. Посетитель зашел на сайт, скрипт его распознал, по чьей реф.ссылке он зашел. реализовано в форме учета посещаемости.
27. Посетитель задает вопрос через "Форму обратной связи" и вопрос улетает к человеку, по чьей реф.ссылке он зашел и задал вопрос. реализовано в форме системы личных сообщений.
28. В Личном кабинете появляется новая запись в списке контактов (выделена жирным)(не прочитанное письмо) Хозяин кабинета читает письмо, пишет ответ, и строчка в списке становится обычная (не жирная). Если письмо прочитал, но ответ не написал, то строчка остается жирной. реализовано в форме системы личных сообщений.
29. В течение 24 часов жирная строчка "ждет", чтобы на неё ответили, и через 24 часа отправляется напоминалка хозяину кабинета, что "надо ответить на вопрос". реализовано в форме НАСТРОЙКИ в личном кабинете СУПЕРАДМИНА. Система на базе модуля cron а также задач для отслеживания отвеченных сообщений по заданному времени.
30. В административной части сайта можно задавать произвольно время "напоминания", и время "ожидания" для этой строчки. Далее, жирная строчка ещё ждет 12 часов, и если ответа нет, то эта строчка исчезает из кабинета хозяина и переходит в Общий кабинет. Любой желающий может прихватизировать эту жирную строчку. и тот, кто ответит на заданный вопрос, в его личный кабинет и перейдет эта строчка (строчка нашла нового хозяина). см. пункт 29
31. Если посетитель зашел на сайт случайно (с яндекса, закладок и т.д.), при этом он задал вопрос, то его вопрос (сообщение) будет в списке Общего кабинета. нереализуемо, по причине неоднозначности. Если посетитель !!!ДАЖЕ СЛУЧАЙНО!!! Зайдёт по чье-то реферальной ссылке мы не можем определить действительно ли он зашел к нам случайно. Поэтому соответственно нельзя однозначно решить куда отправить сообщение - В ОБЩИЙ КАБИНЕТ или в кабинет указанного АГЕНТА. РЕШЕНО ТАКИМ ОБРАЗОМ: если пользователь зашел по ссылке которая ведет на страницу КОНТАКТОВ и задал вопрос, то вопрос уходит владельцу данной страницы. Для типовых (не личных) страниц сайта таким пользователем может быть СУПЕРАДМИН. Поэтому сообщения заданные с формы вопроса, размещенной на типовой странице сайта может быть однозначно направлено СУПЕРАДМИНУ или куда-либо еще, например в ОБЩИЙ КАБИНЕТ.
32. Общий кабинет: это как доска объявлений, любой Агент может туда зайти, ответить на вопрос, и ответ клиенту уже будет считаться от имени этого Агента. реализовано в форме сообщений ОБЩИЕ в разделе ИСТОРИЯ > Сообщения ЛИЧНОГО КАБИНЕТА.
33. У Агентов ведется история сообщений (переписки) (как в почтовых программах) с отображением даты и времени. реализовано в форме системы личных сообщений
34. В поле «Для заметок» пользователи могут оставлять заметки, комментарии. Если комментарии есть, то светится ярко с карандашом, если комментариев нет - картинка, серенька, без изображения карандаша с зеленым овалом - система личных сообщений
35. «Для заметок» создается одно общее окно для всех сообщений одного автора. Сообщения разные, а поле «для заметок» одно, оно прикрепляется к автору, а не к сообщениям. система личных сообщений
36. Модератор и администратор могу просматривать сообщения Агентов, и сортировать их: а) по имени Агента; б) по времени и дате их регистрации; в) по количеству сообщений в переписке с каждым клиентом. не реализовано
     
     






ЗАДАЧИ НЕЯВНО ОПИСАННЫЕ В ТЗ либо возникшие в ходе решения поставленных в ТЗ задач

задача решение
37. организация хранения большого количества личных папок и файлов пользователей реализовано хранилище личных папок с автоматической иерархией и отслеживанием предельного количества файлов (папок) на папку.
38. выгрузка файла фото пользователя в профиль реализовано
39. блокировка попыток взлома аккаунтов и кражи персональных данных пользователей реализовано
40. модуль cron для выполнения задачи отслеживания отвеченных сообщений и переноса их в папку ОБЩЕГО КАБИНЕТА реализовано
41. реализация выполнения задачи отслеживания отвеченных сообщений и их фактического переноса в папку ОБЩЕГО КАБИНЕТА реализовано
42. модуль tpl_tags для подстановки блоков контента в личные страницы пользователей реализовано
43. модуль user_page для вывода личных страниц пользователей реализовано
44. модуль page для вывода типовых страниц сайта реализовано
45. стандартный функциональный контент для личных страниц пользователей реализовано
46. типовые страницы сайта реализовано
47. модуль и форма входа с сайта в личный кабинет пользователя реализовано
48. механизм регистрации по ссылкам ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ присылаемым после отправки вопроса через форму контактов реализовано
49. учет кандидатов на регистрацию - задавших вопрос, но не посетивших ссылку ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ реализовано
50. учёт пользователей посетивших ссылку ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ в виде Ждущие регистрацию реализовано
51. модуль отправки личных сообщений и уведомлений на е-майлы пользователей и агентов реализовано
52. модуль контактов для перенаправления вопросов в папку личных сообщений агента реализовано
53. модули и обработчик страницы ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ и ссылок перехода на неё реализовано
54. подстыковка модулей cron и учета посещаемости к вызовам с сайта реализовано
55. интеграция системы в joomla для совместной работы с joomla - сайтом реализовано
56. разработка и описание механизма установки системы на сайт joomla для совместной работы с joomla - сайтом реализовано
57. набор модулей для административной части сайта обеспечивающих функциональные узлы механизмов личных кабинетов, а также целый ряд прочих задач которые не приведены здесь по причинам недостатка времени на их цельное описание ... реализовано
подробнее

     
  Создание своих Тем для WordPress  
     
  Введение  
     
 

Начнём с того, что, как мне кажется, будет вам интересно узнать из области сайтостроения.

Итак, даже если у Вас есть собственная CMS (самописная, как говорят), то всегда полезно знать, как устроены профессиональные CMS. Их великое множество - Joomla, Drupal, ModX, Dle, WordPress и т. д.

Стоит ли осваивать их все или достаточно выбрать какую то одну и прорабатывать её ?

Если Вы новичок в сайтостроении, каким был совсем недавно и я, то лучше для начала остановить свой выбор на чём-то одном, и заняться его изучением.

На данном этапе я хотел бы познакомиться с созданием простого шаблона для CMS WordPress. Собственно этим мы сейчас и займёмся.

 
     
 

Для начала конечно вам необходимо установить denver и wordpress.

Ну а далее - вы займётесь собственно изучением данного урока.

 
     
 

Предположим, что Вы установили wordpress локально на свой компьютер в следующую папку -

C:\WebServers\home\localhost\www\wordpress_ru

 
     
  Если заглянуть в папку установленного wordpress, то там вы найдёте такой путь - wp-content\themes  
     
  Это и есть папка, внутри которой Вы можете размещать собственные шаблоны сайтов для WordPress. В WordPress они именуются Темами.  
     
 

Так что же нужно для того, чтобы создать собственную тему для WordPress ?

А нужно нам следующее:

 
     
  внутри папки themes создаем папку, например, mytheme  
     
 

Открываем эту созданную папку и внутри неё создаем такие файлы -

index.php

header.php

sidebar.php

footer.php

style.css

loop.php

functions.php

 
     
  Кроме того создайте здесь папку images, в которую будете помещать изображения, необходимые для оформления внешнего вида вашей темы.  
     
  Далее, вооружившись каким либо редактором, например, DreamWeaver или даже обычным Блокнотом добавляем в наши файлы следующий код  
     
  В файл index.php  
     
 

<?php
/**
* Главный файл шаблона темы
*
* Это изменяемый файл шаблона для темы WordPress
* и один из 2 обязательных файлов для темы (второй - это style.css).

* Используется для отображения страницы, в том случае, когда
* неопределены другие дополнительные варианты
* т. е., он совмещает вывод главной страницы, когда нет файла home.php.
* Более подробно: http://codex.wordpress.org/Template_Hierarchy
*
* @package WordPress
* @subpackage MyTheme
* @since MyTheme 1.0
*/

get_header(); ?>

<div id="container">
<div id="content" role="main">

<?php
/* Запуск цикла вывода постов блога.
* Если нужно переопределить данную возможность в дочерней теме тогда

* включите в папку новой темы файл loop-index.php для использования особенностей, описанных в нём.
*/

get_template_part( 'loop', 'index' );
?>
</div><!-- #content -->
</div><!-- #container -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

 
     
  В файл style.css мы добавим такой код  
     
  style.css  
     
  Файлы loop.php и functions.php также можете взять в готовом виде -  
     
  loop.php  
     
  functions.php  
     
  В файл header.php  
     
 

<?php
/**
* Заголовок (Header) для нашей темы.
*
* Отображает содержимое секции <head> и всё до блока <div id="main">
*
* @package WordPress
* @subpackage MyTheme
* @since MyTheme 1.0
*/

?><!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>" />
<title><?php
/*
* Выводим тег <title> в зависимости от содержимого страницы.
*/

global $page, $paged;

wp_title( '|', true, 'right' );

// Имя нашего сайта (блога).
bloginfo( 'name' );

// Добавляем описание для домашней/начальной страницы.
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) )
echo " | $site_description";

// Если нужно - добавляем номер страницы:
if ( $paged >= 2 || $page >= 2 )
echo ' | ' . sprintf( __( 'Page %s', 'twentyten' ), max( $paged, $page ) );

?></title>
<link rel="profile" href="http://gmpg.org/xfn/11" />
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
<?php
/* Мы добавим немного JavaScript на страницы с комментариями для
* формирования поддержки сайтов с подпроцессными (threaded) комментариями (когда они используются).
*/

if ( is_singular() && get_option( 'thread_comments' ) )
wp_enqueue_script( 'comment-reply' );

/* Всегда ставим вызов wp_head() до закрытия тега </head>
* вашей темы, либо вы нарушите подключаемость многих плагинов (plugins), которые обычно используют этот обработчик (hook)
* для добавления элементов в <head> таких как
* стили (styles), скрипты (scripts), и мета теги (meta tags).
*/

wp_head();
?>
</head>

<body <?php body_class(); ?>>
<div id="wrapper" class="hfeed">
<div id="header">
<div id="masthead">
<div id="branding" role="banner">
<?php $heading_tag = ( is_home() || is_front_page() ) ? 'h1' : 'div'; ?>
<<?php echo $heading_tag; ?> id="site-title">
<span>
<a href="<?php echo home_url( '/' ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a>
</span>
</<?php echo $heading_tag; ?>>
<div id="site-description"><?php bloginfo( 'description' ); ?></div>

<?php
// Проверка условия, что это пост или страница, имеет сокращенное представление (thumbnail), либо располагается целиком
if ( is_singular() &&
has_post_thumbnail( $post->ID ) &&
(
/* $src, $width, $height */ $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'post-thumbnail' ) ) &&
$image[1] >= HEADER_IMAGE_WIDTH ) :
//Изображение в заголовке страницы
echo get_the_post_thumbnail( $post->ID, 'post-thumbnail' );
else : ?>
<img src="<?php header_image(); ?>" width="<?php echo HEADER_IMAGE_WIDTH; ?>" height="<?php echo HEADER_IMAGE_HEIGHT; ?>" alt="" />
<?php endif; ?>
</div><!-- #branding -->

<div id="access" role="navigation">
<?php
/* Разрешить экранным ридерам (screen readers)/ текстовым браузерам (text browsers) пропустить отображение меню навигации и получить все равно корректный вариант отображения*/ ?>
<div class="skip-link screen-reader-text"><a href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentyten' ); ?>"><?php _e( 'Skip to content', 'twentyten' ); ?></a></div>
<?php
/* Наше навигационное меню. Если оно не заполнено, wp_nav_menu переключается к состоянию wp_page_menu. К меню применяется основная позиция из возможных. Если ничего не присвоено, используется меню с наименьшим ID*/ ?>
<?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?>
</div><!-- #access -->
</div><!-- #masthead -->
</div><!-- #header -->

<div id="main">

 
     
  В файл sidebar.php  
     
 

<?php
/**
* Сайдбар (Sidebar) включает области для основных и вторичных виджетов (widget).
*
* @package WordPress
* @subpackage MyTheme
* @since MyTheme 1.0
*/

?>

<div id="primary" class="widget-area" role="complementary">
<ul class="xoxo">

<?php
/* Когда мы вызываем функцию dynamic_sidebar(), она будет разделять
* виджеты на области для этих виджетов. Если вместо этого функция возвратит false,
* тогда sidebar просто не существует, поэтому будет отображен
* сайдбар с содержимым по умолчанию.
*/

if ( ! dynamic_sidebar( 'primary-widget-area' ) ) : ?>

<li id="search" class="widget-container widget_search">
<?php get_search_form(); ?>
</li>

<li id="archives" class="widget-container">
<h3 class="widget-title"><?php _e( 'Archives', 'twentyten' ); ?></h3>
<ul>
<?php wp_get_archives( 'type=monthly' ); ?>
</ul>
</li>

<li id="meta" class="widget-container">
<h3 class="widget-title"><?php _e( 'Meta', 'twentyten' ); ?></h3>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<?php wp_meta(); ?>
</ul>
</li>

<?php endif; // end primary widget area ?>
</ul>
</div><!-- #primary .widget-area -->

<?php
// A second sidebar for widgets, just because.
if ( is_active_sidebar( 'secondary-widget-area' ) ) : ?>

<div id="secondary" class="widget-area" role="complementary">
<ul class="xoxo">
<?php dynamic_sidebar( 'secondary-widget-area' ); ?>
</ul>
</div><!-- #secondary .widget-area -->

<?php endif; ?>

 
     
  В файл footer.php  
     
 

<?php
/**
* Шаблон для отображения подвала (footer).
*
* Содержит закрывающий блок id=main тег и весь контент
* после него. Вызывает sidebar-footer.php для нижележащих виджетов.
*
* @package WordPress
* @subpackage MyTheme
* @since MyTheme 1.0
*/

?>
</div><!-- #main -->

<div id="footer" role="contentinfo">
<div id="colophon">

<?php
/* Сайдбар в футере? Вы можете настроить
* ваш футер на 4 столбца виджетов.
*/

get_sidebar( 'footer' );
?>

<div id="site-info">
<a href="<?php echo home_url( '/' ) ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home">
<?php bloginfo( 'name' ); ?>
</a>
</div><!-- #site-info -->

<div id="site-generator">
<?php do_action( 'twentyten_credits' ); ?>
<a href="<?php echo esc_url( __('http://wordpress.org/', 'twentyten') ); ?>"
title="<?php esc_attr_e('Semantic Personal Publishing Platform', 'twentyten'); ?>" rel="generator">
<?php printf( __('Proudly powered by %s.', 'twentyten'), 'WordPress' ); ?>
</a>
</div><!-- #site-generator -->

</div><!-- #colophon -->
</div><!-- #footer -->

</div><!-- #wrapper -->

<?php
/* Всегда используем функцию wp_footer() до закрывающего тега </body>
* вашей темы, иначе вы повредите многие плагины, которые
* обычно используют этот обработчик (hook) для обращения к JavaScript файлам.
*/

wp_footer();
?>
</body>
</html>

 
     
  Теперь Вам остается только активировать созданную тему через админку WordPress и увидеть результат !  
     
  В следующем нашем уроке мы разберем как создается меню навигации.  
     
подробнее

Creating game on fle game engine - fle / Создание игры на fle game engine - fle

14. использование переменных в игре на c++ directx 9c



read paper in english

Этот урок посвящен самым основам и рассчитан на более углубленное изучение c++. Все примеры реализуются в среде fle game engine на реальном действующем проекте игры
Шарики и Ямки. Тема будет интересна тем, кто только начал изучать основы c++, но также хочет узнать больше о использовании переменных и о создании игр.





Содержание

страница 1 - Спрайты

страница 2 - Объекты

страница 3 - Наложение объектов

страница 4 - Код - Настройка параметров Scene Editor fge и написание кода для вывода спрайта шарика в вашем первом игровом приложении

страница 5 - Отображаем прыгающий шарик

страница 6 - Загрузка игровой сцены

страница 7 - Перемещения игровой сцены

страница 8 - Закрываем часть сцены от пустот при помощи черной текстуры с прорезью, ограничиваем перемещение сцены

страница 9 - Реализуем корректное попадание в ямы и около ям - определяем границы спрайтов ям и спрайта прыгаюшего шарика

страница 10 - Проверка столкновений

страница 11 - Игровой счёт, звуки, музыка

урок #2 страница 1 - Создание новых сцен для игры simple game, расширенная версия simple game extended

13. Скроллинг больших локаций

14. использование переменных в игре на c++ directx 9c

15. Мульти анимация







Для чего нужны переменные в c++ в общем и в игре в частности ?

Да это, батенька, основы, скажет Вам любой знаток !

Без переменных никуда и никак.



Creating game on fle game engine / Создание игры на fle game engine - примеры переменных



Почему ?

Переменные - это как строительные кирпичики вашего приложения или игры. Переменные
хранят какие-то данные, а алгоритмы, реализованные на языке программирования
обрабатывают эти данные для получения какого-то результата.

То есть данные + алгоритмы = программы. Без них просто не будет ничего.



На скриншоте в методе CD3DGameApp::Play_Level_8 записан на языке c++ буквально следующий алгоритм:

если m_iScore превысит значение m_iNeedScore,
то переменная m_bLevelAimAchieved станет равна true.

С точки зрения языка все понятно. Но для чего это все ?

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

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

Как я уже заметил, исследовав код (алгоритмы реализованные на языке программирования -
в нашем случае c++), Вы можете понять как и для чего используются те или иные
переменные. В этом заключается анализ чужого кода или даже своего собственного,
написанного уже давно, но требующего, например, каких-то изменений.

Так, m_iScore это значение текущего счета набранного игроком.

m_iNeedScore - это значение игрового счета, которое нужно достигнуть чтобы
пройти текущий уровень игры и перейти на следующий.

m_bLevelAimAchieved - логический переключатель (триггер), если он
установлен в значение false, то некий алгоритм, отслеживающий необходимость загрузки
нового уровня, ничего не делает. Но как только данная переменная переключится в true -
алгоритм сразу же завершит текущий уровень, и загрузит новый.

Допустим я захотел делать следующий уровень игры, 8, а у любого уровня есть какие-то
цели - например в моем случае - чтобы пройти 8 уровень потребуется достичь суммы из
3000 очков, а чтобы с 7 уровня перейти на 8 - набрать 2500 очков.

Так вот чтобы реализовать этот простейший алгоритм, надо иметь 3 переменные:

m_iScore
m_iNeedScore
m_bLevelAimAchieved

А описаны они будут так :

//игровой счёт
int m_iScore;
int m_iNeedScore; //сколько нужно набрать очков чтобы пройти уровень
bool m_bLevelAimAchieved; //цель уровня достигнута

Мы объявили эти переменные внутри класса CD3DGameApp модуля start.h

Значит переменные - это контейнеры, имеющие определенный тип - задающий какие
значения она может хранить.

В нашем случае переменные m_iScore, m_iNeedScore имеют тип int - позволяют хранить целочисленные значения в диапазоне от -2147483648 до 2147483648.

Предполагается, что в данном случае тип int имеет размер 32 бит, и старший бит представляет знак числа.

Ну а переменная m_bLevelAimAchieved имеет тип bool - булевский тип, хранящий всего 2 значения - true или false.

Посмотрим как используются наши переменные.

При старте нового уровня выполняется метод CD3DGameApp::Init_Level_7(), в котором, как Вы видите,

//level 7
void CD3DGameApp::Init_Level_7()
{
m_iNeedScore = 2500;
m_iScoreOld = 2000;
}

эти переменные инициализируются.
Им присваиваются некоторые начальные значения.

Вы справедливо заметите: здесь же только переменная m_iNeedScore ! А где инициализация
m_iScore и m_bLevelAimAchieved ?

Выше я уже говорил, что m_iScore - это текущий счет набранный игроком,
поэтому значение этой переменной устанавливается в 0 где-то в самом начале игры, а по ходу
игры постепенно увеличивается. Значит мы не должны менять эту переменную, а только лишь
использовать хранимое в ней значение.

Логично предположить, что m_bLevelAimAchieved также инициализируется значением false
перед началом нового уровня. А как только переключится в true - вызовет срабатывание
алгоритма загрузки следующего уровня.

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

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

Вы можете открыть проект игры simple game, посмотреть какие там есть переменные и
добавить какие-то свои новые. Конечно делать надо не наобум, а отдавать себе отчёт в том, что
Вы делаете. Иначе это приведет к нарушениям уже созданных алгоритмов работы игры.

Давайте инициализируем переменную m_iNeedScore для следующего уровня, например 3.

Для этого запишем в модуле start.cpp такой код -


void CD3DGameApp::Init_Level_3()
{
m_iNeedScore = 300;
}

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

Как может возникнуть такая ошибка ?
Если вы в одном месте запишете переменную как
m_iNeedScore

а где-то в другом -

m_NeedScore

Естественно это будут уже 2 совершенно разные переменные
и к тому же если m_NeedScore не объявлена,
это вызовет ошибку на этапе сборки приложения.

Подведем итог.

Переменные - это основа вашего приложения, которая хранит все данные связанные с ним.

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


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

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

Больше, как говорится тут и нечего добавить.

Удачи вам на ниве создания своих приложений на c++ и игр !

Более подробно о переменных вы можете узнать из урока - Урок 1 Основные операторы языка C++ (часть 2) .





[назад] [далее]

     
 

Уроки по 3DS MAX - рассчитаны на тех, кто хочет познать мир 3D-графики. Курс читался слушателям по дисциплине компьютерный дизайн. Адаптирован для удаленного изучения. Все уроки содержат примеры моделей, которые можно скачать и посмотреть если у Вас что-то не получается! Новые уроки носят практический характер, т.к. создаваемые модели ориентированы на применение в компьютерных играх на платформах OpenGL, DirectX и других 3d приложениях.

Автор будет рад Вашим предложениям и замечаниям по-поводу содержания уроков. Можете также оставлять сообщения на Форуме.

 
     
     
     
  Введение в 3DS MAX - Рассказано о некоторых основных понятиях 3d-графики   
     
  макет помещения и обстановка  
     
  Создание макета помещения (этап 1) - Первый практический пример - Вы сможете сделать свой первый шаг в изучении 3ds max!    
     
  Создание макета помещения (этап 2) - Завершаем создание макета помещения   
     
  модель книжного шкафа  
     
  Моделирование на уровне полигонов (многоугольников) - Методы работы с объектами типа ediyable poly - на примере моделирования книжного шкафа    
     
  объекты обстановки комнаты  
     
  Создание предметов обстановки - Создаем простые модели - стул, стол, табурет  
     
  Моделирование обстановки помещения - Удаляем одну из стен, создаем дверной и оконный проемы, подгружаем модели стула, табурета и стола   
     
  текстурированная модель автомобиля  
     
 

Создание модели автомобиля

Создание текстурной развертки для модели автомобиля

Показано создание из плоского контура с применением модификатора Extrude и последующей доработкой на уровне editable mesh

Способы создания оптимальной развертки

 
  Создание модели и текстуры Коммандного Центра  
     
  Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) - Этот объемистый урок расскажет Вам как научиться создавать нечто подобное: всем известно, что вышла игра StarCraft 2 компании Blizzard. Об этой игре ходят легенды. Но не дожидаясь пока вы в неё поиграете, а также для того, чтобы пополнить свои навыки и умения попробуем вообразить себя "крутым дизайнером" (прямо как из Blizzard) и попробовать создать модель и текстуру для коммандного центра из StarCraft 2.  
     
  Основы 3D-анимации, экспорт скелетной анимации  
     
  Основы 3D-анимации, экспорт скелетной анимации - Способы создания анимации в 3Ds Max 7.0 или выше (можно использовать и ранние версии) и использования ее в Delphi DirectX - играх  
     
   
     
  Особенности экспорта моделей и анимации экспортером kWXPort080719 из 3ds max 2009  
     
  Особенности экспорта моделей и анимации экспортером kWXPort080719 из 3ds max 2009 - В архиве roboo.rar содержится простейшая модель для пробного экспортирования из 3ds max 9 (2009) экспортером kWXPort080719.  
     
  Создание анимации вращающихся колес автомобиля  
     
  Создание анимации вращающихся колес автомобиля - В данном уроке рассказывается об особенностях создания анимации простыми трансформациями объектов пригодной для экспорта в DirectX8 и DirectX9-приложение - для этих целей применяется объект Dummy.  
     
  Небольшая ГАЛЕРЕЯ 3D-моделей  
     
  Небольшая ГАЛЕРЕЯ 3D-моделей - Представлены некоторые из моделей, созданных в 3Ds Max и текстурированных (текстуры нарисованы в Photoshop и Corel Draw). Некоторые модели не совсем оптимальны для экспорта в 3D-приложения, но послужат хорошим примером для демонстрации различных техник моделирования.  
     
  видео про едущий по зимней местности броневичок  
 

моделируем 3d броневичок, а также смотрим видео созданное в 3ds max и озвученное, с его участием.

Создание модели броневика (Хэд) - Анимация вращения колес и создание видеоролика в 3ds max. Также представлена модель готовой анимированной сцены для скачивания.

 
     
 
В данном уроке - Путешествие в мир 3d мы попробуем создать небольшую сцену, включающую земной холмистый рельеф, небесный фон, деревья, траву, участок железной дороги и товарный вагон

В данном уроке - Путешествие в мир 3d мы попробуем создать небольшую сцену, включающую земной холмистый рельеф, небесный фон, деревья, траву, участок железной дороги и товарный вагон - сделаем мы это с использованием программ 3ds max 7 и photoshop cs 2. Если у вас другие версии этих программ - не беспокойтесь, многое применимо и к вашей версии.

Подробнее...

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

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



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


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