Среда, 28 Сентября 2022, 21:54

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 10
  • «
  • 1
  • 2
  • 3
  • 4
  • 9
  • 10
  • »
Форум игроделов » Записи участника » -Mikle- [196]
Результаты поиска
-Mikle-Дата: Четверг, 22 Августа 2013, 18:59 | Сообщение # 21 | Тема: Работа с байтами
Изобретатель велосипедов
Сейчас нет на сайте
Цитата
интересует, часто ли нужно прибегать к работе со сдвигом битов, есть ли возможность написания программы без этого.

Как я уже писал - это всего лишь умножение и деление на степени двойки, просто более быстрое. То есть обойтись можно, тем более, что некоторые компиляторы сами заменяют умножение-деление на сдвиги.
-Mikle-Дата: Четверг, 22 Августа 2013, 18:38 | Сообщение # 22 | Тема: Работа с байтами
Изобретатель велосипедов
Сейчас нет на сайте
GameMix, смещение, точнее сдвиг - это работа с БИТАМИ, а не байтами, сильно оптимизирует умножение и деление на степени двойки.
Так же с битами работают логические побитовые операции, типа "&", "|".
Работа с байтами - это, к примеру, разложение int32 значения цвета на A, R, G, B компоненты. Вместо непосредственного доступа к байтам это часто эмулируют с помощью битовых операций с int32 значениями - на современных процессорах это работает быстрее.
-Mikle-Дата: Суббота, 17 Августа 2013, 17:07 | Сообщение # 23 | Тема: Программирование градиента внутри области?
Изобретатель велосипедов
Сейчас нет на сайте
Градиент (линейный) - это простая зависимость цвета от координаты:
Код

k=k1*x+k2*y
Col=Col1*k+Col2*(1-k)

k1, k2 - произвольные коэффициенты,
Col1, Col2 - опорные цвета, от которых строится градиент.
То есть рисовать можно как угодно, можно вообще без полигонов - с помощью стенсила, к примеру, цвет вычисляем прямо в пиксельном шейдере.
-Mikle-Дата: Понедельник, 05 Августа 2013, 15:25 | Сообщение # 24 | Тема: Графические API для VB6.
Изобретатель велосипедов
Сейчас нет на сайте
Исправил все ссылки в первом сообщении.
Цитата (GameLoper)
я не помню есть ли в VB6 ,asm вставки ,ну если есть, то как вариант самому написать графику на asm вставках

В VB6 нет asm-вставок, но нет проблем подключить любую функцию из DLL. В SR2D так и сделано, большая часть функций там действительно написана на ассемблере.
Цитата (Izaron)
Это же очень сложно, одних только расчетов на толстую тетрвдь, да и живем мы не в восьмидесятых.

Софтовый рендер - одно из немногих оставшихся направлений программирования, где применение ассемблера ещё оправдано.
-Mikle-Дата: Пятница, 02 Августа 2013, 19:29 | Сообщение # 25 | Тема: Графические API для VB6.
Изобретатель велосипедов
Сейчас нет на сайте
Хостинг "Народ" передан с Яндекса на Юкоз, это сопровождалось потерями...
Скоро перезалью всё на новый сайт и обновлю ссылки тут.
-Mikle-Дата: Пятница, 26 Июля 2013, 10:11 | Сообщение # 26 | Тема: можно ли быстро выучить визуал бейсик
Изобретатель велосипедов
Сейчас нет на сайте
smile196, что такое "обычный бейсик"? Нет такого понятия. Точнее было 25 лет назад - GWBasic.
Если знаешь бейсик такого уровня - то для начала нужно разобраться с типами и функциями, потом ООП и событийный подход.
Если обычный - это что-то типа QBasic, PowerBasic, PureBasic - то с типами и функциями ты уже знаком.
shubniggurath, смысл есть, хотя бы потому, что знание предыдущей версии бейсика облегчит обучение.
С начала стоит ознакомиться с VB6, сразу включив Option Explicit (заодно будешь знать VBA и VBS, что всегда полезно), когда станут понятны основы ООП и событий - можно переключаться на net. Как выучишь net - поймёшь, что знаешь C# и почти понимаешь яву.


Сообщение отредактировал -Mikle- - Пятница, 26 Июля 2013, 10:14
-Mikle-Дата: Среда, 29 Мая 2013, 13:57 | Сообщение # 27 | Тема: На каких языках программирования пишете?
Изобретатель велосипедов
Сейчас нет на сайте
Цитата (First)
как сделать, что она становилась ярче

Просто же - замени в "Color.FromArgb(a, 0, 0, 0)" нули на нужный тебе цвет, к которому должно стремиться, например "Color.FromArgb(a, 255, 255, 255)".

Простой пример на VB6:


Простой пример на C++:
-Mikle-Дата: Среда, 29 Мая 2013, 10:54 | Сообщение # 28 | Тема: На каких языках программирования пишете?
Изобретатель велосипедов
Сейчас нет на сайте
First, ты продемонстрировал дважды неправильный код.
Во-первых - экземпляр Graphics создавать при каждой перерисовке не нужно, то есть правильнее так:
Код
Public Class Form1
   Dim a As Integer = 0
   Dim G As Graphics

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     G = PictureBox1.CreateGraphics()
   End Sub

   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
     If a < 255 Then
       G.FillRectangle(New SolidBrush(Color.FromArgb(a, 0, 0, 0)), 0, 0, PictureBox1.Width, PictureBox1.Height)
       a += 1
       Me.Text = a
     End If
   End Sub
End Class

Я не зря вставил строчку "Me.Text = a", обрати внимание при каком "a" картинка уже совсем непрозрачна, это вторая ошибка, правильнее (и проще) так:
Код
Public Class Form1
   Dim a As Integer = 0

   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
     If a < 255 Then
       PictureBox1.BackColor = Color.FromArgb(a, 0, 0, 0)
       a += 1
       Me.Text = a
     End If
   End Sub
End Class
-Mikle-Дата: Вторник, 14 Мая 2013, 10:36 | Сообщение # 29 | Тема: Графические API для VB6.
Изобретатель велосипедов
Сейчас нет на сайте
Поправил ссылку на движок версии 2.0, но лучше пользоваться новым 3.2, там много хороших добавлений.
Вот ссылки на порты для vb.net и C#:
sr2d-vb.net
sr2d-c#
Вот ещё примеры на VB6:
Анимация
Скринсейвер
Простейший вывод спрайта
А игра могла не запуститься из-за DirectShow - там с помощью него проигрывается миди музыка.


Сообщение отредактировал -Mikle- - Вторник, 14 Мая 2013, 10:37
-Mikle-Дата: Понедельник, 13 Мая 2013, 21:59 | Сообщение # 30 | Тема: Работа со спрайтами в VB.NET
Изобретатель велосипедов
Сейчас нет на сайте
Вот в этой теме я давал список графических API для VB6.
Там есть мой движок SR2D, для него существуют так же C# и vb.net порты.
SR2D, конечно, не так быстр, как DirectX или OpenGL, но побыстрее API и имеет кое-какие дополнительные возможности.
Вывод на экран в SR2D производится при помощи всё той же API функции SetDiBitsToDevice, а эта функция тоже требует hDC устройства вывода.
Если не станешь пользоваться движком, по крайней мере глянь, как правильно получать hDC для формы в Managed языках.
-Mikle-Дата: Понедельник, 29 Апреля 2013, 19:38 | Сообщение # 31 | Тема: Переход на новый язык программирования!
Изобретатель велосипедов
Сейчас нет на сайте
VB6 немного (процентов на 5-10) отстаёт на современных процессорах, особенно на Интелах, на Атлонах уже спорно, а на более старых вообще почти всех рвёт, кроме некоторых C++ компиляторов. Но это с применением стиля программирования, учитывающего специфику VB6 (могу перечислить по пунктам), с учётом, что недоступны потоки, 64-разрядные целые, битовые сдвиги.
-Mikle-Дата: Суббота, 27 Апреля 2013, 10:39 | Сообщение # 32 | Тема: Переход на новый язык программирования!
Изобретатель велосипедов
Сейчас нет на сайте
Цитата (Undead)
С одной стороны да, но когда нужно взаимодействовать с натвиным кодом, то другого выхода нет.

Прекрасно взаимодействует. Мой софтверный двиг на C++ и ассемблере портируется на C# и vb.net так же легко, как и на vb6, производительность не теряется, никакого unsafe:
SR2D
Цитата (Undead)
Нужно. Если писать чисто на шарпе, то скорость будет ужасной.

Нет:
Физ. демка на C#
То есть C++, конечно, немного быстрее, но не катастрофично.
Archido
+1
-Mikle-Дата: Пятница, 26 Апреля 2013, 12:18 | Сообщение # 33 | Тема: 2 вопроса по VB.NET
Изобретатель велосипедов
Сейчас нет на сайте
arrow25, я тоже глянул по ссылке. Из того, что там написано, можно сделать такой вывод - не всё, что написано по-английски, написано с умом smile
Полностью тему я не читал, но всю первую страницу они мусолят этот, АБСОЛЮТНО НЕГОДНЫЙ, тест:
Код
For x = 0 To 10000000
   z = System.Math.Sin(23.5687)
   z = System.Math.Cos(23.5687)
   z = System.Math.Tan(23.5687)
   z = System.Math.Atan(23.5687)
Next

C++, скорее всего, вообще такой цикл заменит на одну строку:
Код
z = Math.Atan(23.5687);

и выиграет в 40 000 000 раз. Нельзя тестировать на бессмысленном коде, так же нельзя тестировать на тяжёлой тригонометрии, это получится тест fpu, а не языка. Если PureBasic умудряется проигрывать ЭТО, то вообще не понятно, кому такой язык нужен. Впрочем, я не проверял, вполне возможно, что авторам той темы хватило интеллекта проверять под отладчиком.
Нужно тестировать хотя бы что-то такое: тест
И ещё - в vb.net имеется ООП, причём очень хорошее, так же выигрывает среда разработки. Ещё плюс - vb.net похож по синтаксису на основную массу других бейсиков, особенно на vb6, чего не скажешь про PureBasic.
У PureBasic вижу два плюса - лучше кроссплатформенность и немного меньше EXE - можно для демосцены применять. Насколько это вам нужно - вам решать.
-Mikle-Дата: Пятница, 12 Апреля 2013, 10:14 | Сообщение # 34 | Тема: ЧТО ЗА БРЕД С СИНТАКСИСОМ???
Изобретатель велосипедов
Сейчас нет на сайте
Цитата (First)
На других языках, как С# и т.д., тоже был изменен синтаксис, по сравнению с намного ранними версиями?

Во времена vb6 ещё не было c#.
И дело вообще не в изменении синтаксиса, а в изменении самих возможностей, не добавлении, а именно изменении. Во многом просто навели порядок. Например, если раньше огромное количество констант, задающих цвет, замусоривали общее пространство имён, то теперь все они находятся в одном Enum Color, ты можешь спокойно создавать свою переменную или функцию с названием LightGray. Можешь в свойствах проекта отключить пространство имён System.Drawing - и даже имя Color будет незанятым, при этом ты по-прежнему можешь пользоваться этими константами так:
Код
B.BackColor = System.Drawing.Color.LightGray

или подключив пространство имён не во всём проекте, а в конкретных модулях, где это требуется:
Код
Imports System.Drawing

То, что изменился синтаксис самой процедуры Form_Load - тоже хорошо и правильно. Ведь это не просто процедура, а обработчик события, ты, к примеру, можешь узнать, "кто" вызвал это событие:
Код
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     Me.Text = sender.ToString
   End Sub

Если бы не привязанность к непомерно раздутому фреймворку - я бы сказал, что vb.net лучше, чем vb6 почти во всём остальном. ООП - лучшее в мире (не холивар :)), быстродействие - не уступает, отличная среда разработки, хотя под отладчиком, конечно, vb6 был по-гибче, но это преимущества интерпретатора.
Да, в vb.net уже сложнее делать что-то, не понимая сути того, что происходит.
-Mikle-Дата: Воскресенье, 07 Апреля 2013, 14:27 | Сообщение # 35 | Тема: [3D] Аренный шутер [FPS]
Изобретатель велосипедов
Сейчас нет на сайте
Был небольшой баг - чтобы оружие, которое в руках, не протыкало стены, я чищу перед его рендером z-буфер. Всё в порядке, стены не протыкаются, но если подойти к тонкой стене с тёмной стороны так, чтобы обратная сторона стены была освещена, то конец ствола тоже освещается...
Попробовал поворачивать оружие вверх-вниз - не годится, по крайней мере для аренного deathmatch, теряется динамика, сделал просто приближение оружия к себе при коллизии со стеной, и добавил небольшой наклон.
В демке три вида оружия, у каждого своя длина:
http://yadi.sk/d/QJveWpkd3r9qg
-Mikle-Дата: Воскресенье, 24 Марта 2013, 15:04 | Сообщение # 36 | Тема: [3D] Аренный шутер [FPS]
Изобретатель велосипедов
Сейчас нет на сайте
Gammeza
Цитата
не оформил тему по правилам. где скрины?

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

Сделал небо и внизу лаву, клторую генерирую с помощью шума Перлина. От неё идёт рассеянный свет:

Ссылка та же: Демо
Новая пушка пока не стреляет.
-Mikle-Дата: Четверг, 14 Марта 2013, 09:47 | Сообщение # 37 | Тема: [3D] Аренный шутер [FPS]
Изобретатель велосипедов
Сейчас нет на сайте
Я считаю, что при падении с 3 этажа присесть - это нормально. Если ноги будут прямыми - они сломаются. Разбиваться ГГ будет, но только при падении с действительно большой высоты. В Quake 3 есть рокетджампы, можно разбиться при падении - и это не убивает геймплей.
Оружие в демку не включено - пока делаю физику стрельбы и анимацию взятия и смены оружия.

Добавлено (09.02.2013, 10:29)
---------------------------------------------
Перезалил демку, можно пострелять по стенам, изрядно надымить.
Дым пока не освещается, да и другие недоделки есть - пока первая проба.

Добавлено (14.03.2013, 09:47)
---------------------------------------------
Проект продвигается, хоть и медленно.
Пришла в голову гениальная идея - ускорил генерацию лайтмапы в десятки раз, это позволило перенести генерацию из редактора в игру и избавиться от 8-мимегабайтных файлов с освещением к каждой карте.
Усилием воли заставил себя сделать скучную работу - кастомайз управления, выбор карты (сейчас две карты, вторую нарисовал не я).
Перезалил демку. Уже можно пострелять.

-Mikle-Дата: Среда, 13 Марта 2013, 14:51 | Сообщение # 38 | Тема: генерация лабиринтов
Изобретатель велосипедов
Сейчас нет на сайте
Ну и я свои варианты лабиринта покажу:
Прямоугольный и Круглый
С выводом результата в виде картинки и исходником на VB6. Код очень простой.
-Mikle-Дата: Понедельник, 04 Февраля 2013, 16:21 | Сообщение # 39 | Тема: [3D] Аренный шутер [FPS]
Изобретатель велосипедов
Сейчас нет на сайте
Darkbasic
Цитата
Можно поподробней?

Тут я описал варианты программирования графики на VB6:
Тема
Тут готовая игра с исходником:
Тема
-Mikle-Дата: Воскресенье, 03 Февраля 2013, 14:57 | Сообщение # 40 | Тема: [3D] Аренный шутер [FPS]
Изобретатель велосипедов
Сейчас нет на сайте
Anromeda
Цитата
Что???Я ничего не понял

Совсем ничего? Или что-то конкретно? smile
jazzy, тут пока никаких оптимизаций, кроме предварительной сортировки по материалам, нет.
Форум игроделов » Записи участника » -Mikle- [196]
  • Страница 2 из 10
  • «
  • 1
  • 2
  • 3
  • 4
  • 9
  • 10
  • »
Поиск:

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