Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2009, 14:15   #11
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Демонстрация альфа-канала в ВМР
Хаха, не смеши . Это называется TransparentColor, то есть цвет прозрачности. При его использовании будут рисоваться все пиксели на картинке кроме черных (в данном случае). Настоящий альфа-канал есть например в png и tga. Эти форматы отличаются от BMP тем, что в них содержится тексура, уназывающая прозрачные места, причем они могут быть полупрозрачными (значение 1..255). Я такие текстуры делаю например в Photoshop.
Цитата:
Почитал про uVectMath. Решил сделать программу, в которой не используется OMEGA engine, т.е. вычисляются координаты кругов и на форме отображается картинка с этими координатами. Возникает ошибка. Возможно я что-то не так понял. Вот исходник.
В твоем исходнике недостает модулей, разбираться не стал. Возьми за основу PhysX.rar который я выкладывал. Там все работает и он использует простой канвас для вывода графики.

Последний раз редактировалось Вадим Буренков; 04.12.2009 в 14:17.
Вадим Буренков вне форума Ответить с цитированием
Старый 04.12.2009, 19:37   #12
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Восклицание

Ну ёлки-палки.....
Постоянно на форуме кто-то упоминает про "BMP с альфа-каналом", и постоянно начинается холивар какой-то, мол не бывает так...

Полупрозрачные изображения называются "32-хбитными" и 32-хбитные BMP бывают...
Просто они весят на четверть больше обычных 24-хбитных и криво отображаются во всяких встроенных просмотрщиках (типа "Paint'а" и "Программе просмотра изображений и факсов"), а также в Делфийском TImage...

А вот пример был не очень впечатляющим... Он хоть и полупрозрачный, но это не очень-то заметно... Надо было что-нибудь вроде такого: >ссыль<

Цитата:
как определить, является данный пиксель невидимым или видимым? (в BMP). Круг наполовину скрыт (Alpha-канал)
Хм... "видимым-невидимым" - а если он на четверть видим? Или на 70%?

Возможно вам нужно обычное 24-хбитное изображение с Transparent, а не с полупрозрачностью...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 04.12.2009, 19:40   #13
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

ещё у dds есть альфа-канал, да и сжатие у него хорошее
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 07.12.2009, 18:37   #14
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

Изучил движок (http://isadateam.com/doc/phys3.htm), решил попробовать работу со сложными объектам. Скачал исходник (http://gd.isadateam.com/files/articl...ics_delphi.rar).
В первой версии TBody объявлялся как класс, и от него наследовался класс TCircle. А во второй версии нету работы с кругами, и TBody - это запись, наследовать круг от него нельзя. Как работать с кругами?
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 07.12.2009, 20:10   #15
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Там нигде классов не было, ты что-то напутал. И от PBody тоже ничего не наследуется. PBody это тип с частью параметров тела (масса, инертность) и непостоянными характеристиками (скорость, положение, угол). В PShape хранится форма, присоединяемая к Pbody. Во втором примере кругов нет, я как-то добавлял их, но все равно для своих разработок использую нормальный физ.двиг.
Вадим Буренков вне форума Ответить с цитированием
Старый 07.12.2009, 20:38   #16
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

А этот не нормальный?
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 07.12.2009, 20:46   #17
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

класс был))
type
PBody = ^TBody;
TBody = class
position : TVector2; // позиция
velocity : TVector2; // ускорение
angle : Single; // текущий угол в радианах
w : Single; // угловое ускорение в радианах
mass : Single; // масса
inv : Single; // момент инерции
frict : Single; // трение
elas : single; // упругость
_static : boolean; // статичный объект, только для выталкивания
end;

type
PCircle = ^TCircle;
TCircle = class ( TBody )
radius : Single; // радиус
end;
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 08.12.2009, 18:06   #18
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Может и было такое, но все равно это не оптимально. То есть с такой системой делать сложный объект, состоящий из нескольких форм будет неудобно. Например нужно сделать объект, состоящий из кругов и полигонов. В случае с классами у каждого из форм будут свои параметры:
Цитата:
position : TVector2; // позиция
velocity : TVector2; // ускорение
angle : Single; // текущий угол в радианах
w : Single; // угловое ускорение в радианах
mass : Single; // масса
хотя они одинаковые так как объект один, хоть и состоит из нескольких частей. Для более опримальнго использования памяти и работы объекта делаем так:
Существует тело PBody которое содержит всю информацию о самом теле (но не о его формах). К данному телу крепятся PShape, они также являются типами, но содержат только информацию о своей форме (для кругов радиус, для полигонов координаты вершин) а также трение и эластичность. Доступ к основным параметрам тела (которые в PBody) осуществляется через указатель на него. То есть все PShape относятся к PBody тела, а не содержат его параметры в себе:
Посмотри PhysX.rar и все станет понятно.
Код:
type
  PBody = ^TBody;
  TBody = record
    position : TVector2; // позиция
    velocity : TVector2; // ускорение
    angle    : TReal;   // текущий угол в радианах
    w        : TReal;   // угловое ускорение в радианах
    m        : TReal;   // масса
    i        : TReal;   // момент инерции
    f        : TReal;   // трение
    e        : TReal;   // упругость
    _static  : boolean;  // статичный ли объект

    shapes   : array of TShape; // формы данного тела
  end;
-------------------
type
  PPoly = ^TPoly; // указатель на полилинию
  TPoly = record  // сама полилиния
    v,           // мировые координаты вершин
    v_base       // локальные координаты вершин
    : array [0..max_v] of TVector2;

    ed,          // мировые данные о гранях
    ed_base      // локальные данные о гранях
    : array [0..max_v] of TEdge;

    m_v     : integer;      // количество вершин
    rot     : TVector2;     // кос\син для поворота вершин

    Body : PBody; //указатель на тело, к которому принадлежит полигон
  end;

Последний раз редактировалось Вадим Буренков; 08.12.2009 в 18:09.
Вадим Буренков вне форума Ответить с цитированием
Старый 09.12.2009, 08:43   #19
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

Ну ладно, с этим я все понял. Уже могу создавать сложные объекты. Но почему-то в моем проекте все динамические формы постоянно смещаются вправо... не знаю почему. Даже если все копирую из готового примера. Все модули оригинальные (в них не вносил изменения).
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 09.12.2009, 14:26   #20
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Выкладывай пример. Могу предположить только то гравитация установлена положительная по оси X.
Вадим Буренков вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Физика в 2D играх Вадим Буренков Gamedev - cоздание игр: Unity, OpenGL, DirectX 32 02.11.2010 22:00
Искуственый интелект в играх VintProg Gamedev - cоздание игр: Unity, OpenGL, DirectX 26 01.08.2009 23:09
Сюжет в 2D играх ZotaC Свободное общение 8 05.07.2009 15:42
Физика программы. Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 09.05.2008 18:14
Анимация в играх frai Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 25.11.2007 14:28