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


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

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 16
Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 16 Онлайн-комикс Костя Коробкин - В гостях у тёти Светы - интерактивный комикс (kk as). - Ну ладно, уже звонок я побежала !
подробнее...

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

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

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

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

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

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

megainformatic - Эмулятор ZX-Spectrum, БК-0010.01 и их работа в эмуляторе DosBox 0.74

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

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

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

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

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

megainformatic - первый независимый онлайн-журнал комиксов ККК Костя Коробкин Комикс номер 1 март 2016

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

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

megainformatic - Эмулятор БК-0010.01 версия 2.6 для Windows 9x/Me/2000/XP автор Юрий Калмыков 2002 год

megainformatic - api получения готового решения для решения различных задач возникающих при создании сайта

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

роман Eternity Вечность - автор Синицин Андрей megainformatic

роман Eternity Вечность - автор Синицин Андрей megainformatic - страница 2

роман Eternity Вечность - автор Синицин Андрей megainformatic - страница 3

роман Eternity Вечность - автор Синицин Андрей megainformatic - Windows Sockets 2, ping, Windows SDK 7, чем открыть hxs файл - страница 4

megainformatic - Размещение Вашей рекламы на нашем сайте

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

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

роман Eternity Вечность - автор Синицин Андрей megainformatic - В чём отличие в применении символов & и * в языке c++ ? также продолжаем изучать Windows Sockets 2 и пример simple - страница 5

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

megainformatic - игра Шарики на лифте Серия 1 Разгони Лифт / Balls on Lift Level 1 Run The Lift версия 0.9.2 05.10.2016 / version 0.9.2 05.10.2016

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

роман Eternity - страница 6 + решение по анимации закрывающихся дверей лифта

megainformatic - Сообщить об ошибке

Balls on Lift Table of Records / Шарики на лифте Таблица рекордов

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

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Рисуем шарик / How make the game - series of lessons - draw ball

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Содержание / How make the game - series of lessons - Index

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Разные шарики / How make the game - series of lessons - Different balls

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Анимация прыжков шарика / How make the game - series of lessons - Animation ball jumps

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Создание фона заднего плана / How make the game - series of lessons - Creating background for back plane

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Вставка созданной графики, звуков и музыки в игру - Inserting created graphics, sounds and music in the game.

Balls on Lift / Шарики на лифте + Как создать игру - бесплатная игра + комплект уроков о том, как создавать контент для игры - спрайты, фоны, звуки, музыку, и вставить его в игру - How to create a game - free game + package of lessons on how to create content for the game - sprites, backgrounds, sounds, music, and insert it into the game

Balls on Lift / Шарики на лифте + Как создать игру - бесплатная игра + комплект уроков о том, как создавать контент для игры - спрайты, фоны, звуки, музыку, и вставить его в игру - How to create a game - free game + package of lessons on how to create content for the game - sprites, backgrounds, sounds, music, and insert it into the game

Развитие проекта fle game engine

Бинарная философия / Binary Philosofy

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

Вакансии

Коллекция php скриптов

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

megainformatic - Приключения Кости Коробкина - В гостях у тёти Светы часть 1 - интерактивный комикс

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

fle game generator - fle генератор игр - fly snow 3d падающий снег - расширяемый генератор визуальных образов, с музыкой mp3, ogg и генерацией игр

fle game generator - fle генератор игр - fly snow 3d падающий снег - расширяемый генератор визуальных образов, с музыкой mp3, ogg и генерацией игр

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

megainformatic Создание и размещение видео баннера mp4

megainformatic Использование баннер-ротатора

megainformatic fle game engine Simple game / Пример простой игры

megainformatic fle game engine Simple game / Пример простой игры - страница 1 - Спрайты

подробнее

Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 12

Онлайн-комикс Костя Коробкин - В гостях у тёти Светы - интерактивный комикс (kk as).

- Она хлопает капотом ?

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

если кликать картинку она будет последовательно меняться в размерах от 620 до 2048 пиксель.

[страница 1][страница 2] [страница 3] [страница 4] [страница 5] [страница 6] [страница 7] [страница 8] [страница 9] [страница 10] [страница 11]  [страница 12] [страница 13] 

подробнее


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

Регистрация. Часть 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 уважением, Андрей.

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

подробнее

     
  [к содержанию] [назад] [далее]  
     
 
Теоретические основы 3D-программирования: теоретические и практические основы программирования 3D-игр.
 

О кватернионах

Что такое кватернион?

 

Кватернион - это четверка чисел (х, y, z, w) при помощи которой задается ориентация модели в 3-х мерном пространстве. x, y и z - задают ось вращения, w - угол вращения вокруг этой оси.

 

Единичный кватернион - вычисляется следующим образом:

q.x := sin(theta/2) * axis.x;
q.y := sin(theta/2) * axis.y;
q.z := sin(theta/2) * axis.z;
q.w := cos(theta/2);

, где axis - нормированная ось вращения; theta - угол вращения вокруг этой оси (в радианах). Для справки - 90 градусов - это pi/2 радиан (или более оптимизированно в DirectX записывается как DX_PI*0,5).

 

Если использовать углы Эйлера (рысканье, тангаж, крен - yaw, pitch, roll), то кватернион можно вычислить следующим образом:

qroll := D3DXQuaternion((sin(ay/2), 0, 0), cos (ay/2));
qpitch := D3DXQuaternion((0, sin(ax/2), 0), cos (ax/2));
qyaw := D3DXQuaternion((0, 0, sin(az/2)), cos (az/2));
q := D3DXQuternionMultiply(q, D3DXQuternionMultiply(q, D3DXQuternionMultiply(q, qyaw), qpitch), qroll);

, где ay, ax и az - углы вращений вокруг основных координатных осей - ox, oy, oz (в радианах).

 
Для чего ввели использование кватернионов? Кватернионы занимают меньший объем по сравнению с матрицами - матрица 3х3 - 9 чисел; кватернион - 4. К тому же в D3D используются матрицы 4х4 - т.е. 16 чисел! Для перехода от матрицы к кватерниону и обратно существуют специальные функции - D3DXMatrixRotationQuaternion, D3DXQuaternionRotationMatrix. Композиция - перемножение кватернионов дает результирующую ориентацию. Сама операция переменожения также более эффективна по сравнению с перемножением матриц. Кроме того, кватернионы используются для интерполяции промежуточных кадров анимированных моделей.
 
[к содержанию] [назад] [далее]
 
     
     
     
     
     
     
     
подробнее

роман Eternity Вечность - автор Синицин Андрей megainformatic

начат 1.07.2014 - развивается по настоящий момент времени

Аннотация: остросюжетный роман, фантастика, приключения, технологии будущего. Главный герой - живёт в обычном мире и в то же время, владеет тайнами, от которых становится страшно. Если эти тайны попадут в недостойные руки может случиться что угодно. В мире царит не только добро и зло, но и такая вещь как любовь. Вечная борьба добра и зла продолжается, но любовь остается вечно вне их. Что ждёт героя завтра ? Об этом он не знает, хотя и владеет такими знаниями, которые могут изменить всё мироздание. И как всегда присутствует дилемма - познавать окружающую действительность или же самого себя. Каким бы простым не казался Он Вам на первый взгляд - это впечатление обманчиво. Это лишь маскировка. Ширма скрывающая реальность от непосвященного в её тайны. Даже проникнув за ширму, мы узнаем многое, но это всё не формирует окончательного мнения и мировосприятия. Не будет окончательных ответов на волнующие вопросы. В этом и есть главный секрет. Но это является правдой лишь до определенной степени. На самом же деле нет ничего незыблимого и постоянного. Это лишь ориентир.

 

Все имена и персонажи вымышленные. Любые совпадения случайны. Опасно для жизни - не проверять на себе ! Все трюки выполнялись только настоящими профессионалами.

 

Ну, что ж, давайте начнём. Вы пришли сюда не случайно. Затем, чтобы интересно провести свободное время. В поисках чего-то необычного. А возможно и всё наоборот. В любом случае - это история для Вас и про Вас. Возможно она покажется Вам наивной или Вы скажете, что всё это - чистой воды попытка раскрутить самого себя. И отчасти будете правы. Каждый хочет, чтобы его заметили. Но это происходит до определенного момента. А в какой-то момент Вы поймете - что ему это совсем не нужно. Он просто хочет поделиться наболевшим. Вот и всё. Решайте сами - как к этому всему относиться, читать ли дальше, что делать и предпринимать после овладения всей описанной информацией.

 

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

 

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

- Ну давай кофе.

- Пара минут. Пока можешь присесть или что-нибудь еще ?

- Нет. Спасибо Антош, мне очень неловко. Вот так свалилась тебе на голову.

- Ничего, не думай об этом. Люди должны помогать друг другу.

- Не знаю как тебя и отблагодарить. Еще раз огромное спасибо за всё.

- Да пока что особо и не за что.

- Хорошо, я тогда пока вытру волосы и расчешу их.

- Угу, зеркало там, в прихожей.

Из прихожей донесся снова голос Ани: - Извини, Антош, я совсем забыла тебя спросить,
я тебе не помешаю ? Ты никого не ждёшь ?

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

- Ой, ну тогда ладно, а то я переживала, что доставляю тебе неудобства.

- Да какие там неудобства ! 

- Спасибо. Ты очень добр ко мне Антон.

Затем они сели пить кофе и чай, а после поужинали тем, что было в наличии в холодильнике.

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

- Зачем ? Ложись рядышком, по-моему диван у тебя достаточно широкий и места нам обоим
более чем достаточно.

- А ты не ... ? - Антон осекся.

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

- Ммм. - только и вымолвил Антон.

- Тогда договорились. Я не хочу стеснять тебя. Это всё-таки твоё жилище.

- Ок, договорились.

Они легли спать.

Ночь была длинной и темной. За окном накрапывал дождь и барабанил в стекло.

- Так ты мне на сказала какие у тебя планы на завтра ? - тихо спросил Антон,
 - пока ты еще не спишь. Ты еще не спишь ?

- Антош, нет не сплю. Ну завтра как обычно пойду на работу.

- Аня, но ведь завтра суббота ? Ты работаешь и по выходным ? Или у вас скользящий график ?

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

- Да конечно. Делай как думаешь. Больше вроде бы срочных вопросов нет. Спокойной ночи.

- Спокойной ночи.

Но Антону не спалось. В голову лезли какие-то мысли. Думы. Мечты. Надежды.
Что-то в его жизни круто менялось. И он сам ощущал, что происходит нечто очень и
очень загадочное, трогающее сердце и душу.

далее

Creating game on fle game engine - Simple game

6 - Loading game scene



читать данную статью на русском

It's time to go to the most important and interesting question - load and display that you created in Scene Editor fge game scene.





Content

page 1 - Sprites

page 2 - Objects

page 3 - Overlay objects

page 4 - Coding - Setting parameters for the Scene Editor fge and write code to display the sprite ball in your first gaming application

page 5 - Show jumped ball

page 6 - Loading game scene

page 7 - Moving game scene

page 8 - Closing of the scene from the cavities by means of a black texture with a slot, restricts the movement of the scene

page 9 - We realize getting into the correct hole and around the holes - holes define the boundaries of sprites and sprite jumped ball

page 10 - Testing collisions

page 11 - Game score, sounds, music







With jumping ball until everything is clear. Leave it for a while. Now it's time to load our gaming scene.

1) We need to create a scene to load in our app and show on screen.

Game scene or room, level - is the foundation of any game, even if the screen is blank - game scene is somehow present.

First of all necessary to prepare the resource files game scene, as described on page 2 - Objects

Remove all unused types, objects and images - leave only





simple_game\SceneEditor\Media\textures\environment\desc\scene_editor_types.txt



none; 0;
ai_player; 1;
floor; 2;
test; 3;


simple_game\SceneEditor\Media\textures\environment\desc\scene_editor_texlist.txt



ball; ai_player; ai_player\jump.tga; 64; 128; 0; 0; 4; 8.0f; 14.0f;
floor; floor; floor\floor.jpg; 101; 101; 0; 0; 1; 0.0f; 0.0f;
floor_front; floor; floor\floor_front2.tga; 101; 101; 0; 0; 1; 0.0f; 0.0f;
floor2; floor; floor\floor2.jpg; 101; 101; 0; 0; 1; 0.0f; 0.0f;


It should be borne in mind that if you change the types of files and resources, by using their scene files already will not work !

Therefore it is necessary to implement a new stage with a new assembly prescribed resources - simply repeat previously done at page 3 - Overlay objects

Creating scene in fle game engine - in Scene Editor 1.0.2 - scene ready

Now we take the whole folder

simple_game\SceneEditor\Media\textures\environment\





and copy it to a folder of resources of our game simple_game

simple_game\simple_game\Media\textures\





Folder

simple_game\SceneEditor\scenes\simple_game\



and the file you have created a game scene, I was called scene_3.SCN,

copy in folder

simple_game\SceneEditor\Media\textures\environment\scenes\



Ie. like this

simple_game\SceneEditor\Media\textures\environment\scenes\simple_game\scene_1.SCN



Scene I again called scene_1.SCN, to indicate that it will be the first (and so far only) single game scene in our game simple_game.



Scene resource files are prepared, and now we shall understand how to load the scene in the game and display.

The first thing you need - a module GameSceneFile ie. 2 files - GameSceneFile.h andGameSceneFile.cpp which will need to add to the project.

including GameSceneFile module to you project

Further, to the file start.h after line

#include "d_input.h"

you need to add a line of including of the module header file -

#include "GameSceneFile.h"



Further, in our application class CD3DGameApp After line

bool m_bShowScreenOptionsBtn;

add a new field - CGameSceneDataFile* m_pGameSceneDataFile;



It is an object to control our scene. Its methods are described in the module GameSceneFile presented, as you have already seen 2 files - GameSceneFile.h and GameSceneFile.cpp.

File GameSceneFile.h - header - describes the function header fields and methods, and file GameSceneFile.cpp describes their implementation in a programming language c++.



Now you need to add to our application module start.cpp the following lines of code



1)

#include "game_sprite.h" //this line after which you need to add

#define SimpleGameLocation L"\\Media\\textures\\environment\\scenes\\simple_game\\scenes_list.txt" //a string to be added
#define SimpleGameScenesPath L"\\Media\\textures\\environment\\scenes\\simple_game\\" //a string to be added




You will need to create another file scenes_list.txt in a folder

simple_game\simple_game\Media\textures\environment\scenes\simple_game\





And put in it the next record -

scene_1.scn



Nothing else, no line breaks and blank lines !!



Further, there is, in our application module start.cpp

2)

In method -

CD3DGameApp::CD3DGameApp



CD3DGameApp::CD3DGameApp()
{
//...

m_pSprite = NULL;

} //this line after which you need to add



//this lines should be added

void CD3DGameApp::LoadGameScene()
{
//creating a game scene
m_pGameSceneDataFile = new CGameSceneDataFile();
m_pGameSceneDataFile->PreLoadGameTextures();

m_pGameSceneDataFile->LoadLocation(SimpleGameLocation, SimpleGameScenesPath);

//obtaining location boundaries
ScrollGameSceneLeftLimit = -m_pGameSceneDataFile->m_fLocationHScrollLimit;
ScrollGameSceneRightLimit = m_pGameSceneDataFile->m_fLocationHScrollLimit;
//exhibiting locations borders available from other modules
g_fScrollGameSceneLeftLimit = ScrollGameSceneLeftLimit;
g_fScrollGameSceneRightLimit = ScrollGameSceneRightLimit;

//loading properties of objects, boundaries
//LoadGameObjProperties(GameObjectPropertyValue); //as commented out, there is not used

}





The same method must be added to start.h

in the class definition

class CD3DGameApp

after line

bool m_bShowScreenOptionsBtn;

add -





//game scene

CGameSceneDataFile* m_pGameSceneDataFile;
void LoadGameScene();
//void AfterLoadRestoreLocTextures(); //It commented out, as is not required
void MovePlayer(int NewMoveState);
void ScrollGameScene();

int m_iOldCurrSceneNum;
int m_iOldCurrSceneInx;

D3DXVECTOR3 m_vFleHeroPos;
void SetHeroLocationPos(DWORD CurrMoveState, LPD3DXVECTOR2 p_v2Pos,
float LocationXOffset);
void AnimGameProcess();
void DrawGameProcess();
bool CanEnterScene();
void LoadGameDataBlock();

}; //the above lines should be added, and this has to be - to close the class definition CD3DGameApp




Now we come back to the code of module start.cpp and added to

in method

CD3DGameApp::CreateDeviceObjects

After line -



g_Snow.Load();



lines -



LoadGameScene();

LoadGameSceneTextures(m_pGameSceneDataFile->m_pTexArray, EnvironmentTexturesPath, TextureFilesList, m_pGameSceneDataFile->m_pSprite);





in method

CD3DGameApp::RestoreDisplayObjects

add

if ( m_pGameSceneDataFile )
m_pGameSceneDataFile->RestoreGameSceneObjects();

in method

CD3DGameApp::InvalidateDisplayObjects

add

if ( m_pGameSceneDataFile )
m_pGameSceneDataFile->InvalidateGameSceneObjects();


in method

CD3DGameApp::DestroyDisplayObjects

add

m_pGameSceneDataFile->FreeGameTextures();
SAFE_DELETE(m_pGameSceneDataFile);



anywhere, but it is more convenient to the end of the file, add -

void CD3DGameApp::MovePlayer(int NewMoveState)
{
/*
If the scene is closed - the movement disabled
*/

m_pGameSceneDataFile->m_fHeroXPosInLocation = g_fHorizontalScrollOffset;
m_pGameSceneDataFile->CalcCurrentSceneNumber();
//if ( !CanEnterScene() )
//{
//x_step = 0.0f;
//}
}

//=============================================
//
// Game scene scroll
//
//=============================================

void CD3DGameApp::ScrollGameScene()
{

//before performing remember scroll location number of the current scene,
if ( m_iOldCurrSceneInx != m_pGameSceneDataFile->m_iCurrentSceneIndex )
{
m_iOldCurrSceneInx = m_pGameSceneDataFile->m_iCurrentSceneIndex;
m_iOldCurrSceneNum = m_pGameSceneDataFile->m_iCurrentSceneNumber;

g_iCurrentSceneNumber = m_pGameSceneDataFile->m_iCurrentSceneNumber;
}

m_pGameSceneDataFile->ScrollLocation( &D3DXVECTOR2(
g_fHorizontalScrollOffset + m_vFleHeroPos.x,
g_fVerticalScrollOffset ), g_fHorizontalScrollOffset);

}
//an arbitrary position of the character in the location
void CD3DGameApp::SetHeroLocationPos(DWORD CurrMoveState, LPD3DXVECTOR2 p_v2Pos,
float LocationXOffset)
{
m_vFleHeroPos = D3DXVECTOR3(p_v2Pos->x, p_v2Pos->y, 0.8f);

g_fHorizontalScrollOffset = LocationXOffset;
m_pGameSceneDataFile->m_SceneScrollPoint.x = g_fHorizontalScrollOffset;

ScrollGameScene();
}

void CD3DGameApp::AnimGameProcess()
{

m_pGameSceneDataFile->AnimateGameScene(g_fElapsedTime);
m_pGameSceneDataFile->AnimLocation();

MovePlayer(0);
}

void CD3DGameApp::DrawGameProcess()
{
m_pGameSceneDataFile->DrawGameSceneView();
m_pGameSceneDataFile->DrawLocation();
}

bool CD3DGameApp::CanEnterScene()
{
return true; //test
}

void CD3DGameApp::LoadGameDataBlock()
{
m_pGameSceneDataFile->m_SceneScrollPoint.x = g_fHorizontalScrollOffset;

if ( g_fHorizontalScrollOffset != 0.0f )
ScrollGameScene();
}





Finally, the method calls

AnimGameProcess();

и

DrawGameProcess();

Responders must be added for the animation and display gaming scene

method

CD3DGameApp::FrameMove

g_AI_Ball_Sprite.Anim(); //after a string which must be added

AnimGameProcess();//is a string that must be added



and in method

CD3DGameApp::Render

case APPSTATE_READY: //after a string which must be added

DrawGameProcess();//is a string that must be added



Save the changes made in the project build with MSVS 2005. If everything is ok, then when you run the application you will see on the screen you created in Scene Editor fge game scene and jumped ball in it.

Showing app creates a game scene simple game

An example of the future of the game with full source code you can get a part of a paid subscription to fle game engine.

The example also contains the source code for generating snowflakes or other particles, and switching display backgrounds, and some other
interesting and useful features that will be considered by us in subsequent lessons.

Order subscribe to fle game engine -


Price: 10 usd.

Then you will get a more recent version Scene Editor fge 1.0.2 (for now) with the support of more possibilities in the grid, setting scrolling and others. In the free version, these features are not supported. More details about the distributive of a paid subscription.





For correct building of the project you will need to Microsoft Visual Studio 2005

DirectX SDK August 2008



https://www.microsoft.com/en-us/download/details.aspx?id=23549
Details
Version:
9.27.1734
File Name:
DXSDK_Aug09.exe
Date Published:
9/8/2009
File Size:
553.3 MB




To project could compile correctly, follow these steps::

Open project in MSVS 2005

in Solution Explorer window right click on the node start - designating the project name
and select

Properties

project properties

In the window that opens start Property Pages left open the node

Configuration properties > C/C++ > General

project properties Additional Include Directories

then to the right in the field Additional Include Directories

instead ..\..\..\..\..\..\..\Include

you need to write a valid path to the folder Include, part of the DirectX SDK August 2008.

Ie. we need to replace part of a string ..\..\..\..\..\..\..\Include

to absolute path -

for example it may be that -

C:\DXSDK9_Aug2008\Include

or relative -

for example it may be that -

..\..\..\..\..\..\..\..\..\Include



A similar effect you need to do to Debug build - select in the Top left Configuration variant Debug.

project properties Additional Include Directories for Debug build

Asked: Do you want to save changes you've made in the property pages ?

Answer in the affirmative - Yes.



Next, open the left node

Configuration properties > Linker > General

and in field

Additional Library Directories

change value

..\..\..\..\..\..\..\Lib\x86

project properties Additional Library Directories

on your path to the appropriate set DXSDK9_Aug2008

here also is the analogy, you can specify an absolute

C:\DXSDK9_Aug2008\Lib\x86

or relative - depending on where the disc is the project folder simple_game.

For example it may be that -

..\..\..\..\..\..\..\..\..\Lib\x86

This action needs to be done and for Debug configuration of project.

select in the Top left Configuration option Debug.

Asked: Do you want to save changes you've made in the property pages ?

Answer in the affirmative - Yes.



If everything is configured correctly. Press ОК.

Then in the field under the main menu, select the project build option Debug or Release in the tool bar

just to the right of the button with a green triangle - meaning the start of the project environment MSVS 2005 in debug mode.

Next to the main menu, select the item Build > Clean Solution - to clear all obsolete object files.

Then Build > Rebuild Solution.

If everything was set up correctly, and in the course of the compilation, you do not receive any error messages in the folder

simple_game\simple_game\

you can find the created file start.exe, which can be run to perform.



[previous] [next]



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

Registered comments



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


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