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


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

megainformatic - megainformatic cms Система Управления Контентом
        Что нужно для создания сайта ?          
подробнее...

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

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

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

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

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

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

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

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

megainformatic - Пишем свою соц. сеть - модуль предложений для webjob

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

megainformatic - Пишем свою соц. сеть - Реализация файлового хранилища предложений в csv-файле

megainformatic - Тестирование подключения к платежной системе ЕДИНЫЙ КОШЕЛЕК (w1.ru) с использованием скрипта эмулятора

megainformatic - Пишем свою cms - шаг 1

megainformatic - Пишем свою cms - шаг 2

megainformatic - Пишем свою cms - шаг 3

megainformatic - бесплатная флеш игра freeway fury 2 - разработчик Serius Games

megainformatic - бесплатные флеш игры сторонних разработчиков

megainformatic - Как я осваивал Flash

megainformatic - Список уроков на тему создания flash приложений и игр

megainformatic - Как я осваивал Flash - шаг 2 - Основы создания простейших flash - игр

проект портала Идеи Комфорта

megainformatic - игра Веселый Буквоежка

megainformatic - игра Веселый Буквоежка

megainformatic - Использование cron, crontab и планировщика задач

megainformatic - Совместное использование jquery и mootools или других js-фреймворков

megainformatic - Модуль content php performer для megainformatic cms

megainformatic - Пишем компактный слайдер

megainformatic - Что нужно знать для создания сайта ?

megainformatic - Что нужно знать для создания сайта ? Глава 2 - Кодировки и DOCTYPE

megainformatic - Что нужно знать для создания сайта ? Глава 3 - Идём дальше - нанизываем новый код - где объявляются стили css и код javascript

megainformatic - Что нужно знать для создания сайта ? Содержание

megainformatic - Что нужно знать для создания сайта ? css - стили

megainformatic - preg_match или Использование регулярных выражений в php

megainformatic - статьи Тимонина Андрея - Flash. Содержание

megainformatic - статья Тимонина Андрея - Flash. Подготовка к работе.

megainformatic - статья Тимонина Андрея - Flash. Hello world.

megainformatic - статья Тимонина Андрея - Flash. Экспорт SWC библиотеки.

megainformatic - Тимонин Андрей - Несколько слов о себе

megainformatic - статьи Тимонина Андрея - уроки из области веб программирования, создания казуальных игр

megainformatic - статья Тимонина Андрея - Обеспечиваем доступ к объекту из любой точки программы. Singleton

megainformatic - статья Тимонина Андрея - Хронология работы программы. Создаем Лог

megainformatic - статья Тимонина Андрея - Поиск файлов. Получаем список файлов каталога.

megainformatic - статья Тимонина Андрея - Исключения. Создаем класс обработки исключений.

megainformatic - статья Тимонина Андрея - States. Создаем менеджер состояний игры.

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

megainformatic - статья Тимонина Андрея - Регистрация. Часть 2. Создаем обработчик, и заносим информацию о пользователе в Б.Д.

megainformatic - статья Тимонина Андрея - Таймер. Выводим время игры.

megainformatic - статья Тимонина Андрея - DirectX9. Создаем основной класс обработки графики.

megainformatic - статья Тимонина Андрея - DirectX9. Создаем первое приложение.

megainformatic - Что нужно знать для создания сайта ? float - использование в css - стилях

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 2 - пишем свою композицию COLD

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 3 - экспериментируем с композицией COLD

megainformatic - Что нужно знать для создания сайта ? Стандартные шрифты для сайта

megainformatic - Что нужно знать для создания сайта ? ASC II Коды символов

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 4 - пишем первый вариант композиции COLD

megainformatic - Популяризация Современных Научных Знаний и Размышления на околонаучные темы. СОДЕРЖАНИЕ

подробнее

     
 

Видео урок про создание игры - рождение игры часть 1.

Если начать изучение основ с элементарных, то постичь секреты создания игр в delphi 7 для directx 8.1 api доступно каждому.

 
     
 
Урок 6 Игровая логика
 
О том, что потребуется для данного урока читайте в основном разделе - уроки delphi directx 8.1
 
Далее у читателя подразумевается наличие базовых знаний языка Delphi.
 
[назад] [страница 1] [далее] [к содержанию]
 

Игровая логика - это формализованный в коде набор игровых идей, которые составляют игровой геймплей.

В игре "Ну, Погоди!" игровая логика сводится к следующему алгоритму, выраженному в словесной форме -

игрок должен управлять положением волка, располагая его в одном из 4х возможных. С лотков катятся яйца. По достижении конца лотка яйца падают, если у этого лотка не стоял волк, при этом выглядывающий из окошка заяц вызывает появление из разбитого яйца бегущего цыпленка. Отсутствие зайца приводит к полному разбиванию яйца. За пойманные яйца начисляются призовые очки, за разбитые - штрафные. Бегущему цыпленку соответствует пол-штрафного очка, полностью разбитому яйцу - 1 штрафное очко. Игра продолжается до 3 штрафных очков или до троекратного набора 999 очков. В последнем случае отображается поздравительный текст и небольшой мультфильм.

 

Теперь посмотрим на код, который должен реализовать описанную логику -

в методе TD3DGameApp.UpdateInput

изменение положения волка происходит следующим образом

{...}

if PressButton in m_DXInput.States
then begin
Area := TargetBtnArea(GetCursorPos);
//в данном случае проверяется нажатие на кнопку управления волком на игровой

//панели путем наведения на неё указателя мыши и нажатия левой кнопки мыши

{...}

if LeftUpCatch in m_DXInput.States then begin //т. к. на больших скоростях игры потребуется прямое управление
Area := 0;
//волком от клавиатуры, то это происходит таким образом
end;

{...}

Далее текущее положение волка заносится в специальную переменную -

Это происходит в реализации метода TD3DGameApp.FrameMoveGameSituation -

//положение волка
if (Area >= 0) and (Area < 4) then begin
WolfPos := 1 + Area;
WolfPosSet := WolfPosSet + [WolfPos];
end;

и далее -

//если игра не остановлена из-за разбитого яйца
if not StopGame then begin

//появление нового яйца на лотке
CreateNewEgg;

//качение яиц по лоткам
RollEggs;

//появление зайца из окошка
RabbitLookedFrom;

//счетчик изменения темпа игры
IncreaseGameSpeed;


end; {of StopGame or ResetShtraf}

CrashEggs; //разбивание яиц, бег цыплят


//мерцание, сброс штрафных очков

FlashShtraf;

 

Реализацию показанных методов Вы можете посмотреть в исходном коде игре "Ну, Погоди!".

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

 
Переходим к практическим упражнениям.
 

Используя код приложения из предыдущего - 5 урока - GameClasses_src попробуйте реализовать такой простейший игровой процесс:

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

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

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

Для компиляции примера понадобится библиотека delphi directx.

 
Пример сложной игровой сцены
 

Особенности примера:

- вывод 9 зон земной поверхности и объектов на ней (деревья), возможно построение сцены по данным файла - карты;

- свободная и привязанная к персонажу камера (переключение клавишей [V]);

- переключение между персонажами [пробел];

- анимированные персонажи (хотьба, прыжки, падение); управление персонажем j, k, l, i

- игровые панели - жизни, сила броска;

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

- поиск ближайших кубиков, показ их стрелками;

- рассчет траекторий полета (не доделано);

 

В завершение данного урока хотелось бы обратить Ваше внимание на реализацию алгоритма постепенного нарастания темпа в игре "Ну, Погоди!". Для этого загляните в реализацию метода TD3DGameApp.IncreaseGameSpeed

разобравшись с тем, как он работает, а также учтя тот важный момент, который применяется для того, чтобы игрок сумел поймать катящиеся яйца со всех лотков, Вы возможно сможете предложить собственный вариант его реализации, еще более близкий к реальной электронной игре "Ну, Погоди!"

 
 
 
[назад] [страница 1] [далее] [к содержанию]
 
     
     
     
     
подробнее

We all live in a yellow submarine !

То есть - Все мы живем в желтой подлодке.

Давайте представим что наш земной шар - это большая пребольшая подлодка, которая парит в океане космоса.

Представили ?

Дух захватывает.

Правда масштабы Земли не позволяют это представить.

Тогда можно представить что-то поменьше - дом в котором Вы живете.

Вот это уже представляется легче.

А теперь представьте, что у вас есть какое-то личное дело, которое Вас всецело захватывает.

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

И вот, Вы понимаете, что уже не можете выйти за некие рамки дозволенного.

Вы хотите покорить космос, но увы.

У вас нет возможностей, чтобы покорить его.

Да, конечно, Вы можете фантазировать или играть в такие игры как kerbal space program, но выйти за пределы своей мини-вселенной, своего мира, Вы не можете.

Кто-то скажет: друг, зачем это тебе ? Довольствуйся малым. Тем что есть.

Согласен.

В жизни мы так и делаем. Каждый день. Каждый час. Каждый миг.

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

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

В позитивном - это уютный домик, в котором тебе живется хорошо.

А открытый космос - это неизвестность, таящая в себе опасность гибели.

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

Мы начинаем урок № 1380, посвященный изучению своего личного мира.

А как можно изучить личный мир, как не на своем примере ?

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

Как это ?

Очень просто: если ты понимаешь самого себя, то в космосе найдешь только самого себя.

Ведь космос - это пространство, как зеркало.

Как можно познать пустоту ? Пространство ? Только познав себя.

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

к новым мирам

Так начинается новая игра в масштабах целой вселенной !

Или вот шарик в ямке - не самый удачный момент.

шарик в ямке - не самый удачный момент

Глава 1

Пришелец с другой планеты

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

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

- Привет ! - выдавил я из себя боязливо.

- А что, разве Вы меня видите ?

- Да Вы уже тут битый час круги меряете.

- Вообще-то мне запрещены контакты 1 рода. И уж тем более не разрешены контакты 2 рода.
Значит Вы меня видите ?

- Вижу.

- Это плохо.

- Вы пришелец ?

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

- Ну что ж. Все равно приятно встретить незнакомца из неизвестных миров.

- Что поделать. Такое случается. Иногда.

- Не посчитайте меня за наглеца, а не могли бы вы хоть немного рассказать о своем мире.
Об этой параллельной вселенной ?

- Конечно же могу. Если Вам это будет приятно и интересно.

- Я весь внимание.

- О! Ну что ж. Зовут меня Зеленый. И это всего лишь мой сон.

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

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

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

- Так значит для Вас это всего лишь Сон ?

- Выходит так.

- Забавно.

- Более того, необычно. И вам не кажется, что это открытие ! Сенсация. Правда толку от неё
мало.

- Почему ? Вы имеете в виду вот такие дальние межпланетные путешествия ?

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

- Но ведь это Ваш сон ?

- Конечно.






подробнее

Варианты макетов Психолог 911

Шаблоны для сайтов - что это и какие они бывают ? - небольшая обзорная статья на тему шаблона для сайта.

вариант 1
вариант 1_2
вариант 1_3
вариант 1_4
вариант 1_5
вариант 1_5_2
вариант 1_5_3
вариант 1_5_4
вариант 1_6
вариант 1_7
вариант 1_8
вариант 12
вариант 13


Для просмотра фото в увеличенном виде кликните по нему.

План работ на 1 этап

задача по ТЗ заметки
     
1. Развертывание системы: скрипт инсталлятора на хостинге инсталлятор позволяет автоматически настроить систему для работы на хостинге. вручную нужно создать только новую пустую базу данных. всё остальное выполняет скрипт - заполняет новую базу данных необходимыми данными, создает файл конфигурации, переключает систему в рабочий режим.
2. Базовые возможности: система пользователей с ролями - суперадмин, модератор, психолог роли назначает суперадмин. в админ-панели отображается полный список зарегистрированных пользователей. для каждого пользователя можно задать определенные настройки его личного кабинета. у пользователя есть профиль (логин, пароль, фото, ФИО, контакты), личные страницы которые он может редактировать, а также раздел системы личных сообщений с входящими вопросами заданные через страницу контактов данного пользователя (психолога)
3. Механизм регистрации нового психолога на сайте - регистрация по активационной ссылке без участия суперадмина, либо требующая одобрения суперадмином
4. Система личных страниц пользователей. Базовая возможность - форма вопроса, с которой данному пользователю можно задать прямой вопрос.
5. Система личных сообщений на сайте - в личном кабинете есть раздел сообщений ВХОДЯЩИЕ, ИСХОДЯЩИЕ, КОРЗИНА. Предусмотрена возможность ОБЩИХ СООБЩЕНИЙ - т. е. вопрос, который не был отвечен психологом, становится ОБЩИМ и на него может ответить любой другой психолог.
6. Дизайн сайта пока типовой, который есть у меня в наличии. Ширина 1000 пикселей. По центру. Шапка, Верхнее меню, левая колонка, центр, правая колонка, подвал.
     
  Другие уроки можно посмотреть в разделе Статьи  
     
 

Краеугольная особенность работы 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

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

 
     
  Другие уроки можно посмотреть в разделе Статьи  
     
megainformatic live chat
Начать беседу
X
 

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



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


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