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


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

megainformatic - По ту сторону
начат 06 авг 2010, 10:29 как серия постов ПО ТУ СТОРОНУ Жил да был обычный человек. Он ничем не выделялся среди других, ничем не был лучше или хуже. Звали его Роман. А полное имя Роман Сергеевич Писарев. Работал Роман Сергеевич преподавателем. На жизнь ему хватало. И все бы ничего, жизнь так и шла бы своим чередом, тянулись один за другим похожий до боли один на другого дни, если бы
подробнее...

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

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

megainformatic - Создание анимации вращающихся колес автомобиля

megainformatic - игра Нечто: Необъяснимое и в плену желаний

megainformatic - Основы 3D-анимации, экспорт скелетной анимации

megainformatic - Подготовка модели к использованию скелетной анимации

megainformatic - Продолжаем Создание скелета для данной модели

megainformatic - Построение ирерархических связей между объектами и основы 3d анимирования

megainformatic - Особенности экспорта моделей и анимации экспортером kWXPort080719 из 3ds max 2009 

megainformatic - Создание модели броневика (Хэд)

megainformatic cms e-mailer

megainformatic cms e-mailer

megainformatic cms e-mailer

Бесплатная Система Управления Вашим Сайтом - megainformatic cms free

megainformatic - Путешествие в мир 3d

megainformatic - Путешествие в мир 3d - страница 2

megainformatic - Путешествие в мир 3d - страница 3

megainformatic - Путешествие в мир 3d - страница 4

megainformatic - Путешествие в мир 3d - страница 5

megainformatic - Путешествие в мир 3d - страница 6

megainformatic - Создание модели броневика (Хэд) - Анимация вращения колес

megainformatic cms express files

megainformatic cms express files

megainformatic cms express files

megainformatic - Уроки Photoshop - Чудеса

megainformatic cms express files - Развертывание сайта на Вашем хостинге

megainformatic - Настольная игра "Веселый Буквоежка"

megainformatic - Уроки delphi directx 8.1

megainformatic - Уроки delphi directx 8.1 - Урок 1 - Введение в Delphi DirectX 8.1. Создание шаблона стартового приложения.

megainformatic - Уроки delphi directx 8.1 - Урок 1 - Введение в Delphi DirectX 8.1. Создание шаблона стартового приложения. Страница 2

megainformatic - Урок 2 Создаем и обрабатываем команды меню.

megainformatic - Урок 2 Создаем и обрабатываем команды меню. Страница 2

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 2

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 3

megainformatic - Урок 4 Построение класса приложения

megainformatic - Урок 4 Построение класса приложения - Страница 2

megainformatic - Урок 5 Построение классов игровых объектов и других необходимых классов

megainformatic - Урок 5 Построение классов игровых объектов и других необходимых классов - Страница 2

megainformatic - Урок 6 Игровая логика

megainformatic - Заметки по joomla - JFolder::create: Path not in open_basedir paths. Что это?

megainformatic cms express files - Добавление статей на сайт под управлением megainfromatic cms express files

megainformatic - Урок 7 2D-анимация

megainformatic - Урок 8 Загрузка/Сохранение текущей игры, режим паузы, режимы часов/будильника, запуск браузера Internet Explorer для показа сайта разработчика и других интернет-ресурсов

megainformatic - Урок 9 Тестирование и отладка приложения

megainformatic - Мои Музыкальные Миры

megainformatic - уроки Photoshop free

megainformatic cms express

megainformatic cms express

megainformatic cms express

megainformatic cms express files

megainformatic - Методы создания растровых изображений в Adobe Photoshop

megainformatic - Создание фотореалистичной текстуры травы

megainformatic - Рабочее пространство Adobe Photoshop

megainformatic - Бесшовные (тайловые) текстуры

megainformatic - Создание изображений огня, воды, неба

подробнее

     
 
megainformatic cms stat kit

Сайт под ключ + продвижение и полная аналитика посещаемости Вашего сайта - megainformatic cms stat kit

Для входа в админ-панель используйте логин: admin и пароль: admin

megainformatic cms stat kit - представляет Вам революционный подход к созданию, продвижению и аналитике посещаемости вашего сайта.

Систему отличает:

- компактность - объем дистрибутива не превышает 5 Mb;

- быстрота установки - всего 20 минут и Ваш сайт готов к работе;

Данная версия использует базы данных my sql.

Скопируйте все файлы на ваш хостинг и создайте базу данных - сайт готов к работе !!!

В комплект входят 7 готовых шаблонов внешнего вида вашего сайта, а также набор компонентов и модулей для административной и фронтальной частей сайта:

- модуль входа в административную часть сайта, разделение пользователей по ролям;
- модуль профилей пользователей;
- модуль панели управления (+меню);
- модуль добавления/редактирования страниц сайта;

а также модуль для продвижения сайта:

- мета;

компонент учета посещаемости и формирования отчётов о посещаемости - attendance.

 

Заказать megainformatic cms admin

 
     
 

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

Для решения этой задачи Вам предлагается - megainformatic cms stat kit

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

Разработанный компонент attendance ведет полный лог посещаемости ВСЕХ без исключения страниц вашего сайта и заносит эту информацию в файл.

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

megainformatic cms stat kit

Ввести

логин: admin и пароль: admin

И выбрать пункт меню

КОНТЕНТ > Посещаемость

После этого Вы попадаете на страницу где содержатся 3 кнопки:

log

per_date

per_date_sorted

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

 
     
 

Сайт под ключ, продвижение и аналитика Вашего сайта на базе - megainformatic cms stat kit

Особенности:

- компактность и быстрота в работе и развертывании сайта;

- открытый исходный код на php;

- быстрая и простая установка;

- подробное описание возможностей;

- может использоваться как самостоятельная система для управления сайтом, так и в полном составе megainformatic cms той версии которую вы используете или планируете использовать:

megainformatic cms admin

megainformatic cms seo

megainformatic cms express

megainformatic cms

megainformatic cms e-pro

megainformatic cms e-shop

megainformatic cms e-mailer

 
     
 

 

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

Имея дистрибутив, распакуйте его и скопируйте полученные файлы на свой хостинг. Создайте посредством phpMyAdmin базу данных и разверните базу данных сайта в соответствии с инструкцией.

Подробнее об установке на хостинг можно почитать здесь

Ваш сайт готов к работе !!!

 
     
     
 

Если возможности megainformatic cms stat kit, покажутся Вам недостаточными и Вы захотите чего-то большего - обратите внимание на следующие продукты -

megainformatic cms e-pro

 
     
  megainformatic cms e-shop  
     
  megainformatic cms e-mailer  
     
  Удачи вам в создании собственного виртуального интернет-пространства !!!  
     
     
     
подробнее

 

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008

Урок 1 Основные операторы языка C++

 
     
     
     
 

Данный небольшой урок является введением в программирование на C++ в MSVS 2008

Вам нужно иметь установленную среду Microsoft Visual Studio 2005 или 2008 (можно триал)

 
     
  [назад] [далее] [к содержанию]  
     
  Мы рассматриваем основные конструкции языка C++ на примере работы в Microsoft Visual Studio 2008  
     
  В предыдущем уроке мы создали небольшой калькулятор. Этот урок позволил нам бегло познакомиться с некоторыми из конструкций языка C++ и некоторыми функциями.  
     
 

Теперь пришло время начать освещение основных базовых конструкций языка C++ на конкретных примерах

Основные операторы (statements) языка - этой теме посвящен следующий раздел MSVS 2008 Documentation (далее просто Help) - Development Tools and Languages > Visual Studio > Visual C++ > Reference > C/C++ Languages

- использование операторов помеченных меткой;

- построение выражений;

- пустой оператор;

- операторы наполнения (логические скобки);

- операторы выбора (ветвлений);

- операторы организации циклов;

- операторы перехода (передачи управления);

- операторы объявления переменных;

- операторы обработки исключений;

 
     
 

- использование операторов помеченных меткой;

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

Пример из MSVS 2008 Help

// labels_with_goto.cpp
// compile with: /EHsc
#include <iostream>
int main() {
using namespace std;
goto Test2;

cout << "testing" << endl;

Test2:
cerr << "At Test2 label." << endl;
}

 
     
 

данный пример рассчитан на консольное приложение. Как видим в отличие от delphi метка не требует предварительного объявления. Достаточно лишь указать допустимый идентификатор метки (Слово начинающееся с буквы) и закончить его двоеточием указав в нужном месте программы. Метка всегда указывает на исполнимый оператор! Даже если в этом месте будет записана строка комментария например так -

Test2:

//
cerr << "At Test2 label." << endl;

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

 
     
 

- построение выражений;

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

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

Примеры выражений:

coord_x = coord_x + 10 * MoveSpeed * TimeCounter;

absc2 = sqrt( abs ( c1 ) );

 
     
 

- пустой оператор;

Это строка содержащая лишь точку с запятой, т.е.

;

 
     
 

- операторы наполнения (логические скобки);

это пара фигурных скобок { и }. Применяется как блок операторов там, где вместо одного оператора нужно использовать целую группу. Блок может не содержать ни одного оператора вообще, тогда это просто пустой блок.

Пример:

if( Amount > 100 )
{

cout << "Amount was too large to handle\n";
Alert();

}
else

Balance -= Amount;

Все переменные объявленные внутри блока без префикса static являются локальными для данного блока.

 
     
 

- операторы выбора (ветвлений);

оператор switch - оператор ветвлений

мы уже сталкивались с этим оператором в предыдущем уроке, когда писали пример простейшего калькулятора

форма записи этого оператора

switch ( expression )
case constant-expression : statement
[default : statement]

выражение в скобках должно давать целочисленный результат

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

блок кода при default выполняется когда значению выражения не соответствует ни одна строка с оператором case

Пример:

// switch_statement2.cpp
// C2360 expected
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
switch( tolower( *argv[1] ) )
{
// Error. Unreachable declaration.
char szChEntered[] = "Character entered was: ";

case 'a' :
{
// Declaration of szChEntered OK. Local scope.
char szChEntered[] = "Character entered was: ";
cout << szChEntered << "a\n";
}
break;

case 'b' :
// Value of szChEntered undefined.
cout << szChEntered << "b\n";
break;

default:
// Value of szChEntered undefined.
cout << szChEntered << "neither a nor b\n";
break;
}
}


заметьте, что в каждом блоке кода оператора case, а также в блок default применяется оператор break. Он позволяет закончить исполнение оператора switch, в противном случае может быть дополнительно выполнен блок кода в ветви default. Если это действительно требуется, то оператор break не нужен, в противном случае его нужно применять всегда!

Если Вы программировали на Delphi, то заметите, что аналогом оператора switch в delphi является оператор case. Т.е. switch в C++ и case в Delphi это одно и то же. Отличия состоят в синтаксисе, наличие строки default (в C++) и применении оператора break (в C++).

к операторам выбора также относится оператор условия if

if ( expression )
statement1
[else
statement2]

как видим он похож на использование оператора if в delphi, с тем лишь отличием, что слово then не используется.

Пример:

// if_else_statement.cpp
#include <stdio.h>

int main() {
int x = 0;
if ( 1 ) // if statement #1
// {
if ( !x ) // if statement #2
printf_s("!x\n");
else // paired with if statement #2
printf_s("x\n");
// }
}

существенное отличие оператора if в C++ состоит в том, что выражение при if может принимать не логические значения (тип boolean), а целые - 0 и 1. Нулю соответствует логический FALSE (ложь), единице TRUE - истина.

Поэтому в C++ аналогом delphi-конструкции

if SomeObject <> nil then {...}

else {...};

будет являться

if SomeObject

{

}

else

{

}

 
     
 

- операторы организации циклов;

служат для выполнения одной и той же группы операторов итеративно.

Различают циклы с предусловием while, пост условием do и цикл с заданным количеством итераций for

while ( expression )
statement

в цикле while группа операторов statement выполняется пока значение выражения expression не достигнет нуля

Пример:

кусок кода на delphi7

aCurrentCharnum := 0;
SomeParamStr = 'param1; param2;';
ParamDelimeter = ';';
ParamStr := '';
while aCurrentStr[aCurrentCharnum] <> ParamDelimeter do begin
ParamStr := ParamStr + aCurrentStr[aCurrentCharNum];
Inc(aCurrentCharNum);
end;

при условии, что требуемые переменные объявлены, на C++ будет выглядеть так

int aCurrentCharnum = 0;
String^ SomeParamStr = L"param1; param2;";
Char ParamDelimeter = ';';
String^ ParamStr = L"";
String^ aCurrentStr = SomeParamStr;
while (aCurrentStr[aCurrentCharnum] != ParamDelimeter)
{
ParamStr = ParamStr + aCurrentStr[aCurrentCharnum];
aCurrentCharnum++;
}

 
     
  Обязательно напишите и проверьте работу этого кода в приложении наподобие HelloWorldCLR  
     
 

оператор цикла с пост-условием do

do
statement
while ( expression ) ;

оператор do является аналогом цикла repeat..until в delphi

Пример:

int i = 0;
String^ SomeStr = L"";

do
{
SomeStr = SomeStr + Convert::ToString(i);
i++;
} while (i < 3);
button1->Text = SomeStr;

по нажатию на кнопку на ее поверхности выводится 012

 
     
 

цикл for

for ( init-expression ; cond-expression ; loop-expression )
statement

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

Кратко же использование цикла for выглядит так -

Пример:

String^ SomeStr = L"";

for (int i = 0; i<5; i++)
{
SomeStr = SomeStr + Convert::ToString(i);
}
button1->Text = SomeStr;

на поверхности кнопки появляется текст 01234

 
     
 

- операторы перехода (передачи управления);

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

break, continue, return, goto

оператор break аналогичен оператору break в delphi - служит для немедленного выхода из цикла for, while и do, кроме того используется для выхода из ветви оператора switch (в delphi для этих целей не применяется)

оператор continue аналогичен оператору continue в delphi - служит для немедленного перехода к следующей итерации цикла for, while и do

оператор return

return [expression]

служит для возврата из функции или процедуры. Если выполняется возврат из функции, то значение выражения expression возвращается в качестве результата. Для функций void (процедур) никакого результата не возвращается.

Для возврата из процедуры (функция с результатом void) специального вызова return не требуется. Выполнение процедуры будет закончено там, где кончаются ее логические скобки.

оператор goto служит для безусловной передачи управления на указанную метку -

goto identifier ;

Примеры:

для корректного выполнения примера в приложении Windows Forms добавьте на форму поле ввода textBox1

int somenum = Convert::ToInt32(textBox1->Text);

for (int i = somenum; i < (somenum+3); i++)
{
if (i == (somenum+1))
{
textBox1->Text = Convert::ToString(i);
break;
}
}

данный код добавьте в обработчик нажатия на кнопку button1 размещенную на форме Form1

по нажатию на кнопку в поле textBox1 вместо введенного значения появляется значение на 1 большее

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

// continue_statement.cpp
#include <stdio.h>
int main()
{
int i = 0;
do
{
i++;
printf_s("before the continue\n");
continue;
printf("after the continue, should never print\n");
} while (i < 3);

printf_s("after the do loop\n");
}

пример с использованием continue показывает как строка after the continue, should never print никогда не будет выведена на консоль

// return_statement2.cpp
#include <stdio.h>

int max ( int a, int b )
{
return ( a > b ? a : b );
}

int main()
{
int nOne = 5;
int nTwo = 7;

printf_s("\n%d is bigger\n", max( nOne, nTwo ));
}

пример функции выбора максимального числа из двух заданных

// goto_statement.cpp
#include <stdio.h>
int main()
{
int i, j;

for ( i = 0; i < 10; i++ )
{
printf_s( "Outer loop executing. i = %d\n", i );
for ( j = 0; j < 2; j++ )
{
printf_s( " Inner loop executing. j = %d\n", j );
if ( i == 3 )
goto stop;
}
}

// This message does not print:
printf_s( "Loop exited. i = %d\n", i );

stop:
printf_s( "Jumped to stop. i = %d\n", i );
}

а это был пример использования оператора goto

 
     
  в следующем уроке мы рассмотрим операторы объявления переменных и обработки исключений  
     
  [назад] [далее] [к содержанию]  
подробнее

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

При создании 2D-анимации нужно учитывать следующие моменты:

- покадровое размещение анимированного изображения нужно производить в файле формата bmp, tga или dds. jpg для этих целей не подойдет, т.к. из-за сжатия возможно появление посторонних пикселей в тех местах изображения, где должен быть прозрачный фон;

- текстура обязательно должна быть квадратной и лучше одного из типовых размеров - 32х32, 64х64, 128х128, 256х256, 512х512, 768х768, 1024х1024 пикселя, если не учесть этот момент, то будут наблюдаться сдвиги картинки в кадре;

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

 
Если Вы не совсем понимаете в чём состоит суть создания анимации, то советую сначала прочесть статью Создаем анимацию хотьбы волка в Photoshop и ImageReady
 
Для того, чтобы использовать такие анимированные изображения в игре можно воспользоваться классом TD3DImage2D, в который были добавлены возможности для анимирования.
 

Для использования класса TD3DImage2D нужно выполнить следующие шаги

в секцию uses кода модуля, в котором Вы будете использовать данный класс добавить ссылку на модуль D3DGUI.pas (если Вы её еще не добавили, если же Вы уже используете в коде данный класс, пусть даже не для анимированных изображений, то естественно вторично добавлять ссылку в uses не нужно)

 

 

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

в папку Media\Textures\scene1 копирую нужный мне файл adgezio_indicator.tga

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

const

{...}

DesiresIndicatorTexture = 'Media\Textures\scene1\adgezio_indicator.tga';

В класс D3D-приложения, например TD3DGameApp добавляю новое поле -

DesiresIndicatorImage: TD3DImage2D;

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

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

В методе конструктора класса (в моем проекте это TGameScene7Title.Create)

DesiresIndicatorImage := nil; //данный шаг необязателен, т.к. в экземпляре класса все указатели первоначально //инициализируются в nil, но данная строка кода явно демонстрирует этот шаг в коде

в методе загрузки объектов игровой сцены (или инициализации класса) выполняем загрузку текстуры из файла -

TGameScene7Title.LoadMiniGame2

{...}

DesiresIndicatorImage := TD3DImage2D.Create(g_d3dApp.m_d3dfmtTexture);
if DesiresIndicatorImage = nil then Exit;
hr := DesiresIndicatorImage.InitDeviceObjects(m_pd3dDevice, DesiresIndicatorTexture);
if Failed(hr) then Exit;

в методах реставрации (Restore), инвалидации (Invalidate) и освобождения (Free) нужно добавить соответствующий код -

TGameScene7Title.RestoreMiniGame2

{...}

if DesiresIndicatorImage <> nil then
DesiresIndicatorImage.RestoreDeviceObjects;

TGameScene7Title.InvalidateMiniGame2

{...}

if DesiresIndicatorImage <> nil then
DesiresIndicatorImage.InvalidateDeviceObjects;

TGameScene7Title.FreeMiniGame2

{...}

SAFE_DELETE(DesiresIndicatorImage);

 

Эти операции относятся к любому объекту класса TD3DImage2D не зависимо от того, будет ли он анимированным или статичным.

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

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

TGameScene7Title.LoadMiniGame2

{...}

DesiresIndicatorImage.Width := 70;
DesiresIndicatorImage.Height := 16;
DesiresIndicatorImage.TextureOffsetX := 0;
DesiresIndicatorImage.TextureOffsetY := 128;
DesiresIndicatorImage.Frame := 0;
DesiresIndicatorImage.FramesPerLine := 3;
DesiresIndicatorImage.Delay := 10;
DesiresIndicatorImage.fMaxFrame := 5;

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

 

в методе рисования сцены нужно добавить рисование анимированного или статичного изображения -

TGameScene7Title.DrawMiniGame2

{...}

DesiresIndicatorImage.DrawScaled(-1.0, 1.0, 0.9, 0.35, 0.35,
DrawD3DImage2D_Filtered, 255, True);

Обратите внимание, что для анимированных изображений вызывается функция рисования DrawScaled с новым параметром True, который необходим для анимированных изображений и определяет корректную выборку кадров

 

в методе анимирования сцены нужно добавить 2 строки кода -

TGameScene7Title.AnimMiniGame2

{...}

FTimeLapsed := DXUtil_Timer(TIMER_GETELAPSEDTIME);

DesiresIndicatorImage.FrameMove(FTimeLapsed);

первая строка потребует, чтобы Вы объявили FTimeLapsed: Single; внутри класса игровой сцены и производит запрос интервала времени прошедшего с последнего вызова от системного таймера

вторая строка кода передает полученный интервал в метод анимирования изображения. если Вы используете подвижный спрайт, то Вам лучше описать его в виде отдельного класса, а его перемещение по экрану реализовать внутри его метода анимации или так как это выполнено в игре "Ну, Погоди!". В её коде для анимационного ролика создан отдельный модуль GameCartoonScript.pas и отдельный класс TGameCartoon. Внутри него и происходит всё самое интересное касающееся реализации анимации 2D-спрайтов.

 

Теперь приведем пример кода, который можно использовать для одновременной анимации множества подобных объектов.

В методе анимации TGameScene7Title.AnimPauseScreen

{...}

for i := 0 to StarsNum-1 do begin
StarsImage.Delay := Stars[i].Delay;
//заносим текущую скорость в экземпляр TD3DImage2D
StarsImage.Frame := Stars[i].Frame;
//а также номер текущего кадра
StarsImage.FrameMove(FTimeLapsed);
//выполняем анимацию
Stars[i].Frame := StarsImage.Frame;
//запоминаем новый текущий кадр в данных игрового объекта
end;

В методе рисования TGameScene7Title.DrawStars;

for i:= 0 to StarsNum-1 do begin
StarsImage.Frame := Stars[i].Frame;
//заносим текущий кадр в экземпляр TD3DImage2D
StarsImage.DrawScaled(Stars[i].vPos.x,
//выполянем рисование данного текущего кадра
Stars[i].vPos.y, 0.9,
Stars[i].Size, Stars[i].Size, DrawD3DImage2D_Filtered,
Stars[i].Alpha, True);
end;

 
Как видите всё достаточно просто, нужно лишь запоминать данные об текущем кадре и скорости анимации в каждом игровом объекте. Для сильно различающихся по свойствам игровых объектов (в частности использующих разные экземпляры TD3DImage2D) конечно же лучше использовать производные классы.
 
В следующем уроке Вы узнаете как реализовать многие из особенностей игрового проекта, которые не имеют прямого отношения к самому игровому процессу, но являются важной частью любого игрового приложения - режимы сохранения/загрузки текущей игры, специфичные режимы игры "Ну, Погоди!", запуск браузера для отображения сайта разработчика или другого интернет-ресурса.
 
 
 
[назад] [страница 1] [далее] [к содержанию]
 
     
     
     
     
подробнее

megainformatic cms admin files

Административная часть сайта и основа вашей будущей социальной сети - megainformatic cms admin files

Для входа в админ-панель используйте логин: admin и пароль: 123456

megainformatic cms admin files - это простое, быстрое и очень компактное решение для создания первого вашего сайта. Данная версия не использует базы данных my sql. Система достаточно компакта и проста в установке.

Очень проста в установке - достаточно вам скопировать все файлы на ваш хостинг и сайт готов к работе !!!

В комплект входят 3 готовых шаблона, и набор модулей для административной части сайта:

- модуль входа в административную часть сайта, разделение пользователей по ролям;
- модуль профилей пользователей;
- модуль панели управления (+меню);

также модули основной части сайта:

- модуль поиска;

- модуль карты сайта;

 

Стоимость: 250 руб.

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

Представляем вам - megainformatic cms admin files

Она проста, компактна и надежна в использовании.

Это -

Административная часть сайта и основа вашей будущей социальной сети - megainformatic cms admin files

Особенности:

- очень компакта и быстра в работе и развертывании сайта;

- открытый исходный код на php;

- быстрая и простая установка;

- подробное описание возможностей;

- может использоваться как самостоятельная система для управления сайтом, так и в полном составе megainformatic cms той версии которую вы используете или планируете использовать:

megainformatic cms express

megainformatic cms

megainformatic cms e-pro

megainformatic cms e-shop

megainformatic cms e-mailer

Нет ничего проще, чтобы реализовать ваш личный сайт. Получив в своё распоряжение эту систему Вы получаете собственный готовый сайт и панель управления этим сайтом.

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

Ваш сайт готов к работе !!!

Если возможности megainformatic cms admin files, вам кажутся ограниченными и Вы хотите чего-то большего - обратите внимание на следующие продукты -

megainformatic cms e-pro

megainformatic cms e-shop

megainformatic cms e-mailer

или другие продукты

megainformatic cms social megainformatic cms groupon megainformatic cms rs Уроки php и создания сайтов
Модуль галерей для любой cms Поддержка сайтом нескольких языков megainformatic cms seo megainformatic cms express
Удачи вам в создании собственного виртуального интернет-пространства !!!

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

Видео баннер может быть разработан нами, а также размещен через наш сервис ротации видео баннеров.

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

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

Если вам нужно разработать и/или разместить свой видео-баннер 800х128 mp4 оставьте сообщение через форму Оставить комментарий или напишите по одному из контактов.

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

Также имеется возможность размещать обычные gif или jpg баннеры. Подробнее об этом.

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

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

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



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


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