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


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

megainformatic - preg_match или Использование регулярных выражений в php
Использование регулярных выражений в php [к содержанию] Здравствуйте ! Сегодня мы займёмся изучением regexp - регулярных выражений в языке php. Вашему вниманию предлагается статья Артемьева Сергея, которую я нашел на сайте - по материалам статьи: http://on-line-teaching.com/php/regexp.htm автор: Артемьев
подробнее...

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

megainformatic Создание игры на fle game engine - Simple game - страница 4 - Код - Настройка параметров Scene Editor fge и написание кода для вывода спрайта шарика в вашем первом игровом приложении / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 5 - Отображаем прыгающий шарик, узнаем как задается для спрайта его центр и знакомимся с векторной системой координат / Пример простой игры

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

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

megainformatic Создание игры на fle game engine - Simple game - страница 8 - Закрываем часть сцены от пустот при помощи черной текстуры с прорезью, ограничиваем перемещение сцены / Пример простой игры

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

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

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

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

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

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

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

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

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

Something: Unexplained 2 captive of desires

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pencil, Paper and the Ball PC game

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

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

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

Pencil, Paper and the Ball PC game

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

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

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

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

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

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

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

We all live in a yellow submarine !

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

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

Ria PC game

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

ria pc game история

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

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

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

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

megainformatic страница 577

подробнее

       
 

Урок 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 мы создаем и проигрываем сэмпл только на одной скорости (с заданной частотой дискретизации), а при использовании в трэкере мы можем прослушать весь диапазон нот даваемых сэмплом. Это и позволит нам услышать в нашем сэмпле нечто новое.  
       
  Теперь нужно развить идеи заложенные в мотиве. Этим мы займемся в следующем уроке  
       
  [Предыдущий урок] [Следующий урок] [Все уроки]  
подробнее

     
  [статьи] [как создать игру ну, погоди!] [к содержанию] [scene2game] [donuts3d]  
     
  Теоретические и практические основы создания 3d игр  
     
 

Предисловие

Те кто впервые сталкивается с программированием 3D-графики могут встретить ряд трудностей, а именно - теоретические и практические пробелы в знаниях. Данный цикл статей призван восполнить эти пробелы и помочь тем, кто решил заняться освоением DirectX. Примеры даны применительно к Delphi 6-7.

 

Основы теории векторов

Вектор - направленный отрезок, имеющий направление и длину. Задается триадой чисел (x, y, z). Причем начало вектора - это центр системы координат - (0, 0, 0), а конец вектора как раз указанная тройка чисел.

 

Длина вектора - обозначается |a|, вычисляется как

|a| = Sqrt(Sqr(ax) + Sqr(ay) + Sqr(az)),

где ax, ay, az - соответствующие координаты вектора, Sqrt - функция вычисления квадратного корня, Sqr - вычисление квадрата числа. В DirectX для вычисления длины вектора используется функция D3DXVec3Length;

 

Сложение векторов - если a и b векторы, то

a + b = c.

Можно также записать

a + b = (ax + bx, ay + by, az + bz);

Результат операции - вектор c. В DirectX для сложения векторов используется функция D3DXVec3Add; Графически сложение векторов можно представить так:

 
 
сложение векторов
 
 

Вычитание векторов:

с - a = b;

c - a = (cx - ax, cy - ay, cz - az);

Результат операции - вектор b. В DirectX для вычитания векторов используется функция D3DXVec3Sub;

 
 
вычитание векторов
 
 

Скалярное произведение векторов (dot product) - произведение длин этих векторов на Cos угла между ними. Другими словами скалярное произведение векторов - это длина проекции вектора a на вектор b (при условии, что вектор b - единичный).

a . b = |a||b|cos d;

или

a . b = axbx + ayby + azbz;

В DirectX для скалярного произведения векторов используется функция D3DXVec3Dot;

 
 
скалярное произведение векторов

Следствие: d - угол между двумя векторами:

cos d = a . b /(|a||b|);

 

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

Обозначим искомый вектор как c, тогда

Normalize(a) = a / |a|; В DirectX для нормализации векторов используется функция D3DXVec3Normalize;

c = (Normalize(a) . b)*Normalize(a);

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

Умножение вектора на вектор (cross product) - умножая вектор a на вектор b, мы получим вектор, перпендикулярный плоскости, которую определяют вектора a и b.

a x b = (aybz - byaz, azbx - bzax, axby - bxay);

Смысл выражения записанного в скобках следующий: в плоскостях YZ, ZX и XY производится векторное вычитание проекций указанных двух векторов на эти плоскости, так находятся 3 новых результирующих проекции которые и определяют координаты нового результирующего вектора.

На рисунке ниже показаны проекции (чтобы не усложнять рисунок). Предполагается, что концы векторов A и B лежат на поверхности единичной сферы (т.е. их длины равны 1).

 
векторное произведение векторов (Unit sphere - единичная сфера радиусом = 1)
 

Фактически, таким образом находится вектор нормали к полигонам. В DirectX для векторного произведения 2х векторов используется функция D3DXVec3Cross;

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

Пусть векторы A и B - единичные векторы лежащие на осях координат X и Y соответственно, т.е.

A(1, 0, 0), B(0, 1, 0),

тогда их векторное произведение даст - A x B = (AyBz-ByAz, AzBx-BzAx, AxBy-BxAy) = (0*0-1*0, 0*0-0*1, 1*1-0*0)=(0, 0, 1), т.е. единичный вектор лежащий на оси Z.

Всё правильно.

 
Это было немного теории, переходим к практике - [Основы управления камерой]
 
О кватернионах
 
     
  [статьи] [как создать игру ну, погоди!] [к содержанию] [scene2game] [donuts3d]  
     
     
     
     
     
подробнее

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

Как создать игру ? - Программируем сами.

Рассмотрение программирования игр под DirectX 9c на C++ с использованием среды разработки MSVS 2005 или выше.

 
     
  [содержание] [назад] [страница 1] [далее]  
     
  Vertices - Вершины - страница 1  
     
 

Итогом вставки новой созданной иконки должно стать для Вас сохранение изменений в проект (кнопка Save All на панели инструментов MSVS) и выполнением сборки проекта - по клавише [F7]. Еще раз напомню, что для сборки отладочной версии Debug нужно выбрать соответствующую конфигурацию проекта - в панели инструментов есть соответствующий выпадающий список.

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

 
     
 

Если Вы уже вдоволь наигрались с проектом CreateDevice - сохраняем все внесенные изменения и закрываем проект File > Close Solution.

Переходим к примерам Vertices, Matrices, Lights, Textures, Meshes

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

В примере Vertices рассматривается как работать с вершинами в 3d-пространстве.

Теперь уже наше приложение будет выполнять более полезную работу - выведет на экран разноцветный треугольник.

 
     
  пример Vertices  
     
  По сравнению с предыдущим примером CreateDevice здесь уже рассматривается как создается и инициализируется вершинный буфер для модели треугольника. Треугольник хоть и плоский, но это уже модель, в примере Matrices показано как создать его вращение вокруг своей оси (по оси Y).  
     
 

Функция wWinMain включает использование новой функции -

// Create the vertex buffer
if( SUCCEEDED( InitVB() ) )
{

//...

}

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

// Enter the message loop
MSG msg;
ZeroMemory( &msg, sizeof( msg ) );
while( msg.message != WM_QUIT )
{
if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
Render();
}

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

 
     
 

Функция InitVB

HRESULT InitVB()
{
// инициализируем вершины создаваемого треугольника

//заметьте, что цвет каждой вершины в формате AARRGGBB задается именно здесь!

//о формате задания цвета и определении конкретного цвета мы говорили в уроке - CreateDevice страница 2
CUSTOMVERTEX vertices[] =
{
{ 150.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color
{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ff00, },
{ 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },
};

// Создаем вершинный буфер. Здесь мы выделяем достаточно памяти для вершин
// (из буфера по-умолчанию) для хранения 3 вершин в собственном формате. Мы также
// определяем FVF, так что вершинный буфер знает, какие данные он хранит.

if( FAILED( g_pd3dDevice->CreateVertexBuffer( 3 * sizeof( CUSTOMVERTEX ),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )
{
return E_FAIL;
}

// Теперь мы заполняем вершинный буфер. Для этого вызываем Lock() для VB
// для получения доступа к вершинам. Этот механизм необходим, поскольку
// буферы могут располагаться в памяти графического адаптера.

VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof( vertices ), ( void** )&pVertices, 0 ) ) )
return E_FAIL;
memcpy( pVertices, vertices, sizeof( vertices ) );
g_pVB->Unlock();

return S_OK;
}

 
     
 

Функция Cleanup теперь включает освобождение объекта вершинного буфера.

Функция Render включает новый код для рисования модели треугольника -

// начало сцены
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
// Рисуем треугольник из вершин в буфере. Процесс включает несколько

// шагов. Мы передаем вершины в поток, поэтому первое - это определение
// источника для этого потока, это и есть наш вершинный буфер. Затем
// нам нужно позволить D3D узнать какой вершинный шейдер использовать.

// Полнофункциональные, настраиваемые вершинные шейдеры - это
// отдельная тема для разговора, но в большинстве случаев вершинный шейдер -
// просто FVF (Flexible Vertex Format), так что D3D узнает какой тип вершин
// мы применили. Наконец, Мы вызываем функцию DrawPrimitive() которая

// выполняет фактическое рисование
// нашей геометрии (в данном примере - всего лишь 1 треугольник).

g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof( CUSTOMVERTEX ) );
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );

// конец сцены
g_pd3dDevice->EndScene();
}

 
     
  Функция MsgProc не включает обработки сообщения WM_PAINT, потому что все d3d-приложения должны выполнять отрисовку находясь в состоянии Idle.  
     
 

Обратите внимание также на начало модуля Vertices.cpp

//-----------------------------------------------------------------------------
// Глобальные переменные
//-----------------------------------------------------------------------------

LPDIRECT3D9 g_pD3D = NULL; // используется для создания D3DDevice
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL; // наше устройство отрисовки
LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL; // буфер для хранения вершин

// структура определяющая собственный тип вершин
struct CUSTOMVERTEX
{
FLOAT x, y, z, rhw; // преобразованная позиция вершины
DWORD color; // цвет вершины
};

// наш настраиваемый тип вершин FVF, который определяет какой тип вершин

// используется для их описания
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)

 
     
  Чтобы проверить насколько Вам ясно как работать с вершинами - попробуйте вывести вместо треугольника - квадрат. Цвета вершин также измените.  
     
  изображение модели квадрата  
     
 

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

150.0f, 50.0f - это вершина, отмеченная на рисунке цифрой 1,

250.0f, 250.0f - вершина номер 2 и

50.0f, 250.0f - вершина номер 3. Заметьте, что вершины определены в порядке обхода по-часовой стрелке. Это правило для определения видимых граней модели. Если вершины оказываются повернуты к экрану той гранью, где они следуют против часовой стрелки, то такая грань считается невидимой для зрителя стороной и не отрисовывается !

 
     
 

Теперь можно легко определить вершины для нашего квадрата -

CUSTOMVERTEX vertices[] =
{
{ 50.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, },

{ 250.0f, 50.0f, 0.5f, 1.0f, 0xff00ff00, },

{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },

{ 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },
};

 
     
 

Однако даже правильно изменив количество вершин с 3 на 4 и правильно указав это число в строке кода

if( FAILED( g_pd3dDevice->CreateVertexBuffer( 4 * sizeof( CUSTOMVERTEX ),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )

И указав количество отрисовываемых примитивов в функции Render в строке -

g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 );

в количестве 2 вместо 1

 
     
  Результатом будет -  
     
  попытка рисования квадрата 1  
     
  А всё дело в том, что D3D-приспособлен понимать только треугольные грани - состоящие из треугольников. Это сделано из-за того, что три вершины образующие треугольную грань всегда находятся в одной плоскости и следовательно так проще обсчитывать прорисовку сложных моделей.  
     
  Значит нам, для создания модели квадрата, состоящего из 2х треугольных граней нужно использовать не 4, а 6 вершин -  
     
 

CUSTOMVERTEX vertices[] =
{
{ 50.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, },

{ 250.0f, 50.0f, 0.5f, 1.0f, 0xff00ff00, },

{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff0000ff, },

{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },

{ 50.0f, 250.0f, 0.5f, 1.0f, 0xffffff00, },

{ 50.0f, 50.0f, 0.5f, 1.0f, 0xff0000ff, },


};

 
     
  попытка рисования квадрата 2  
     
  Важен и порядок, в котором определена вторая тройка вершин. Если они будут определены в другом порядке, то вторая грань (второй треугольник) выведен не будет. Попробуйте изменить порядок второй тройки вершин и убедитесь в этом сами.  
     
  На рисунке также отчетливо видно какая из вершин в какой цвет окрашена, так что будет более понятно где и какая вершина. На первых порах задайте для каждой из вершин свой цвет - тогда легче будет увидеть где нужная вершина.  
     
     
     
     
     
  [содержание] [назад] [страница 3] [далее]  
     
подробнее

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

представляем Веселый Буквоежка - онлайн комикс.

Он пробрался к хранилищу и спрятал свои инструменты.

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

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

[страница 1]  [страница 2]  [страница 3]  [страница 4]  [страница 5]  [страница 6]  [страница 7]  [страница 8]  [страница 9]  [страница 10]  [страница 11]  [страница 12]  [страница 13]  [страница 14]  [страница 15]  [страница 16]  [страница 17]  [страница 18]  [страница 19]  [страница 20]  [страница 21]  [страница 22]  [страница 23] 

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



Пожалуйста войдите на сайт - Вход

или пройдите процедуру регистрации - Регистрация

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

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



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


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