Пятница, 18 Июля 2025, 02:48

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
-Mikle-Дата: Пятница, 20 Января 2012, 10:53 | Сообщение # 61 | Тема: Управление роботом. Миниконкурс.
Изобретатель велосипедов
Сейчас нет на сайте
Quote
А когда будут подводится результаты конкурса?
Ведь конкурс объявлен, а потом все заброшено!

Мне как-то неудобно себя победителем объявлять :), да и конкурс из тех, которые можно не заканчивать.
У тебя, кстати, второе место, даже если учитывать многочисленные работы на GameDev.ru.
Моя DLL, кстати, тоже на бейсике, только это VB6.
-Mikle-Дата: Среда, 25 Января 2012, 14:47 | Сообщение # 62 | Тема: SR2D, Софтверный движок для работы с 2D графикой. Релиз.
Изобретатель велосипедов
Сейчас нет на сайте
Давно занимаюсь разработкой софтверного движка 2D графики для VB6.

SR2D предназначен для использования при создании оконных 2D приложений. На настоящий момент SR2D состоит из модуля modSR2D, класса SR2D_Sprite и DLL - SR2D.dll. Класс SR2D_Sprite предназначен для хранения двумерного изображения с альфа каналом, различных его преобразований и отображения на форму или любой контрол, обладающий hDC.
Для использования необходимо подключить к проекту указанные модуль и класс, а DLL разместить в папке проекта. Движок не использует для работы никаких API, кроме SetDiBitsToDevice, используемой для вывода изображения на экран и нескольких ф-ций GDI+ для чтения и сохранения файлов.
SR2D.dll на 10% написана на C++ и на 90% на ассемблере с активным применением MMX. Это - набор API-подобных stdcall ф-ций.

Движок свободен для некоммерческого и коммерческого использования. Единственное условие - не переименовывать SR2D.dll.
То, что движок "для VB6" - не критично, модуль modSR2D и класс SR2D_Sprite фактически являются портом SR2D.dll для VB6, для использования SR2D с любым языком достаточно перевести порт.

Я только что зарелизил версию 3.1 SR2D, тут несколько небольших примеров:
SR2D_3_1
287 кБ.

Пока полноценного ReadMe нет, но можно смотреть старый ReadMe, от версии 2.0, изменения вполне логичны и понятны без доп. описания, тут движок, ReadMe и несколько примеров для версии 2.0:
SR2D_2_0
400 кБ.

Что нового по сравнению с версией 2.0:
1. Добавился оператор OpBlend (интерполяция источника и приёмника).
2. Теперь использовать маску можно не только с любым оператором, но и с MulAddS2X, ClearBuffer, MoveBit, MoveByte, DrawDPBM, DrawEBM.
3. В DrawDPBM добавился точечный источник света.
4. Загрузка из файла средствами GDI+, соответственно поддержка .bmp, .jpg, .png и т. д. форматов.
5. Сохранение в .bmp, .jpg, .png с альфаканалом (кроме .jpg) и без него.
6. При загрузке можно задавать трансформации - масштабирование (с фильтрацией), поворот, отражение.
7. Появился поворот спрайта на произвольный угол, в том числе с АА.
8. ColorKey теперь задаётся не только при загрузке, но и через метод AddColorKey. "Add" потому, что таких ключей можно задавать сколько угодно, все указанные цвета станут прозрачными.
9. Новый метод MaskInterSector позволяет находить площадь пересечения масок. Удобно применять для коллизий, задавая в качестве маски альфаканал.

Примеры готовых игр, на старой версии:
BriX
58 кБ.

FlyGame
74 кБ.
(блиц игра, написана за 4 часа)

Добавлено (04.11.2011, 14:09)
---------------------------------------------
Сделал пример рисования кистью и некоторых других технологий, применимых в графических редакторах:
Paint
и пример анимации:
Anim

Добавлено (24.11.2011, 10:16)
---------------------------------------------
Скринсейвер, фигуры Лиссажу в 3D:
Stars
Выключение по движению мышки я убрал специально.
Управление:
Space - смена рисунка.
Escape - выход.

Добавлено (25.01.2012, 14:47)
---------------------------------------------
Портировал третью версию SR2D на C# и vb.net.
Пример пока один - DPBM:
SR2D_CS
SR2D_NET


Сообщение отредактировал -Mikle- - Суббота, 04 Февраля 2012, 17:50
-Mikle-Дата: Вторник, 06 Марта 2012, 14:53 | Сообщение # 63 | Тема: Передвижение машины
Изобретатель велосипедов
Сейчас нет на сайте
clidi, вот простой пример автофизики на Visual Basic 6 с исходником:
ss2d
Управление:
a, z - сменить передачу
стрелка вверх - газ
стрелка вниз - тормоз
Вот, если надо, в 3D:
ss3d
но этот не запустится в Win Vista и новее, или нужно добавить и зарегистрировать dx8vb.dll.


Сообщение отредактировал -Mikle- - Вторник, 06 Марта 2012, 14:54
-Mikle-Дата: Четверг, 08 Марта 2012, 09:59 | Сообщение # 64 | Тема: Передвижение машины
Изобретатель велосипедов
Сейчас нет на сайте
Quote (clidi)
как исправить так, чтоб скорость постоянно была положительной?

Скорость - это вектор, он не может быть положительным или отрицательным. Если имеется ввиду та_циферка_что_на_спидометре, то это модуль проекции скорости на вектор, направленный вдоль корпуса машины.
В моём 2D примере это модуль величины SpY после перевода величин в локальную систему координат автомобиля.
-Mikle-Дата: Пятница, 09 Марта 2012, 13:10 | Сообщение # 65 | Тема: Передвижение машины
Изобретатель велосипедов
Сейчас нет на сайте
Quote (clidi)
CarX и CarY это центральная точка машины?

Да, точнее - центр тяжести.
Quote (clidi)
И как я понял у вашей машины 2 точки?

Это середина переднего и заднего бамперов, величины вспомогательные, если рендерить спрайт, то достаточно центральной точки и угла поворота Alpha (в радианах).
Это:
Code
x = (x - Int(x)) * Me.ScaleWidth   
y = (1 - y + Int(y)) * Me.ScaleHeight

Сделано, чтобы машина, выезжая за край, появлялась с другой стороны.
Quote (clidi)
Вместо this->getAngle() вставить alpha или как?

Скорее вместо этого:
((90+this->getAngle())*(PI/180.0f))


Сообщение отредактировал -Mikle- - Пятница, 09 Марта 2012, 16:05
-Mikle-Дата: Вторник, 13 Марта 2012, 20:08 | Сообщение # 66 | Тема: Вода и волны от предмета
Изобретатель велосипедов
Сейчас нет на сайте
Интерактивные волны на VB6:
Waves
ЛКМ пускает волну, ПКМ включает дождь.


Сообщение отредактировал -Mikle- - Вторник, 13 Марта 2012, 20:10
-Mikle-Дата: Вторник, 13 Марта 2012, 20:25 | Сообщение # 67 | Тема: Вода и волны от предмета
Изобретатель велосипедов
Сейчас нет на сайте
Это не просто 2D, это хейтмэп - карта высот для 3D воды.
-Mikle-Дата: Четверг, 12 Апреля 2012, 16:20 | Сообщение # 68 | Тема: FreeBasic
Изобретатель велосипедов
Сейчас нет на сайте
К слову, о быстродействии. Опять вижу рекомендацию узкие места прописывать на "вставьте своё", когда-то мне советовали при программировании на VB6 узкие места выделять в DLL на PowerBasic (тот самый jungle советовал). Наконец, я провёл тест - и выяснил, что VB6 быстрее. Я не хочу спорить о преимуществах ООП или указателей, как программировать - это дело вкуса. Я не спорю, что VB6 - только под Винду. Я не вижу практического смысла в программе, выводящей собственный листинг.
Я хочу только выяснить, есть ли бейсик быстрее. Есть желающие присоединиться? Могу предложить простой тест, типично игровые вычисления, никакой привязки к ООП, ещё каким-нибудь особенностям.
-Mikle-Дата: Четверг, 12 Апреля 2012, 16:36 | Сообщение # 69 | Тема: FreeBasic
Изобретатель велосипедов
Сейчас нет на сайте
Сегодня до полуночи выложу.
-Mikle-Дата: Четверг, 12 Апреля 2012, 16:43 | Сообщение # 70 | Тема: FreeBasic
Изобретатель велосипедов
Сейчас нет на сайте
PBPROG, там GoSub... ужас. На VB6 это не оптимизируется. Тест действительно древний и не очень корректен. Я не хочу никого заставлять применять нетипичные для языка приёмы.
trew,
Quote
Я надеюсь там не на три листа(A4) писанины

Нет, строк 20 будет.
-Mikle-Дата: Четверг, 12 Апреля 2012, 23:03 | Сообщение # 71 | Тема: Тестируем быстродействие различных бейсиков (и не только)
Изобретатель велосипедов
Сейчас нет на сайте
Какой код в играх "съедает" основное время процессора? Рендер? Нет, рендерит видеокарта. Это физика либо логика ИИ.
При этом большей частью производятся простые действия (сложение, умножение, деление, сравнение) над игровыми данными.
А сами данные - это, как правило Single и Long, в "чистом" виде, в виде структур и массивов. При большом количестве игровых объектов, с ними работают через Quad или OcTree, это позволяет быстро отсеивать те объекты, которые обрабатывать не нужно (например, они находятся заведомо далеко). Обход Quad и Oc деревьев осуществляют, как правило, с помощью рекурсии.
Исходя из этого для измерения производительности для игр хорошо подходит тест - рисование простого фрактала, это те же самые действия, тоже рекурсия, такие же данные.
Вот проект на Visual Basic 6:
FrVB6
Его можно перевести полностью, а можно только это:

Измерять желательно чем-то более точным, чем GetTickCounter, отлично подходит QueryPerformanceCounter.
Результаты замеров:


Сообщение отредактировал -Mikle- - Воскресенье, 15 Апреля 2012, 09:58
-Mikle-Дата: Четверг, 12 Апреля 2012, 23:06 | Сообщение # 72 | Тема: FreeBasic
Изобретатель велосипедов
Сейчас нет на сайте
Сделал тест отдельной темой. Получилось, конечно, побольше 20-ти строк, но не так уж и много, тем более, что там простые действия, после копипаста и править почти ничего не понадобится.
-Mikle-Дата: Пятница, 13 Апреля 2012, 09:05 | Сообщение # 73 | Тема: Тестируем быстродействие различных бейсиков (и не только)
Изобретатель велосипедов
Сейчас нет на сайте
Ты в VB6 из среды запускал? Запускай EXE, желательно мой (или сам включи все оптимизации).
И от PB и FB хотелось бы EXE-шники, потестить на разных компах.
И GetTickCount очень неточен, чем не устроил QPC?
Ну и синтаксис у PB wacko , впервые вижу. Я так понял "\", этот аналог сишного "->"? Но почему тогда
Code
vP\x = *vPos\x + *vDir\x

а не
Code
*vP\x = *vPos\x + *vDir\x

?


Сообщение отредактировал -Mikle- - Пятница, 13 Апреля 2012, 09:13
-Mikle-Дата: Пятница, 13 Апреля 2012, 10:02 | Сообщение # 74 | Тема: Тестируем быстродействие различных бейсиков (и не только)
Изобретатель велосипедов
Сейчас нет на сайте
Quote
после твоего поста запустил твой EXE, результаты

Почему тогда твои результаты на VB6 в 10 раз хуже моих?
На PB и FB примерно совпадают.
-Mikle-Дата: Пятница, 13 Апреля 2012, 12:01 | Сообщение # 75 | Тема: Тестируем быстродействие различных бейсиков (и не только)
Изобретатель велосипедов
Сейчас нет на сайте
Да, я ставлю такие же оптимизации.
Проверил на Athlon64 3800+, VB6 довольно сильно вырвался вперёд:
vb6 - 0.0505
pb -0.0594
На интеле примерно такие результаты, как у тебя.
Табличку сделаю, только мне нужен EXE с QPC на PB.


Сообщение отредактировал -Mikle- - Пятница, 13 Апреля 2012, 12:02
-Mikle-Дата: Пятница, 13 Апреля 2012, 13:35 | Сообщение # 76 | Тема: Тестируем быстродействие различных бейсиков (и не только)
Изобретатель велосипедов
Сейчас нет на сайте
PBPROG, похоже, что в PB массивах поменяны местами строки и столбцы, задай так:
Code
Map.l(767, 1023)

И во всех обращениях к массиву поменяй местами x и y.
trew, хорошо бы тоже сделать визуализацию, чтобы убедиться, что код правильно работает.
Quote
Ну вот , а то часто видел реплики в сети, что VB6 тормоз. Вот прямое доказательство обратного!

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


Сообщение отредактировал -Mikle- - Пятница, 13 Апреля 2012, 13:38
-Mikle-Дата: Среда, 09 Мая 2012, 08:49 | Сообщение # 77 | Тема: [VB6] Случайный заголовок
Изобретатель велосипедов
Сейчас нет на сайте
shizofren, совет №19 никогда не выпадет, нужно Int(Rnd * 20)
-Mikle-Дата: Понедельник, 14 Мая 2012, 11:19 | Сообщение # 78 | Тема: Небольшой бейсик инструмент
Изобретатель велосипедов
Сейчас нет на сайте
Quote (PBPROG)
M$ странным образом забила в них не поддержку WinAPI возложив на программистов декларацию все что с ним связанно. Лично я не получаю кайфа от поиска dll'ок из которых надо импортировать функции, создания WinAPI структур и поиска значений WinAPI констант.

В комплектации VB6 есть готовый API декларатор, там есть и описания интерфейсов, и структуры, и энумы. Пользоваться не сложно. В vb.net при желании можно пользоваться этим же декларатором (только Long на Integer менять), но это крайне нежелательно, предпочтительнее пользоваться NET-эквивалентами.
-Mikle-Дата: Вторник, 15 Мая 2012, 15:47 | Сообщение # 79 | Тема: Ray-tracing algorithm
Изобретатель велосипедов
Сейчас нет на сайте
Глянь тему:
Ray-tracing
Там всё это присутствует.


Сообщение отредактировал -Mikle- - Вторник, 15 Мая 2012, 15:48
-Mikle-Дата: Среда, 16 Мая 2012, 09:26 | Сообщение # 80 | Тема: Зацените Ray tracing на VB6.
Изобретатель велосипедов
Сейчас нет на сайте
Исходник:
Ray Tracing
Поиск:

Все права сохранены. GcUp.ru © 2008-2025 Рейтинг