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


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

megainformatic - Автотелега фильтр
Автотелега фильтр   jwplayer("mediaplayer").setup({ flashplayer: "projects/flv/player.swf", file: "t/misc/2014/opencart/filter/avtotelega_recomenduemie.mp4", image: "t/misc/2014/opencart/filter/images/avtotelega_recomenduemie.jpg" });
подробнее...

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

megainformatic - ГАЛЕРЕЯ 3D-моделей

megainformatic - СОЗДАНИЕ МАКЕТА ПОМЕЩЕНИЯ

megainformatic - Создание макета помещения - этап 2

megainformatic - МОДЕЛИРОВАНИЕ НА УРОВНЕ МНОГОУГОЛЬНИКОВ

megainformatic - СОЗДАНИЕ ПРЕДМЕТОВ ОБСТАНОВКИ ПОМЕЩЕНИЯ

megainformatic - Моделирование обстановки помещения

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

подробнее

       
 

Урок 1: Сэмпл/Паттерн/Композиция

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

Описывается создание сэмплов в Sound Forge и их использование для создания композиции в ModPlug Tracker 1.16  
       
 

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

 

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

L1,0 - длина сэмпла (length) 1,0 секунд;

Op1 - номер оператора;

1+2 или 3>2>1 - схема взаимодействия операторов 1+2 - одновременное звучание (по схеме номер 2); 2>1 - модулирование - когда 2 модулирует 1.

Op1: P1_60at0/P2_30at1/A77,62/Sin/Fq1,00/Fb0/ - параметры текущего оператора (Op1) - P1_60at0 - point 1 со значением громкости 60% в позиции 0, A - Amplifing, Wave Form - Sin, Fq - Frequence, Fb - Feedback,

 
   

 

 
 

Создадим сэмпл под названием "армия шагающих роботов" - robsarmp.wav

Для этого запустите Sound Forge, создайте новый файл с качеством 44,1 KHz, 16 бит, моно. Вызовите редактор FM-синтезатора - Instruments > Synth > FM.

В окне параметров задайте:

L1,0/3>2>1/Op1:/P1_100at0/P2_100at1/A77,62/Sin/Fq1,00/Fb0/

Op2: P1_25at0/P2_100at0,5/P3_25at1/A72,44/Sin/Fq8/Fb0/

Op3: P1_100at0/P2_42at0,228/P3_19at0,638/P4_19at1/A54,95/Sin/Fq10/Fb0

 
       
 

Испорченный механизм - badmechd.wav

L1,0/2>1/Op1:/P1_100at0/P2_25at1/A77,62/Sin/Fq7000/Fb0/

Op2: P1_25at0/P2_8at0,5/P3_25at1/A72,44/Square/Fq900/Fb0/

 

 
       
 

Синто гонг - sintgong.wav

 

L1,0/2>1/Op1:/P1_100at0/P2_25at1/A77,62/Sin/Fq10/Fb0/

Op2: P1_25at0/P2_46at0,172/P3_25at1/A72,44/Square/Fq100/Fb0/

 
       
 

Легкое напряжение - lightpow.wav

L1,0/1+2+3/Op1:/P1_19at0/P2_66at0,25/P3_39at0,54/P4_25at1/

A68,39/Sin/Fq330/Fb0/

Op2: P1_25at0/P2_7at0,168/P3_25at1/A81,28/Square/Fq340/Fb0/

Op3: P1_5at0/P2_43at0,23/P3_19at0,638/P4_19at1/A7,33/Sin/Fq1000/Fb0

 
       
 

Пошаговый бас - stepbass.wav

L0,4/2>1/Op1:/P1_25at0/P2_96at0,04/P3_3at0,156/P4_0at0,4/

A100/Sin/Fq1/Fb0/

Op2: P1_85at0/P2_39at0,248/P3_0at0,4/A81,28/Square/Fq20/Fb0/

 

 
       
  Simple drum - simpdrum.wav

L0,4/2>1/Op1:/P1_88at0/P2_3at0,156/P3_0at0,4/A100/Sin/Fq1/Fb0/

Op2: P1_100at0/P2_41at0,073/P3_0at0,4/A100/Sin/Fq60/Fb0/

 
       
 

Aircraft and Svirel - acnsvirl.wav

L2/(2>1)+3/Op1:/P1_100at0/P2_100at2/A100/Sin/Fq1/Fb0/

Op2: P1_100at0/P2_100at2/A100/Sin/Fq100/Fb0/

Op3: P1_3at0/P2_43at0,456/P3_19at1,276/P4_20at2/A27,23/Sin/Fq600/Fb30,7

 

 
       
 

Теперь попробуем испытать созданные сэмплы в деле - запустите ModPlug Tracker 1.16, создайте новую композицию и загрузите сэмплы в нее.

 

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

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

 
       
  Используя загруженные сэмплы создайте какой-либо мотив. Пример работы - Фаза 1 - "Мотив" можно скачать здесь.  
       
  Пояснения: Чтобы создать размер страницы паттерна длиной 48 строк - нажмите кнопку кнопка Pattern Properties на вкладке Patterns, в появившемся диалогово окне задайте нужное количество строк.  
       
  Для изменения темпа композиции Перейдите на вкладку General и в группе Initial Settings (Первоначальные установки) в поле Tempo задайте требуемый темп (bpm - bit per minet - ударов в минуту), в поле Speed - скорость нот (другая составляющая общего темпа). Таким образом темп композиции складывается из двух составляющих - Tempo и Speed. Эти два параметра и определяют общий темп композиции. Почему их два? Можете рассматривать их в следующем ракурсе - Tempo - это как бы более грубая (общая) настройка темпа в ударах в минуту, а Speed - скорость воспроизведения нот - более тонкая настройка скорости.  
       
  Для создания новой нотной страницы (паттерна) на вкладке Patterns нажмите кнопку кнопка Insert Pattern  
       
  При экспериментах с сэмплами во время создания композиции Вы, возможно, обнаружите, что созданный Вами сэмпл похож на какой-то иной звук или инструмент и его использование гораздо шире. Это и понятно! Ведь в Sound Forge мы создаем и проигрываем сэмпл только на одной скорости (с заданной частотой дискретизации), а при использовании в трэкере мы можем прослушать весь диапазон нот даваемых сэмплом. Это и позволит нам услышать в нашем сэмпле нечто новое.  
       
  Теперь нужно развить идеи заложенные в мотиве. Этим мы займемся в следующем уроке  
       
  [Предыдущий урок] [Следующий урок] [Все уроки]  
подробнее

     
     
  Добро пожаловать в систему управления сайтом megainformatic cms !  
     
 

При помощи данной системы Вы сможете создать и поддерживать собственный сайт.

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

 
     
 

1) Создание эскиза и макета страницы сайта;

2) Верстка созданного макета;

3) Добавление модулей, обеспечивающих функционал;

4) Основы добавления контента на сайт, управления и поддержки сайта;

5) Проверка работы сайта, установка на хостинг;

6) Основы продвижения созданного сайта;

 
     
  7) Создание шаблонов;  
     
  8) Создание интернет-магазина  
     
     
подробнее

     
 
Урок 3 Оконный и полноэкранный режимы работы D3D-приложения
 
О том, что потребуется для данного урока читайте в основном разделе - уроки delphi directx 8.1
 
Далее у читателя подразумевается наличие базовых знаний языка Delphi.
 
[назад] [страница 3] [далее] [к содержанию]
 
Ответим на вопросы заданные на предыдущей странице
 
Судя по исходному коду оригинальных примеров из DXSDK8, 9 правильно вызывать Clear до BeginScene ... EndScene, а не между этими методами. Возможно это влияет на производительность. Для простых примеров это может быть и не заметно, но в "тяжелых" приложениях это возможно даст некоторый прирост.
 

Ответ на второй вопрос:

procedure CMyD3DApplication.DrawGameScene;
begin
if backImage <> nil then
{backImage.Draw2(0, 0, 0, 0.83, 1,
DrawD3DImage2D_Filtered, 255);}

backImage.Draw(DrawD3DImage2D_Filtered, 255);

end;

теперь остается выяснить почему не работает backImage.Draw2

 

 

Если выполнить отладку и заглянуть в модуль D3DGUI.pas метод function TD3DImage2D.Draw2(x, y, z: Single; fXScale, fYScale: Single;
Flags: Cardinal; Alpha: Byte; UsePatterns: Boolean = False): HResult;

то, видно, что структура vp: TD3DViewport8;

при вызове метода m_pd3dDevice.GetViewport(vp);

дает совершенно необъяснимые размеры окна Viewport

Если протестировать вызов данного метода в коде примера VCLTex модуль VCLTexUnit.pas внутри метода CMyD3DApplication.InitDeviceObjects

то результат будет тот же.

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

Та же проблема при выводе масштабируемого текста D3DFont.pas CD3DFont.DrawTextScaled

Почему же в примере FullscreenMode всё работает как надо?

 

 

Ответ на этот вопрос Вы найдете проработав наш следующий - 4 урок, посвященный разработке класса D3D-приложения.

А коротко ответ на него звучит так -

 

модуль D3DApp.pas, метод CD3DApplication.Initialize3DEnvironment

// Create the device
{//**
hr := m_pD3D.CreateDevice(m_dwAdapter, pDeviceInfo^.DeviceType,
m_hWndFocus, pModeInfo^.dwBehavior, m_d3dpp,
m_pd3dDevice);
}

hr := m_pD3D.CreateDevice(m_dwAdapter, pDeviceInfo^.DeviceType,
m_hWndFocus,
D3DCREATE_HARDWARE_VERTEXPROCESSING,
m_d3dpp,
m_pd3dDevice);

В чём же причина? Если заглянуть в документацию по DirectX 8 ,то в описании IDirect3D8::CreateDevice вы найдете список значений параметра BehaviorFlags

среди них D3DCREATE_PUREDEVICE = $10; и D3DCREATE_HARDWARE_VERTEXPROCESSING = $40; именно то значение, которое имеет данный флаг если использовать строку кода, которая показана закомментированной (зеленого цвета)

Приведенный чуть ниже код исправляет данный недостаток! Причина объяснена в документации по DirectX 8 -

D3DCREATE_PUREDEVICE
Specifies that Direct3D does not support Get* calls for anything that can be stored in state blocks. It also tells Direct3D not to provide any emulation services for vertex processing. This means that if the device does not support vertex processing, then the application can use only post-transformed vertices.

Т. е. установка данного флага не позволяет вызывать методы Get* и требует использования только пост-трансформированных вершин. Метод GetViewport как раз и не выдает при этом нужной информации!

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

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) .





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



107 океан


просмотров: 546




106 океан


просмотров: 552




105 ria pc game темная сторона


просмотров: 10035




104 ria pc game видеообзор игры часть 9


просмотров: 10036


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

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



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


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