Wake of Gods Forum | Форум Во Имя Богов

Full Version: С++, общая тема
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Quote:Эфрит Rolleyes
Учтем)
Quote:Ну так и вызывай ручками OnPaint столько раз, сколько тебе и нужно 105
Ну так через таймер столько, раз сколько нужно.
А нужно бесконечно много раз.
Quote:А работать с прозрачными спрайтами не судьба? Поставил transparent у TImage в true и радуйся жизни...
Это решительно ничего не изменит - "тело" все равно будет оставаться сзади от движения
У меня ведь это не объекты которые можно сместить. У меня это картинки, которые рисуются заново с новыми координатами.

Почему так? а) Потому что я не умею динамически создавать объекты. б) Я не умею работать с группами объектов.

А перерисовывать меня в школе научили Sm
Quote:Потому как в моём случае - вбил один раз, и больше не паришь себе голову. А если так уж не нравится прописывать свойства в инспекторе объектов - что мешает прописать это в коде, внутри конструктора формы?
Ну так и у меня, данную запись вбил месяц назад, так она и стоит.
То бишь писать в Owner? А какая разница, в онпаинт ли писать или в овнере, все равно результат 1
totkotoriy Wrote:И ещё есть одна идейка насчет того глюка с не прорисовкой альфа канала на поле боя. Попробую в альфа плагин к хуку на прорисовку дефов существ вставить какое нибудь обновление экрана - может поможет.
Да не в этом там проблема. Проблема вообще элементарна - в определённых случаях элементы боя просто рисуются на своём месте несколько раз без стёрки предыдущего изображения. Без альфа-канала это незаметно, а в тех местах, где он или вообще какая-либо прозрачность присутствует после определённого числа наложений изображение, естественно, становится непрозрачным. Это не решается при помощи чёрной магии и не связано с отрисовкой def'ов.
(28.04.2012 19:03)Sav Wrote: [ -> ]Это не решается при помощи чёрной магии и не связано с отрисовкой def'ов.
Вон че оно. Спасибо за информацию... будем думать...
(28.04.2012 17:27)packa Wrote: [ -> ]invalidate(); ... В конце таймера и пропишу.
(28.04.2012 18:04)packa Wrote: [ -> ]Как это сделать каждые 10мс, не знаю.
ты же сам себе противоречишь!
для ленивого пакки, который любит чтобы за него все думали и делали: invalidate - метод элемента управления, который заставляет его перерисовываться.
(28.04.2012 18:28)Efrit Wrote: [ -> ]Ну так и вызывай ручками OnPaint столько раз, сколько тебе и нужно 105
ну от тебя я такого нубства не ожидал.
(28.04.2012 19:03)Sav Wrote: [ -> ]Проблема вообще элементарна - в определённых случаях элементы боя просто рисуются на своём месте несколько раз без стёрки предыдущего изображения. Это не решается при помощи чёрной магии и не связано с отрисовкой def'ов.
по-моему это решается режимом смешивания
Quote:ну от тебя я такого нубства не ожидал.

Да я просто толком и не понял, что именно Пакке надо... "Перерисовывать всё и всегда"? Тогда вызывать Repaint для каждого нужного контрола внутри OnPaint, как вариант...
не знаю что такое repaint, но у контрола должен быть метод, который забракует его отрисовку и заставит вызвать paint. обычно он называется invalidate. а если код отрисовки выполняется не при системном вызове paint, то ничего хорошего (или вообще ничего) пользователь не увидит.
Не такой уж я и ленивый, честно )
Здесь что то реально затупил, кажется разобрался.
Взаимодействия с таймером всегда для меня объект слоупочества почему-то 105
gamecreator Wrote:по-моему это решается режимом смешивания
Вряд ли, т. к. геройский экран, на котором всё отрисовывается, 16-битный и не хранит никакой информации о том, где была использована полупрозрачность при отрисовке.
(28.04.2012 19:40)gamecreator Wrote: [ -> ]по-моему это решается режимом смешивания
А можно поподробнее?Ab
нельзя, сам я в этом не разбираюсь
Подскажите ещё пожалуйста - может всё таки получиться с обновлением поля боя - как впихнуть выполнение триггера ERM в код alpha.dll?
Code:
"   image__sub_47C300:         \n"
//Вызов триггера ERM
"   pushad                     \n"
"   push   29502               \n"
"   mov    eax, 0x74CE30       \n"
"   call   eax                 \n"
"   add    esp, 4              \n"
"   popad                      \n"
//Как вот в этом месте корректно перейти к коду ниже?
//Нужно чтоб код выше корректно отработал и корректно перешёл к коду ниже :)
"   pop    eax                 \n"
"   pop    ecx                 \n"
"   push   eax                 \n"
"   push   ebp                 \n"
"   mov    ebp, esp            \n"
"   push   ecx                 \n"
"   mov    al, [ebp+0x3C]      \n"
"   mov    eax, 0x47C307       \n"
"   jmp    eax                 \n"
Интересно. Компилирую с параметром /MT (Multi-threaded, подключается минимум дллок) - альфа-плагин исправно вызывает вылеты, а компилирую с параметром /MD (Multi-threaded DLL, подключается максимум дллок) - всё нормально работает.
(29.04.2012 13:14)etoprostoya Wrote: [ -> ]Интересно. Компилирую с параметром /MT (Multi-threaded, подключается минимум дллок) - альфа-плагин исправно вызывает вылеты, а компилирую с параметром /MD (Multi-threaded DLL, подключается максимум дллок) - всё нормально работает.
А что значит подключается минимум или максимум длллок?
ну можно библиотеки статически подключить, а можно - динамически. в первом случае предпочтение отдается статическому подключению, во втором - динамическому.
Можно вместо вектора использовать Deque и чем это чревато?
(не знаю тонкостей, я только начал копать под вектор)

И как добавить в начало вектора элемент?
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Reference URL's